Statistics
| Branch: | Revision:

root @ 5cc11c46

Name Size
  QMP
  audio
  backends
  block
  bsd-user
  default-configs
  disas
  docs
  fpu
  fsdev
  gdb-xml
  hw
  include
  ldscripts
  libcacard
  linux-headers
  linux-user
  net
  pc-bios
  po
  qapi
  qga
  qobject
  qom
  roms
  scripts
  slirp
  stubs
  sysconfigs
  target-alpha
  target-arm
  target-cris
  target-i386
  target-lm32
  target-m68k
  target-microblaze
  target-mips
  target-moxie
  target-openrisc
  target-ppc
  target-s390x
  target-sh4
  target-sparc
  target-unicore32
  target-xtensa
  tcg
  tests
  tpm
  trace
  ui
  util
.exrc 220 Bytes
.gitignore 1.6 kB
.gitmodules 682 Bytes
.mailmap 1.2 kB
CODING_STYLE 3.1 kB
COPYING 17.6 kB
COPYING.LIB 25.8 kB
Changelog 22.6 kB
HACKING 6.1 kB
LICENSE 519 Bytes
MAINTAINERS 14.9 kB
Makefile 14.4 kB
Makefile.objs 3.6 kB
Makefile.target 5.2 kB
README 80 Bytes
VERSION 7 Bytes
aio-posix.c 6.7 kB
aio-win32.c 5.8 kB
arch_init.c 29.2 kB
async.c 5.3 kB
balloon.c 3.7 kB
block-migration.c 21.8 kB
block.c 130.3 kB
blockdev-nbd.c 3.2 kB
blockdev.c 46.5 kB
blockjob.c 7.6 kB
bt-host.c 5.2 kB
bt-vhci.c 4.5 kB
cmd.c 12.1 kB
cmd.h 2 kB
configure 113.1 kB
coroutine-gthread.c 5.8 kB
coroutine-sigaltstack.c 8.3 kB
coroutine-ucontext.c 5.6 kB
coroutine-win32.c 2.6 kB
cpu-exec.c 28.6 kB
cpus.c 33.1 kB
cputlb.c 11 kB
device-hotplug.c 2.2 kB
device_tree.c 7.9 kB
disas.c 12.8 kB
dma-helpers.c 10.9 kB
dump-stub.c 1.5 kB
dump.c 22.1 kB
exec.c 74 kB
gdbstub.c 76.1 kB
hmp-commands.hx 44.5 kB
hmp.c 41.4 kB
hmp.h 4.1 kB
iohandler.c 6 kB
ioport.c 13.3 kB
kvm-all.c 51.1 kB
kvm-stub.c 2.5 kB
main-loop.c 12.4 kB
memory.c 53.7 kB
memory_mapping-stub.c 627 Bytes
memory_mapping.c 7 kB
migration-exec.c 1.7 kB
migration-fd.c 1.6 kB
migration-tcp.c 2.3 kB
migration-unix.c 2.2 kB
migration.c 16.9 kB
monitor.c 138.2 kB
nbd.c 30.8 kB
os-posix.c 8.4 kB
os-win32.c 4.4 kB
page_cache.c 5.1 kB
pixman 0 Bytes
qapi-schema-test.json 1.3 kB
qapi-schema.json 91.4 kB
qdev-monitor.c 18 kB
qdict-test-data.txt 88.4 kB
qemu-bridge-helper.c 10.4 kB
qemu-char.c 97.5 kB
qemu-coroutine-io.c 2.4 kB
qemu-coroutine-lock.c 5.1 kB
qemu-coroutine-sleep.c 898 Bytes
qemu-coroutine.c 2.4 kB
qemu-doc.texi 88.1 kB
qemu-img-cmds.hx 2.2 kB
qemu-img.c 71.7 kB
qemu-img.texi 13.8 kB
qemu-io.c 48.3 kB
qemu-log.c 4.8 kB
qemu-nbd.c 17.3 kB
qemu-nbd.texi 2 kB
qemu-options-wrapper.h 1 kB
qemu-options.h 1.4 kB
qemu-options.hx 110.9 kB
qemu-seccomp.c 7.8 kB
qemu-tech.texi 22.9 kB
qemu-timer.c 19.2 kB
qemu.sasl 1.3 kB
qmp-commands.hx 70 kB
qmp.c 13.6 kB
qtest.c 13.3 kB
readline.c 12.9 kB
rules.mak 4.4 kB
savevm.c 61 kB
spice-qemu-char.c 8.4 kB
tcg-runtime.c 2.4 kB
tci.c 35.5 kB
thread-pool.c 9.7 kB
thunk.c 8.8 kB
trace-events 71.7 kB
translate-all.c 53.5 kB
translate-all.h 1.2 kB
user-exec.c 19.1 kB
version.rc 749 Bytes
vl.c 124.1 kB
xbzrle.c 4 kB
xen-all.c 35.6 kB
xen-mapcache.c 11.9 kB
xen-stub.c 1.2 kB

