[Spice-devel] [PATCH 00/12] Fix 705785 (remove fast_memcpy_*)

Alon Levy alevy at redhat.com
Wed Apr 30 07:40:24 PDT 2014


This patchset ultimately does a little cleanup and mainly removes all inline
assembly that was used to supposedly have a faster memcpy implementation.

The patchset includes an amd64 implementation of the fast_memcpy_aligned and
fast_memcpy_unaligned functions and benchmarks comparing them to RtlCopyMemory
and memcpy (the later for easier testing in userspace, but the comparison was
ultimately done in kernel since I couldn't find a simple way to link to the
kernel memcpy implementation from userspace).

Both benchmarks and amd64 (and original x86) implementations are removed in the final patch.

Benchmarks show that on the tested systems (windows 7 32 & 64 bits with
emulated host cpu i7) the native windows kernel implementation was faster. For
more information see commit message of benchmark adding commit (one before
last).

In addition the patch to revert an earlier mistake "miniport: halve
QXL_IO_UPDATE_IRQ calls" is included.

Alon Levy (11):
  miniport/qxl.inf: simplify by having FeatureScore for everyone
  display/res.h: remove whitespace at EOF
  display\driver.c: remove unused FlotaToFixed
  build.bat: fix copy to install dir for amd64
  build.bat: more verbose build
  xddm/display/res.c: move ALIGN out of Save/RestoreFPU for easier amd64
    implementation
  adding initial empty AMD64 only external asm file
  xddm/display/amd64: implement CheckAndSetSSE2
  xddm/display/amd64: implement Save/RestoreFPU & fast_memcpy_*
  add benchmarks for memcpy (RtlCopyMemory) vs fast - fast is slower
  display: use RtlCopyMemory instead of fast_memcpy_*

Yonit Halperin (1):
  Revert "miniport: halve QXL_IO_UPDATE_IRQ calls"

 xddm/build.bat                  |  19 ++-
 xddm/display/benchmark_memcpy.c | 152 ++++++++++++++++++
 xddm/display/driver.c           |  17 --
 xddm/display/res.c              | 335 ++--------------------------------------
 xddm/display/res.h              |   5 +-
 xddm/display/sources            |   3 +-
 xddm/miniport/qxl.c             |   1 +
 xddm/miniport/qxl.inf           |  19 +--
 8 files changed, 188 insertions(+), 363 deletions(-)
 mode change 100755 => 100644 xddm/build.bat
 create mode 100644 xddm/display/benchmark_memcpy.c

-- 
1.9.0



More information about the Spice-devel mailing list