Statistics
| Branch: | Revision:

root / arch_init.c @ 1ab516ed

History | View | Annotate | Download (27.1 kB)

# Date Author Comment
ba6212d8 09/21/2012 04:12 pm Eduardo Habkost

Eliminate cpus-x86_64.conf file

This file is not needed anymore, as QEMU won't ship any config-based
cpudefs out of the box, relying only on the builtin CPU models.

Signed-off-by: Eduardo Habkost <>
Reviewed-by: Igor Mammedov <>...

55d4fd3c 09/19/2012 04:55 pm Peter Maydell

arch_init.c: Improve '-soundhw help' for non-HAS_AUDIO_CHOICE archs

For architectures which don't set HAS_AUDIO_CHOICE, improve the
'-soundhw help' message so that it doesn't simply print an empty
list, implying no sound support at all.

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

ef37a699 09/14/2012 10:21 am Igor Mitsyanko

arch_init.c: add missing '%' symbols before PRIu64 in debug printfs

'%' symbols were missing in front of PRIu64 macros in DPRINTF messages in
arch_init.c, this caused compilation warnings when compiled with DEBUG_ARCH_INIT defined.

Signed-off-by: Igor Mitsyanko <>...

99afc91d 08/22/2012 06:47 pm Daniel P. Berrange

qapi: add 'query-target' command to return target arch

Add a 'query-target' QAPI command to allow management applications
to determine what target architecture a QEMU binary is emulating
without having to parse the binary name or -help output

$ qmp-shell -p /tmp/qemu...
ac839ccd 08/14/2012 12:02 am Anthony Liguori

Merge remote-tracking branch 'quintela/migration-next-20120808' into staging

  • quintela/migration-next-20120808:
    Restart optimization on stage3 update version
    Add XBZRLE statistics
    Add migration accounting for normal and duplicate pages
    Change total_time to total-time in MigrationStats...
4f23a1e6 08/11/2012 12:36 pm Guan Xuetao

unicore32-softmmu: Add unicore32-softmmu build support

This patch adds unicore32-softmmu build support, include configure,
makefile, arch_init, and all missing functions needed by softmmu.
Although all missing functions are empty, unicore32-softmmu could...

17ad9b35 08/08/2012 02:51 pm Orit Wasserman

Add XBZRLE to ram_save_block and ram_save_live

In the outgoing migration check to see if the page is cached and
changed, then send compressed page by using save_xbrle_page function.
In the incoming migration check to see if RAM_SAVE_FLAG_XBZRLE is set
and decompress the page (by using load_xbrle function)....

9e1ba4cc 08/08/2012 02:51 pm Orit Wasserman

Add migrate_set_cache_size command

Change XBZRLE cache size in bytes (the size should be a power of 2, it will be
rounded down to the nearest power of 2).
If XBZRLE cache size is too small there will be many cache miss.

New query-migrate-cache-size QMP command and 'info migrate_cache_size' HMP...

004d4c10 08/08/2012 02:51 pm Orit Wasserman

Add migration accounting for normal and duplicate pages

Signed-off-by: Benoit Hudzia <>
Signed-off-by: Petter Svard <>
Signed-off-by: Aidan Shribman <>
Signed-off-by: Orit Wasserman <>...

f36d55af 08/08/2012 02:51 pm Orit Wasserman

Add XBZRLE statistics

Signed-off-by: Benoit Hudzia <>
Signed-off-by: Petter Svard <>
Signed-off-by: Aidan Shribman <>
Signed-off-by: Orit Wasserman <>
Signed-off-by: Juan Quintela <>...

dd051c72 08/08/2012 02:51 pm Juan Quintela

Restart optimization on stage3 update version

Signed-off-by: Juan Quintela <>

Reviewed-by: Luiz Capitulino <>
Reviewed-by: Eric Blake <>

c8057f95 08/02/2012 09:16 pm Peter Maydell

Support 'help' as a synonym for '?' in command line options

For command line options which permit '?' meaning 'please list the
permitted values', add support for 'help' as a synonym, by abstracting
the check out into a helper function.

This change means that in some cases where we were being lazy in...

e6a76719 07/30/2012 05:58 pm Anthony Liguori

Merge commit 'quintela/migration-next-v5' into staging

  • commit '6c779f22a93cc6e4565b940ef616e3efc5b50ba5':
    Change ram_save_block to return -1 if there are no more changes
    ram: save_live_setup() we don't need to synchronize the dirty bitmap.
    ram: iterate phase...