Latest revisions

# Date Author Comment
f1c72795 03/26/2013 02:32 pm Peter Lieven

migration: do not sent zero pages in bulk stage

during bulk stage of ram migration if a page is a
zero page do not send it at all.
the memory at the destination reads as zero anyway.

even if there is an madvise with QEMU_MADV_DONTNEED
at the target upon receipt of a zero page I have observed...

70c8652b 03/26/2013 02:32 pm Peter Lieven

migration: do not search dirty pages in bulk stage

avoid searching for dirty pages just increment the
page offset. all pages are dirty anyway.

Signed-off-by: Peter Lieven <>
Reviewed-by: Eric Blake <>
Reviewed-by: Orit Wasserman <>...

5cc11c46 03/26/2013 02:32 pm Peter Lieven

migration: use XBZRLE only after bulk stage

at the beginning of migration all pages are marked dirty and
in the first round a bulk migration of all pages is performed.

currently all these pages are copied to the page cache regardless
of whether they are frequently updated or not. this doesn't make sense...

56ded708 03/26/2013 02:32 pm Peter Lieven

buffer_is_zero: use vector optimizations if possible

performance gain on SSE2 is approx. 20-25%. altivec
is not tested. performance for unsigned long arithmetic
is unchanged.

Signed-off-by: Peter Lieven <>
Reviewed-by: Eric Blake <>...

49f676a0 03/26/2013 02:32 pm Peter Lieven

bitops: unroll while loop in find_next_bit()

this patch adopts the loop unrolling idea of bitmap_is_zero() to
speed up the skipping of large areas with zeros in find_next_bit().

this routine is extensively used to find dirty pages in
live migration.

testing only the find_next_bit performance on a zeroed bitfield...

3edcd7e6 03/26/2013 02:32 pm Peter Lieven

migration: search for zero instead of dup pages

virtually all dup pages are zero pages. remove
the special is_dup_page() function and use the
optimized buffer_find_nonzero_offset() function
instead.

here buffer_find_nonzero_offset() is used directly
to avoid the unnecssary additional checks in...

78d07ae7 03/26/2013 02:32 pm Peter Lieven

migration: add an indicator for bulk state of ram migration

the first round of ram transfer is special since all pages
are dirty and thus all memory pages are transferred to
the target. this patch adds a boolean variable to track
this stage.

Signed-off-by: Peter Lieven <>...

41a259bd 03/26/2013 02:32 pm Peter Lieven

cutils: add a function to find non-zero content in a buffer

this adds buffer_find_nonzero_offset() which is a SSE2/Altivec
optimized function that searches for non-zero content in a
buffer.

the function starts full unrolling only after the first few chunks have...

377e2cb9 03/26/2013 02:30 pm David Gibson

savevm: Fix bugs in the VMSTATE_VBUFFER_MULTIPLY definition

The VMSTATE_BUFFER_MULTIPLY macro is misnamed - it actually specifies
a variably sized buffer with VMS_VBUFFER, so should be named
VMSTATE_VBUFFER_MULTIPLY. This patch fixes this (the macro had no current...

c61ca00a 03/26/2013 02:30 pm Peter Lieven

move vector definitions to qemu-common.h

vector optimizations will now be used at various places
not just in is_dup_page() in arch_init.c

Signed-off-by: Peter Lieven <>
Signed-off-by: Juan Quintela <>

View all revisions | View revisions

Also available in: Atom