#
2e59915d |
| 04-Jun-2013 |
Paolo Bonzini <pbonzini@redhat.com> |
main: use TARGET_ARCH only for the target-specific #define
Everything else needs to match the executable name, which is TARGET_NAME.
Before: $ sh4eb-linux-user/qemu-sh4eb --help usage: qemu
main: use TARGET_ARCH only for the target-specific #define
Everything else needs to match the executable name, which is TARGET_NAME.
Before: $ sh4eb-linux-user/qemu-sh4eb --help usage: qemu-sh4 [options] program [arguments...] Linux CPU emulator (compiled for sh4 emulation)
After: $ sh4eb-linux-user/qemu-sh4eb --help usage: qemu-sh4eb [options] program [arguments...] Linux CPU emulator (compiled for sh4eb emulation)
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-id: 1370349928-20419-5-git-send-email-pbonzini@redhat.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
show more ...
|
#
ebc85e3f |
| 07-Jun-2013 |
Markus Armbruster <armbru@redhat.com> |
smbios: Clean up smbios_add_field() parameters
Having size precede the associated pointer is odd. Swap them, and fix up the types.
Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by:
smbios: Clean up smbios_add_field() parameters
Having size precede the associated pointer is odd. Swap them, and fix up the types.
Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Laszlo "ever the optimist" Ersek <lersek@redhat.com> Message-id: 1370610036-10577-5-git-send-email-armbru@redhat.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
#
5bb95e41 |
| 07-Jun-2013 |
Markus Armbruster <armbru@redhat.com> |
smbios: Convert to error_report()
Improves diagnistics from ad hoc messages like
Invalid SMBIOS UUID string
to
qemu-system-x86_64: -smbios type=1,uuid=gaga: Invalid UUID
Signed-off-by: M
smbios: Convert to error_report()
Improves diagnistics from ad hoc messages like
Invalid SMBIOS UUID string
to
qemu-system-x86_64: -smbios type=1,uuid=gaga: Invalid UUID
Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Laszlo "ever the optimist" Ersek <lersek@redhat.com> Message-id: 1370610036-10577-4-git-send-email-armbru@redhat.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
#
1d671369 |
| 24-Apr-2013 |
Paolo Bonzini <pbonzini@redhat.com> |
memory: make memory_global_sync_dirty_bitmap take an AddressSpace
Since this is a MemoryListener operation, it only makes sense on an AddressSpace granularity.
Suggested-by: Peter Maydell <peter.ma
memory: make memory_global_sync_dirty_bitmap take an AddressSpace
Since this is a MemoryListener operation, it only makes sense on an AddressSpace granularity.
Suggested-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
f81222bc |
| 18-Apr-2013 |
Paolo Bonzini <pbonzini@redhat.com> |
audio: look for the ISA and PCI buses
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-id: 1366303444-24620-8-git-send-email-pbonzini@redhat.com Signed-off-by: Anthony Liguori <aliguori@us
audio: look for the ISA and PCI buses
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-id: 1366303444-24620-8-git-send-email-pbonzini@redhat.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
#
ffa48cf5 |
| 18-Apr-2013 |
Paolo Bonzini <pbonzini@redhat.com> |
audio: remove HAS_AUDIO
Several targets can have wavcapture/-soundhw support via PCI cards. HAS_AUDIO is a useless limitation, remove it.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-
audio: remove HAS_AUDIO
Several targets can have wavcapture/-soundhw support via PCI cards. HAS_AUDIO is a useless limitation, remove it.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-id: 1366303444-24620-4-git-send-email-pbonzini@redhat.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
#
36cd6f6f |
| 18-Apr-2013 |
Paolo Bonzini <pbonzini@redhat.com> |
audio: remove the need for audio card CONFIG_* symbols
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-id: 1366303444-24620-3-git-send-email-pbonzini@redhat.com Signed-off-by: Anthony Lig
audio: remove the need for audio card CONFIG_* symbols
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-id: 1366303444-24620-3-git-send-email-pbonzini@redhat.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
#
0bc3cd62 |
| 08-Apr-2013 |
Paolo Bonzini <pbonzini@redhat.com> |
include: avoid useless includes of exec/ headers
Headers in include/exec/ are for the deepest innards of QEMU, they should almost never be included directly.
Signed-off-by: Paolo Bonzini <pbonzini@
include: avoid useless includes of exec/ headers
Headers in include/exec/ are for the deepest innards of QEMU, they should almost never be included directly.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
0445259b |
| 15-Apr-2013 |
Michael S. Tsirkin <mst@redhat.com> |
acpi: move declarations from pc.h to acpi.h
Functions defined in acpi/ should be declared in acpi.h
Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.
acpi: move declarations from pc.h to acpi.h
Functions defined in acpi/ should be declared in acpi.h
Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
0d09e41a |
| 05-Feb-2013 |
Paolo Bonzini <pbonzini@redhat.com> |
hw: move headers to include/
Many of these should be cleaned up with proper qdev-/QOM-ification. Right now there are many catch-all headers in include/hw/ARCH depending on cpu.h, and this makes it n
hw: move headers to include/
Many of these should be cleaned up with proper qdev-/QOM-ification. Right now there are many catch-all headers in include/hw/ARCH depending on cpu.h, and this makes it necessary to compile these files per-target. However, fixing this does not belong in these patches.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
23084327 |
| 20-Mar-2013 |
Laszlo Ersek <lersek@redhat.com> |
like acpi_table_install(), acpi_table_add() should propagate Errors
Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Message-id: 1363821803-3380-8-g
like acpi_table_install(), acpi_table_add() should propagate Errors
Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Message-id: 1363821803-3380-8-git-send-email-lersek@redhat.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
#
0c764a9d |
| 20-Mar-2013 |
Laszlo Ersek <lersek@redhat.com> |
acpi_table_add(): accept QemuOpts and parse it with OptsVisitor
As one consequence, strtok() -- which modifies its argument -- is replaced with g_strsplit().
Signed-off-by: Laszlo Ersek <lersek@red
acpi_table_add(): accept QemuOpts and parse it with OptsVisitor
As one consequence, strtok() -- which modifies its argument -- is replaced with g_strsplit().
Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Message-id: 1363821803-3380-6-git-send-email-lersek@redhat.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
#
4d8b3c63 |
| 20-Mar-2013 |
Laszlo Ersek <lersek@redhat.com> |
strip some whitespace
Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Message-id: 1363821803-3380-2-git-send-email-lersek@redhat.com Signed-off-by:
strip some whitespace
Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Message-id: 1363821803-3380-2-git-send-email-lersek@redhat.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
#
500f0061 |
| 22-Mar-2013 |
Orit Wasserman <owasserm@redhat.com> |
Use qemu_put_buffer_async for guest memory pages
This will remove an unneeded copy of guest memory pages. For the page header and device state we still copy the data to the static buffer the other o
Use qemu_put_buffer_async for guest memory pages
This will remove an unneeded copy of guest memory pages. For the page header and device state we still copy the data to the static buffer the other option is to allocate the memory on demand which is more expensive.
Signed-off-by: Orit Wasserman <owasserm@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
show more ...
|
#
5cc11c46 |
| 26-Mar-2013 |
Peter Lieven <pl@kamp.de> |
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
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 since most of these pages are never transferred again.
this patch changes the XBZRLE transfer to only be used after the bulk stage has been completed. that means a page is added to the page cache the second time it is transferred and XBZRLE can benefit from the third time of transfer.
since the page cache is likely smaller than the number of pages it's also likely that in the second round the page is missing in the cache due to collisions in the bulk phase.
on the other hand a lot of unnecessary mallocs, memdups and frees are saved.
the following results have been taken earlier while executing the test program from docs/xbzrle.txt. (+) with the patch and (-) without. (thanks to Eric Blake for reformatting and comments)
+ total time: 22185 milliseconds - total time: 22410 milliseconds
Shaved 0.3 seconds, better than 1%!
+ downtime: 29 milliseconds - downtime: 21 milliseconds
Not sure why downtime seemed worse, but probably not the end of the world.
+ transferred ram: 706034 kbytes - transferred ram: 721318 kbytes
Fewer bytes sent - good.
+ remaining ram: 0 kbytes - remaining ram: 0 kbytes + total ram: 1057216 kbytes - total ram: 1057216 kbytes + duplicate: 108556 pages - duplicate: 105553 pages + normal: 175146 pages - normal: 179589 pages + normal bytes: 700584 kbytes - normal bytes: 718356 kbytes
Fewer normal bytes...
+ cache size: 67108864 bytes - cache size: 67108864 bytes + xbzrle transferred: 3127 kbytes - xbzrle transferred: 630 kbytes
...and more compressed pages sent - good.
+ xbzrle pages: 117811 pages - xbzrle pages: 21527 pages + xbzrle cache miss: 18750 - xbzrle cache miss: 179589
And very good improvement on the cache miss rate.
+ xbzrle overflow : 0 - xbzrle overflow : 0
Signed-off-by: Peter Lieven <pl@kamp.de> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Orit Wasserman <owasserm@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
show more ...
|
#
70c8652b |
| 26-Mar-2013 |
Peter Lieven <pl@kamp.de> |
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 <pl@kamp.de> Reviewed-by:
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 <pl@kamp.de> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Orit Wasserman <owasserm@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
show more ...
|
#
f1c72795 |
| 26-Mar-2013 |
Peter Lieven <pl@kamp.de> |
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
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 that the target starts swapping if the memory is overcommitted. it seems that the pages are dropped asynchronously.
this patch also updates QMP to return the number of skipped pages in MigrationStats.
Signed-off-by: Peter Lieven <pl@kamp.de> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
show more ...
|
#
78d07ae7 |
| 26-Mar-2013 |
Peter Lieven <pl@kamp.de> |
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 a
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 <pl@kamp.de> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Orit Wasserman <owasserm@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
show more ...
|
#
3edcd7e6 |
| 26-Mar-2013 |
Peter Lieven <pl@kamp.de> |
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.
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 buffer_is_zero().
raw performace gain checking 1 GByte zeroed memory over is_dup_page() is approx. 10-12% with SSE2 and 8-10% with unsigned long arithmedtic.
Signed-off-by: Peter Lieven <pl@kamp.de> Reviewed-by: Orit Wasserman <owasserm@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
show more ...
|
#
c61ca00a |
| 26-Mar-2013 |
Peter Lieven <pl@kamp.de> |
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 <pl@kamp.de> Signed-off-by: Jua
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 <pl@kamp.de> Signed-off-by: Juan Quintela <quintela@redhat.com>
show more ...
|
#
d15a9c23 |
| 18-Mar-2013 |
Anthony Green <green@moxielogic.com> |
Add top level changes for moxie
Signed-off-by: Anthony Green <green@moxielogic.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
|
#
ee0b44aa |
| 25-Feb-2013 |
Peter Lieven <pl@dlhnet.de> |
page_cache: dup memory on insert
The page cache frees all data on finish, on resize and if there is collision on insert. So it should be the caches responsibility to dup the data that is stored in t
page_cache: dup memory on insert
The page cache frees all data on finish, on resize and if there is collision on insert. So it should be the caches responsibility to dup the data that is stored in the cache.
Signed-off-by: Peter Lieven <pl@kamp.de> Signed-off-by: Orit Wasserman <owasserm@redhat.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Juan Quintela <quintela@redhat.com>
show more ...
|
#
9b095037 |
| 22-Feb-2013 |
Paolo Bonzini <pbonzini@redhat.com> |
migration: run setup callbacks out of big lock
Only the migration_bitmap_sync() call needs the iothread lock.
Reviewed-by: Orit Wasserman <owasserm@redhat.com> Reviewed-by: Juan Quintela <quintela@
migration: run setup callbacks out of big lock
Only the migration_bitmap_sync() call needs the iothread lock.
Reviewed-by: Orit Wasserman <owasserm@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
show more ...
|
#
32c835ba |
| 22-Feb-2013 |
Paolo Bonzini <pbonzini@redhat.com> |
migration: run pending/iterate callbacks out of big lock
This makes it possible to do blocking writes directly to the socket, with no buffer in the middle. For RAM, only the migration_bitmap_sync()
migration: run pending/iterate callbacks out of big lock
This makes it possible to do blocking writes directly to the socket, with no buffer in the middle. For RAM, only the migration_bitmap_sync() call needs the iothread lock. For block migration, it is needed by the block layer (including bdrv_drain_all and dirty bitmap access), but because some code is shared between iterate and complete, all of mig_save_device_dirty is run with the lock taken.
In the savevm case, the iterate callback runs within the big lock. This is annoying because it complicates the rules. Luckily we do not need to do anything about it: the RAM iterate callback does not need the iothread lock, and block migration never runs during savevm.
Reviewed-by: Orit Wasserman <owasserm@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
show more ...
|
#
90f8ae72 |
| 01-Feb-2013 |
Juan Quintela <quintela@redhat.com> |
migration: calculate expected_downtime
We removed the calculation in commit e4ed1541ac9413eac494a03532e34beaf8a7d1c5
Now we add it back. We need to create dirty_bytes_rate because we can't include
migration: calculate expected_downtime
We removed the calculation in commit e4ed1541ac9413eac494a03532e34beaf8a7d1c5
Now we add it back. We need to create dirty_bytes_rate because we can't include cpu-all.h from migration.c, and there is no other way to include TARGET_PAGE_SIZE.
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Orit Wasserman <owasserm@redhat.com>
show more ...
|