e67db06e 07/28/2012 12:12 am Jia Liu

target-or32: Add target stubs and QOM cpu

Add OpenRISC target stubs, QOM cpu and basic machine.

Signed-off-by: Jia Liu <>
Signed-off-by: Blue Swirl <>

6c779f22 07/23/2012 03:02 pm Orit Wasserman

Change ram_save_block to return -1 if there are no more changes

It will return 0 if the page is unmodifed.

Signed-off-by: Orit Wasserman <>

7908c78d 07/20/2012 09:19 am Juan Quintela

savevm: Live migration handlers register the struct directly

Notice that the live migration users never unregister, so no problem
about freeing the ops structure.

Signed-off-by: Juan Quintela <>

9b5bfab0 07/20/2012 09:19 am Juan Quintela

savevm: Refactor cancel operation in its own operation

Intead of abusing stage with value -1.

Signed-off-by: Juan Quintela <>

d1315aac 07/20/2012 09:19 am Juan Quintela

savevm: split save_live_setup from save_live_state

This patch splits stage 1 to its own function for both save_live
users, ram and block. It is just a copy of the function, removing the
parts of the other stages. Optimizations would came later.

Signed-off-by: Juan Quintela <>

16310a3c 07/20/2012 09:19 am Juan Quintela

savevm: split save_live into stage2 and stage3

We split it into 2 functions, foo_live_iterate, and foo_live_complete.
At this point, we only remove the bits that are for the other stage,
functionally this is equivalent to previous code.

Signed-off-by: Juan Quintela <>

5910d1e6 07/20/2012 09:19 am Juan Quintela

ram: save_live_setup() don't need to sent pages

We should send pages on interate phase, not in setup one. This was a
"bug". Just removing the loop does what we want. Tested that it
works with current ram_load().

Signed-off-by: Juan Quintela <>

b81e712d 07/20/2012 09:19 am Juan Quintela

ram: save_live_complete() only do one loop

We were doing the same loop that stage2, and a new one for stage3. We
only need the one for stage3.

Signed-off-by: Juan Quintela <>

00d94f3f 07/20/2012 09:19 am Juan Quintela

ram: iterate phase

We only need to synchronize the bitmap when the number of dirty pages is low.
Not every time that we call the function.

Signed-off-by: Juan Quintela <>

6d2fe810 07/20/2012 09:19 am Juan Quintela

ram: save_live_setup() we don't need to synchronize the dirty bitmap.

1st: we were synchonizing the dirty bitmap before calling
memory_global_dirty_log_start().

2nd: We are marking all pages as dirty anywhere, no reason to go
through all the bitmap to "mark" dirty same pages twice....

45f33f01 06/29/2012 02:31 pm Juan Quintela

Maintain the number of dirty pages

Calculate the number of dirty pages takes a lot on hosts with lots
of memory. Just maintain how many pages are dirty.

Signed-off-by: Juan Quintela <>

4508bd9e 06/29/2012 02:31 pm Juan Quintela

Exit loop if we have been there too long

Checking each 64 pages is a random magic number as good as any other.
We don't want to test too many times, but on the other hand,
qemu_get_clock_ns() is not so expensive either. We want to be sure
that we spent less than 50ms (half of buffered_file timer), if we...

5b3c9638 06/29/2012 02:28 pm Juan Quintela

Only calculate expected_time for stage 2

ram_save_remaining() is an expensive operation when there is a lot of memory.
So we only call the function when we need it.

Signed-off-by: Juan Quintela <>

8e21cd32 06/29/2012 02:27 pm Orit Wasserman

Add migration_end function

Signed-off-by: Orit Wasserman <>

3a697f69 06/29/2012 02:27 pm Orit Wasserman

Add debugging infrastructure

Signed-off-by: Orit Wasserman <>

0c51f43d 06/29/2012 02:18 pm Orit Wasserman

Add save_block_hdr function

Signed-off-by: Benoit Hudzia <>
Signed-off-by: Petter Svard <>
Signed-off-by: Aidan Shribman <>
Signed-off-by: Orit Wasserman <>

0ff1f9f5 06/29/2012 11:38 am Orit Wasserman

Add missing check for host_from_stream_offset return value for RAM_SAVE_FLAG_PAGE

Signed-off-by: Orit Wasserman <>

f283edc4 05/29/2012 12:38 pm Andreas Färber

arch_init: Fix AltiVec build on Darwin/ppc

