qemu/util
Liang Li 28b90d9c19 cutils: add avx2 instruction optimization
buffer_find_nonzero_offset() is a hot function during live migration.
Now it use SSE2 instructions for optimization. For platform supports
AVX2 instructions, use AVX2 instructions for optimization can help
to improve the performance of buffer_find_nonzero_offset() about 30%
comparing to SSE2.

Live migration can be faster with this optimization, the test result
shows that for an 8GiB RAM idle guest just boots, this patch can help
to shorten the total live migration time about 6%.

This patch use the ifunc mechanism to select the proper function when
running, for platform supports AVX2, execute the AVX2 instructions,
else, execute the original instructions.

Signed-off-by: Liang Li <liang.z.li@intel.com>
Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Suggested-by: Richard Henderson <rth@twiddle.net>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <1457416397-26671-3-git-send-email-liang.z.li@intel.com>
Signed-off-by: Amit Shah <amit.shah@redhat.com>
2016-03-08 16:53:26 +05:30
..
acl.c util: Clean up includes 2016-02-04 17:01:04 +00:00
base64.c util: Clean up includes 2016-02-04 17:01:04 +00:00
bitmap.c util: Clean up includes 2016-02-04 17:01:04 +00:00
bitops.c util: Clean up includes 2016-02-04 17:01:04 +00:00
buffer.c util: Clean up includes 2016-02-04 17:01:04 +00:00
compatfd.c util: Clean up includes 2016-02-04 17:01:04 +00:00
coroutine-gthread.c util: Clean up includes 2016-02-04 17:01:04 +00:00
coroutine-sigaltstack.c util: Clean up includes 2016-02-04 17:01:04 +00:00
coroutine-ucontext.c util: Clean up includes 2016-02-04 17:01:04 +00:00
coroutine-win32.c util: Clean up includes 2016-02-04 17:01:04 +00:00
crc32c.c util: Clean up includes 2016-02-04 17:01:04 +00:00
cutils.c cutils: add avx2 instruction optimization 2016-03-08 16:53:26 +05:30
envlist.c util: Clean up includes 2016-02-04 17:01:04 +00:00
error.c util: Clean up includes 2016-02-04 17:01:04 +00:00
event_notifier-posix.c util: Clean up includes 2016-02-04 17:01:04 +00:00
event_notifier-win32.c util: Clean up includes 2016-02-04 17:01:04 +00:00
fifo8.c util: Clean up includes 2016-02-04 17:01:04 +00:00
getauxval.c util: Clean up includes 2016-02-04 17:01:04 +00:00
hbitmap.c util: Clean up includes 2016-02-04 17:01:04 +00:00
hexdump.c util: Clean up includes 2016-02-04 17:01:04 +00:00
host-utils.c util: Clean up includes 2016-02-04 17:01:04 +00:00
id.c util: Clean up includes 2016-02-04 17:01:04 +00:00
iov.c iov: avoid memcpy for "simple" iov_from_buf/iov_to_buf 2016-02-09 13:52:26 +00:00
log.c log: do not log if QEMU is daemonized but without -D 2016-03-07 13:18:28 +01:00
Makefile.objs log: move qemu-log.c into util/ directory 2016-02-03 09:19:10 +00:00
memfd.c vhost: add migration block if memfd failed 2015-10-22 14:34:49 +03:00
mmap-alloc.c util: Clean up includes 2016-02-04 17:01:04 +00:00
module.c util: Clean up includes 2016-02-04 17:01:04 +00:00
notify.c util: Clean up includes 2016-02-04 17:01:04 +00:00
osdep.c util: Clean up includes 2016-02-04 17:01:04 +00:00
oslib-posix.c oslib-posix.c: Move workaround for OSX daemon() deprecation to osdep.h 2016-02-16 14:29:28 +00:00
oslib-win32.c util: Clean up includes 2016-02-04 17:01:04 +00:00
path.c util: Clean up includes 2016-02-04 17:01:04 +00:00
qemu-config.c util: Clean up includes 2016-02-04 17:01:04 +00:00
qemu-coroutine-io.c util: Clean up includes 2016-02-04 17:01:04 +00:00
qemu-coroutine-lock.c util: Clean up includes 2016-02-04 17:01:04 +00:00
qemu-coroutine-sleep.c util: Clean up includes 2016-02-04 17:01:04 +00:00
qemu-coroutine.c util: Clean up includes 2016-02-04 17:01:04 +00:00
qemu-error.c util: Clean up includes 2016-02-04 17:01:04 +00:00
qemu-openpty.c util: Clean up includes 2016-02-04 17:01:04 +00:00
qemu-option.c util: Clean up includes 2016-02-04 17:01:04 +00:00
qemu-progress.c util: Clean up includes 2016-02-04 17:01:04 +00:00
qemu-sockets.c util: Shorten references into SocketAddress 2016-03-05 10:41:52 +01:00
qemu-thread-posix.c util: Clean up includes 2016-02-04 17:01:04 +00:00
qemu-thread-win32.c util: Clean up includes 2016-02-04 17:01:04 +00:00
qemu-timer-common.c util: Clean up includes 2016-02-04 17:01:04 +00:00
rcu.c util: Clean up includes 2016-02-04 17:01:04 +00:00
readline.c util: Clean up includes 2016-02-04 17:01:04 +00:00
rfifolock.c util: Clean up includes 2016-02-04 17:01:04 +00:00
throttle.c throttle: Add support for burst periods 2016-02-22 14:08:05 +01:00
timed-average.c util: Clean up includes 2016-02-04 17:01:04 +00:00
unicode.c util: Clean up includes 2016-02-04 17:01:04 +00:00
uri.c util: Clean up includes 2016-02-04 17:01:04 +00:00