qemu-e2k/util
Vijay 7069532e3b target-arm: Use Neon for zero checking
Use Neon instructions to perform zero checking of
buffer. This is helps in reducing total migration time.

Use case: Idle VM live migration with 4 VCPUS and 8GB ram
running CentOS 7.

Without Neon, the Total migration time is 3.5 Sec

Migration status: completed
total time: 3560 milliseconds
downtime: 33 milliseconds
setup: 5 milliseconds
transferred ram: 297907 kbytes
throughput: 685.76 mbps
remaining ram: 0 kbytes
total ram: 8519872 kbytes
duplicate: 2062760 pages
skipped: 0 pages
normal: 69808 pages
normal bytes: 279232 kbytes
dirty sync count: 3

With Neon, the total migration time is 2.9 Sec

Migration status: completed
total time: 2960 milliseconds
downtime: 65 milliseconds
setup: 4 milliseconds
transferred ram: 299869 kbytes
throughput: 830.19 mbps
remaining ram: 0 kbytes
total ram: 8519872 kbytes
duplicate: 2064313 pages
skipped: 0 pages
normal: 70294 pages
normal bytes: 281176 kbytes
dirty sync count: 3

Signed-off-by: Vijaya Kumar K <vijayak@cavium.com>
Signed-off-by: Suresh <ksuresh@cavium.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 1467190029-694-2-git-send-email-vijayak@cavium.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-07-14 16:51:36 +01:00
..
acl.c Drop Emacs local variables lists redundant with .dir-locals.el 2016-07-12 16:19:16 +02:00
base64.c
bitmap.c
bitops.c
buffer.c
compatfd.c
coroutine-gthread.c all: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
coroutine-sigaltstack.c
coroutine-ucontext.c
coroutine-win32.c
crc32c.c
cutils.c target-arm: Use Neon for zero checking 2016-07-14 16:51:36 +01:00
envlist.c
error.c
event_notifier-posix.c
event_notifier-win32.c
fifo8.c
getauxval.c
hbitmap.c hbitmap: add 'pos < size' asserts 2016-06-16 15:20:37 +02:00
hexdump.c
host-utils.c
id.c
iov.c
log.c log: Permit -dfilter 0..0xffffffffffffffff 2016-07-04 16:49:33 +03:00
Makefile.objs range: Create range.c for code that should not be inline 2016-06-30 15:28:40 +02:00
memfd.c os-posix: include sys/mman.h 2016-06-16 18:39:03 +02:00
mmap-alloc.c Use #include "..." for our own headers, <...> for others 2016-07-12 16:19:16 +02:00
module.c coccinelle: Remove unnecessary variables for function return value 2016-06-20 16:38:13 +02:00
notify.c
osdep.c osdep: Introduce qemu_dup 2016-07-13 13:26:02 +02:00
oslib-posix.c Use #include "..." for our own headers, <...> for others 2016-07-12 16:19:16 +02:00
oslib-win32.c all: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
path.c
qdist.c clean-includes: run it once more 2016-06-16 18:39:03 +02:00
qemu-config.c
qemu-coroutine-io.c coroutine: move entry argument to qemu_coroutine_create 2016-07-13 13:26:02 +02:00
qemu-coroutine-lock.c coroutine: move entry argument to qemu_coroutine_create 2016-07-13 13:26:02 +02:00
qemu-coroutine-sleep.c coroutine: move entry argument to qemu_coroutine_create 2016-07-13 13:26:02 +02:00
qemu-coroutine.c coroutine: move entry argument to qemu_coroutine_create 2016-07-13 13:26:02 +02:00
qemu-error.c
qemu-openpty.c
qemu-option.c
qemu-progress.c
qemu-sockets.c qemu-sockets: use qapi_free_SocketAddress in cleanup 2016-07-12 18:31:27 +02:00
qemu-thread-posix.c
qemu-thread-win32.c
qemu-timer-common.c
qht.c clean-includes: run it once more 2016-06-16 18:39:03 +02:00
range.c range: Replace internal representation of Range 2016-07-04 16:49:33 +03:00
rcu.c
readline.c
rfifolock.c
throttle.c
timed-average.c
trace-events trace: split out trace events for util/ directory 2016-06-20 17:22:14 +01:00
unicode.c
uri.c all: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00