Commit f29a56147b66845914d0a645bf9b4c5bb9a6af57 (implement
-no-user-config command-line option (v3)) introduced uses of bool
in arch_init.c. Shortly before that usage is support code for
AltiVec (conditional to ALTIVEC)....

f29a5614 05/10/2012 08:37 pm Eduardo Habkost

implement -no-user-config command-line option (v3)

Changes v2 -> v3:
- Rebase against latest qemu.git

Changes v1 -> v2:
- Change 'userconfig' field/variables to bool instead of int
- Coding style change

Signed-off-by: Eduardo Habkost <>...

e2d87bff 05/10/2012 08:37 pm Eduardo Habkost

move CPU definitions to /usr/share/qemu/cpus-x86_64.conf (v2)

Changes v1 -> v2:
- userconfig variable is now bool, not int

Signed-off-by: Eduardo Habkost <>
Signed-off-by: Anthony Liguori <>

756557de 05/10/2012 08:37 pm Eduardo Habkost

move list of default config files to an array

More files will be added to the list, with additional attributes, later.

Signed-off-by: Eduardo Habkost <>
Signed-off-by: Anthony Liguori <>

b5a8fe5e 05/10/2012 08:37 pm Eduardo Habkost

move code to read default config files to a separate function (v2)

Function added to arch_init.c because it depends on arch-specific
settings.

Changes v1 -> v2:
- Move qemu_read_default_config_file() prototype to qemu-config.h

Signed-off-by: Eduardo Habkost <>...

c8262a47 05/10/2012 08:37 pm Eduardo Habkost

eliminate arch_config_name variable

Not needed anymore, as the code that uses the variable is already inside
arch_init.c.

Signed-off-by: Eduardo Habkost <>
Signed-off-by: Anthony Liguori <>

da12872a 04/15/2012 07:56 am Hervé Poussineau

pcspk: initialize PC speaker if compiled in

PC speaker has been moved to target-independant code in 71093711589dafcb920dc3bc9bb811eaf8b14101,
so do not depend of target to include it or not.

Cc: malc <>
Cc: Blue Swirl <>...

539de124 03/15/2012 03:39 pm Luiz Capitulino

Purge migration of (almost) everything to do with monitors

The Monitor object is passed back and forth within the migration/savevm
code so that it can print errors and progress to the user.

However, that approach assumes a HMP monitor, being completely invalid...

302fe51b 02/17/2012 05:58 pm Jan Kiszka

pcspk: Convert to qdev

Convert the PC speaker device to a qdev ISA model. Move the public
interface to a dedicated header file at this chance.

CC: Paolo Bonzini <>
Signed-off-by: Jan Kiszka <>
Signed-off-by: Anthony Liguori <>

cd7a45c9 02/04/2012 02:45 pm Blue Swirl

memory: change dirty getting API to take a size

Instead of each device knowing or guessing the guest page size,
just pass the desired size of dirtied memory area.

Signed-off-by: Blue Swirl <>

fd4aa979 01/25/2012 08:32 pm Blue Swirl

memory: change dirty setting APIs to take a size

Instead of each target knowing or guessing the guest page size,
just pass the desired size of dirtied memory area.

Signed-off-by: Blue Swirl <>

86003615 01/13/2012 06:21 pm Paolo Bonzini

vectorize is_dup_page

is_dup_page is already proceeding in 32-bit chunks. Changing it
to 16 bytes using Altivec or SSE is easy.

Signed-off-by: Paolo Bonzini <>
Signed-off-by: Anthony Liguori <>

8f77558f 01/04/2012 01:34 pm Avi Kivity

memory: obsolete cpu_physical_memory_[gs]et_dirty_tracking()

The getter is no longer used, so it is completely removed.

Reviewed-by: Anthony Liguori <>
Signed-off-by: Avi Kivity <>

71c510e2 01/04/2012 01:34 pm Avi Kivity

Switch ram_save to the memory API

Avoid using ram_addr_t, instead use (MemoryRegion *, offset) pairs.

Reviewed-by: Anthony Liguori <>
Signed-off-by: Avi Kivity <>

8fec98b4 01/04/2012 01:34 pm Avi Kivity

Sort RAMBlocks by ID for migration, not by ram_addr

ram_addr is (a) unstable (b) going away. Sort by idstr instead.

Commit b2e0a138e initially introduced the sorting for the purpose
of improving debuggability. After this patch, the order is still
stable, but perhaps less usable by a human....

f09f2189 01/04/2012 01:34 pm Avi Kivity

Remove support for version 3 ram_load

Version 3 ram_load depends on ram_addrs, which are not stable. Version 4
was introduced in 0.13 (and RHEL 6), so this means live migration from 0.12
and earlier to 1.1 or later will not work.

Reviewed-by: Anthony Liguori <>...

dc94a7ed 01/04/2012 01:34 pm Avi Kivity

Convert ram_load() to the memory API

Reviewed-by: Anthony Liguori <>
Signed-off-by: Avi Kivity <>

f3c6a169 01/03/2012 10:39 pm Anthony Liguori

Merge remote-tracking branch 'qemu-kvm/memory/page_desc' into staging

  • qemu-kvm/memory/page_desc: (22 commits)
    Remove cpu_get_physical_page_desc()
    sparc: avoid cpu_get_physical_page_desc()
    virtio-balloon: avoid cpu_get_physical_page_desc()
    vhost: avoid cpu_get_physical_page_desc()...
4a0f031d 12/20/2011 11:44 pm Hervé Poussineau

audio: remove unused parameter isa_pic

Signed-off-by: Hervé Poussineau <>
Signed-off-by: Anthony Liguori <>

48a18b3c 12/20/2011 11:44 pm Hervé Poussineau

isa: give ISABus/ISADevice to isa_create(), isa_bus_irqs() and isa_get_irq() functions

NULL is a valid bus/device, so there is no change in behaviour.

Signed-off-by: Hervé Poussineau <>
Signed-off-by: Anthony Liguori <>

86e775c6 12/20/2011 02:14 pm Avi Kivity

memory: replace cpu_physical_sync_dirty_bitmap() with a memory API

The function is still used as the implementation.

Signed-off-by: Avi Kivity <>

dcd1d224 10/20/2011 02:23 pm Juan Quintela

migration: change has_error to contain errno values

We normally already have an errno value. When not, abuse EIO.

Signed-off-by: Juan Quintela <>

624b9cc2 10/20/2011 02:23 pm Juan Quintela

migration: rename qemu_file_has_error to qemu_file_get_error

Now the function returned errno, so it is better the new name.

Signed-off-by: Juan Quintela <>
Reviewed-by: Anthony Liguori <>

42802d47 10/20/2011 02:23 pm Juan Quintela

migration: use qemu_file_get_error() return value when possible

Signed-off-by: Juan Quintela <>

2975725f 10/20/2011 02:23 pm Juan Quintela

migration: make *save_live return errors

Make *save_live() return negative values when there is one error, and
updates all callers to check for the error.

Signed-off-by: Juan Quintela <>

74e26c17 09/23/2011 06:55 pm Frediano Ziglio

core: remove qemu_service_io

qemu_service_io was mainly an alias to qemu_notify_event,
currently used only by PPC for timer hack, so call
qemu_notify_event directly.

Signed-off-by: Frediano Ziglio <>
Signed-off-by: Anthony Liguori <>

2328826b 09/10/2011 07:57 pm Max Filippov

target-xtensa: add target stubs

Signed-off-by: Max Filippov <>
Signed-off-by: Blue Swirl <>

7267c094 08/21/2011 07:01 am Anthony Liguori

Use glib memory allocation and free functions

qemu_malloc/qemu_free no longer exist after this commit.

Signed-off-by: Anthony Liguori <>

303d4e86 05/08/2011 11:09 am Anthony PERARD

Introduce -machine command option.

This option gives the ability to switch one "accelerator" like kvm, xen
or the default one tcg. We can specify more than one accelerator by
separate them by a colon. QEMU will try each one and use the first whose
works....

81ea0e13 03/07/2011 02:42 pm Michael Walle

LatticeMico32 target support

This patch adds support for the LatticeMico32 softcore processor by Lattice
Semiconductor.

Signed-off-by: Michael Walle <>
Signed-off-by: Edgar E. Iglesias <>

0dfa5ef9 01/25/2011 10:18 am Isaku Yamahata

audio: consolidate audio_init()

consolidate audio_init() and remove references to shoundhw.

Signed-off-by: Isaku Yamahata <>
Acked-by: Blue Swirl <>
Signed-off-by: Aurelien Jarno <>

b2e0a138 12/02/2010 09:13 pm Michael S. Tsirkin

migration: stable ram block ordering

This makes ram block ordering under migration stable, ordered by offset.
This is especially useful for migration to exec, for debugging.

Signed-off-by: Michael S. Tsirkin <>
Tested-by: Jason Wang <>

4f25ac5f 11/01/2010 05:33 pm Anthony Liguori

Merge remote branch 'mst/for_anthony' into staging

d61a4ce8 11/01/2010 04:57 pm Gerd Hoffmann

Add Intel HD Audio support to qemu.

This patch adds three devices to qemu:

intel-hda
Intel HD Audio Controller, the PCI device. Provides a HDA bus.
Emulates ICH6 at the moment. Adding a ICH9 PCIE
variant shouldn't be hard.

hda-duplex
HDA Codec. Attaches to the HDA bus. Supports 16bit stereo,...

492fb99c 10/27/2010 07:54 pm Michael S. Tsirkin

migration: don't segfault on invalid input

host_from_stream_offset returns NULL on error,
return error instead of trying to use that address,
to avoid segfault on invalid stream.

Signed-off-by: Michael S. Tsirkin <>

e78815a5 09/25/2010 02:26 pm Andreas Färber

Introduce qemu_madvise()

vl.c has a Sun-specific hack to supply a prototype for madvise(),
but the call site has apparently moved to arch_init.c.

Haiku doesn't implement madvise() in favor of posix_madvise().
OpenBSD and Solaris 10 don't implement posix_madvise() but madvise()....

d20878d2 08/23/2010 12:19 am Yoshiaki Tamura

arch_init: replace tabs by spaces.

Signed-off-by: Yoshiaki Tamura <>
Signed-off-by: Anthony Liguori <>

760e77ea 08/19/2010 04:44 pm Alex Williamson

savevm: Reset last block info at beginning of each save

If we save more than once we need to reset the last block info or else
only the first save has the actual block info and each subsequent save
will only use continue flags, making them unloadable independently....

fb787f81 07/06/2010 06:36 pm Alex Williamson

ramblocks: No more being lazy about duplicate names

Now that we have a working qemu_ram_free() and the primary runtime
user of it has been updated, don't be lenient about duplicate id strings.
We also shouldn't need to create them ondemand at the target....

97ab12d4 07/06/2010 06:36 pm Alex Williamson

savevm: Migrate RAM based on name/offset

Synchronize RAM blocks with the target and migrate using name/offset
pairs. This ensures both source and target have the same view of
RAM and that we get the right bits into the right slot.

Signed-off-by: Alex Williamson <>...

e44359c3 07/06/2010 06:36 pm Alex Williamson

savevm: Use RAM blocks for basis of migration

We don't want to assume a contiguous address space, so migrate based
on RAM blocks instead of a fixed linear address map. This will allow
us to have holes in the ram_addr_t namespace, so we can implement
qemu_ram_free()....

a55bbe31 07/06/2010 06:36 pm Alex Williamson

savevm: Create a new continue flag to avoid resending block name

Allows us to compress the protocol a bit by setting a flag on the
offset which indicates we're still working within the same block
as last time. That way we can avoid sending the block name for...

d17b5288 07/06/2010 06:36 pm Alex Williamson

Remove uses of ram.last_offset (aka last_ram_offset)

We currently need this either to allocate the next ram_addr_t for a
new block, or for total memory to be migrated. Both of which we can
calculate without need of this to keep us in a contiguous address space....

f471a17e 06/14/2010 07:12 pm Alex Williamson

ram_blocks: Convert to a QLIST

This makes the RAM block list easier to manipulate. Also incorporate
relevant variables into the RAMList struct.

Signed-off-by: Alex Williamson <>
Acked-by: Chris Wright <>
Signed-off-by: Anthony Liguori <>

3fc250b4 06/01/2010 08:53 pm Pierre Riteau

migration: Fix calculation of bytes_transferred

When a page with all identical bytes is transferred, it is counted
as a full page (TARGET_PAGE_SIZE) although only one byte is actually
sent. Fix this by changing ram_save_block() to return the number of
bytes sent instead of a boolean value. This makes bandwidth...

1c47cb16 03/30/2010 10:27 pm Blue Swirl

Add missing #include needed for madvise() on OpenBSD

Signed-off-by: Blue Swirl <>

ad96090a 03/29/2010 10:23 pm Blue Swirl

Refactor target specific handling, compile vl.c only once

Move target specific functions and RAM handling to arch_init.c.

Add a flag to QEMUOptions structure to indicate for which
architectures the option is allowed, check the flag
in run time and remove conditional code in option handling....