| Branch: | Revision:

root / xen-all.c @ feature-archipelago

History | View | Annotate | Download (35.7 kB)

# Date Author Comment
d18e173a 12/01/2013 08:25 pm Wei Liu

xen: fix two errors when debug is enabled

This patch fixes:
1. build error in xen_pt.c when XEN_PT_LOGGING_ENABLED is defined
2. debug output format string error when DEBUG_XEN is defined

In the second case I also have the output info in consistent with the...

33876dfa 10/10/2013 05:25 pm Roger Pau Monné

qemu/xen: make use of xenstore relative paths

Qemu has several hardcoded xenstore paths that are only valid on Dom0.
Attempts to launch a Qemu instance (to act as a userspace backend for
PV disks) will fail because Qemu is not able to access those paths
when running on a domain different than Dom0....

1cd25a88 09/25/2013 07:41 pm Anthony PERARD

xen: Fix vcpu initialization.

Each vcpu need a evtchn binded in qemu, even those that are
offline at QEMU initialisation.

Signed-off-by: Anthony PERARD <>
Signed-off-by: Stefano Stabellini <>

11addd0a 09/25/2013 07:40 pm Liu, Jinsong

qemu: Add qemu xen logic for Xen HVM S3 resume

This patch is qemu patch 2 to fix Xen HVM S3 bug, adding qemu
xen logic. When qemu wakeup, qemu xen logic is notified and
hypercall to xen hypervisor to unpause domain.

Signed-off-by: Liu Jinsong <>...

04d7bad8 09/09/2013 07:22 pm Anthony PERARD

pc: Initializing ram_memory under Xen.

Signed-off-by: Anthony PERARD <>
Signed-off-by: Stefano Stabellini <>
Acked-by: Michael S. Tsirkin <>

bc72ad67 08/22/2013 08:14 pm Alex Bligh

aio / timers: Switch entire codebase to the new timer API

This is an autogenerated patch using scripts/switch-timer-api.

Switch the entire code base to using the new timer API.

Note this patch may introduce some line length issues.

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

dfde4e6e 07/04/2013 06:42 pm Paolo Bonzini

memory: add ref/unref calls

Add ref/unref calls at the following places:

- places where memory regions are stashed by a listener and
used outside the BQL (including in Xen or KVM).

- memory_region_find callsites

- creation of aliases and containers (only the aliased/contained...

2c9b15ca 07/04/2013 06:42 pm Paolo Bonzini

memory: add owner argument to initialization functions

Signed-off-by: Paolo Bonzini <>

fc744bb1 06/25/2013 02:59 pm Stefano Stabellini

Revert "xen: start PCI hole at 0xe0000000 (same as pc_init1 and qemu-xen-traditional)"

This reverts commit 9f24a8030a70ea4954b5b8c48f606012f086f65f.

The start of the PCI hole is actually set to 0xf0000000 by hvmloader.
In order to retain ABI compatibility with Xen we leave the start of the...

052e87b0 06/20/2013 05:32 pm Paolo Bonzini

memory: make section size a 128-bit integer

So far, the size of all regions passed to listeners could fit in 64 bits,
because artificial regions (containers and aliases) are eliminated by
the memory core, leaving only device regions which have reasonable sizes...

c5633d99 06/11/2013 10:45 pm Stefan Weil

hw/xen: Use g_free instead of free and fix potential memory leaks

The wrong functions and the missing calls of g_free were reported
by cppcheck.

Signed-off-by: Stefan Weil <>
Acked-by: Stefano Stabellini <>
Signed-off-by: Michael Tokarev <>

9f24a803 06/03/2013 06:41 pm Stefano Stabellini

xen: start PCI hole at 0xe0000000 (same as pc_init1 and qemu-xen-traditional)

We are currently setting the PCI hole to start at HVM_BELOW_4G_RAM_END,
that is 0xf0000000.
Start the PCI hole at 0xe0000000 instead, that is the same value used by
pc_init1 and qemu-xen-traditional....

95222d09 06/03/2013 06:41 pm Stefano Stabellini

xen: remove xen_vcpu_init

No need for xen_vcpu_init anymore:

- the RTC emulator doesn't have any periodic timers continuously running
even in absence of guest interactions anymore;

- qemu_dummy_start_vcpu takes care of disabling TCG for us, so we don't...

dccfcd0e 04/15/2013 07:19 pm Paolo Bonzini

sysemu: avoid proliferation of include/ subdirectories

Signed-off-by: Paolo Bonzini <>

0d09e41a 04/08/2013 07:13 pm Paolo Bonzini

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....

259186a7 03/12/2013 11:35 am Andreas Färber

cpu: Move halted and interrupt_request fields to CPUState

Both fields are used in VMState, thus need to be moved together.
Explicitly zero them on reset since they were located before

Pass PowerPCCPU to kvmppc_handle_halt().

Signed-off-by: Andreas Färber <>

4a1e40b5 01/15/2013 05:09 am Andreas Färber

xen: Simplify halting of first CPU

Use the global first_cpu variable to halt the CPU rather than using a
local first_cpu initialized from qemu_get_cpu(0).

This will allow to change qemu_get_cpu() return type to CPUState
despite use of the CPU_COMMON halted field in the reset handler....

4ad549e8 12/22/2012 02:04 pm Paolo Bonzini

xen: add missing include

xen-all needs to access CharDeviceState's filename field, so
it needs to include char/char.h.

Signed-off-by: Paolo Bonzini <>
Tested-by: Andreas Färber <>
Signed-off-by: Blue Swirl <>

27dd7730 12/20/2012 01:15 am Anthony Liguori

Merge remote-tracking branch 'bonzini/header-dirs' into staging

  • bonzini/header-dirs: (45 commits)
    janitor: move remaining public headers to include/
    hw: move executable format header files to hw/
    fpu: move public header file to include/fpu
    softmmu: move remaining include files to include/ subdirectories...
9c17d615 12/19/2012 09:32 am Paolo Bonzini

softmmu: move include files to include/sysemu/

Signed-off-by: Paolo Bonzini <>

1de7afc9 12/19/2012 09:32 am Paolo Bonzini

misc: move include files to include/qemu/

Signed-off-by: Paolo Bonzini <>

022c62cb 12/19/2012 09:31 am Paolo Bonzini

exec: move include files to include/exec/

Signed-off-by: Paolo Bonzini <>

249e7e0f 12/17/2012 01:44 pm Ian Jackson

cpu_ioreq_pio, cpu_ioreq_move: i should be uint32_t rather than int

The current code compare i (int) with req->count (uint32_t) in a for
loop, risking an infinite loop if req->count is equal to UINT_MAX.

Also i is only used in comparisons or multiplications with unsigned...

a3864829 12/17/2012 01:43 pm Ian Jackson

cpu_ioreq_pio, cpu_ioreq_move: introduce read_phys_req_item, write_phys_req_item

Replace a lot of formulaic multiplications (containing casts, no less)
with calls to a pair of functions. This encapsulates in a single
place the operations which require care relating to integer overflow....

f1b8caf1 12/17/2012 01:37 pm Sander Eikelenboom

Fix compile errors when enabling Xen debug logging.

Signed-off-by: Sander Eikelenboom <>
Acked-by: Stefano Stabellini <>

a2cb15b0 12/17/2012 01:02 pm Michael S. Tsirkin

pci: update all users to look in pci/

update all users so we can remove the makefile hack.

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

a8170e5e 10/23/2012 04:58 pm Avi Kivity

Rename target_phys_addr_t to hwaddr

target_phys_addr_t is unwieldly, violates the C standard (_t suffixes are
reserved) and its purpose doesn't match the name (most target_phys_addr_t
addresses are not target specific). Replace it with a finger-friendly,...

f6790af6 10/22/2012 03:50 pm Avi Kivity

memory: use AddressSpace for MemoryListener filtering

Using the AddressSpace type reduces confusion, as you can't accidentally
supply the MemoryRegion you're interested in.

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

bf83601f 10/15/2012 01:06 pm Avi Kivity

xen: drop no-op MemoryListener callbacks

Removes quite a bit of useless code.

Signed-off-by: Avi Kivity <>

4d5b97da 10/05/2012 04:10 pm Amos Kong

cleanup useless return sentence

This patch cleans up return sentences in the end of void functions.

Reported-by: Paolo Bonzini <>
Signed-off-by: Amos Kong <>
Signed-off-by: Stefan Hajnoczi <>

8aba7dc0 10/03/2012 04:49 pm Anthony PERARD

xen: Set the vram dirty when an error occur.

If the call to xc_hvm_track_dirty_vram() fails, then we set dirtybit on all the
video ram. This case happens during migration.

Signed-off-by: Anthony PERARD <>
Acked-by: Stefano Stabellini <>

910b38e4 10/03/2012 04:48 pm Anthony PERARD

xen: Introduce xen_modified_memory.

This function is to be used during live migration. Every write access to the
guest memory should call this funcion so the Xen tools knows which pages are

Signed-off-by: Anthony PERARD <>...

39f42439 10/03/2012 04:48 pm Anthony PERARD

QMP, Introduce xen-set-global-dirty-log command.

This command is used during a migration of a guest under Xen. It calls
memory_global_dirty_log_start or memory_global_dirty_log_stop according to the
argument pass to the command.

Signed-off-by: Anthony PERARD <>...

14d40183 08/22/2012 01:17 pm Dongxiao Xu

xen-all.c: fix multiply issue for int and uint types

If the two multiply operands are int and uint types separately,
the int type will be transformed to uint firstly, which is not the
intent in our code piece. The fix is to add (int64_t) transform
for the uint type before the multiply....

753d5e14 07/12/2012 02:08 pm Paolo Bonzini

memory: pass EventNotifier, not eventfd

Under Win32, EventNotifiers will not have event_notifier_get_fd, so we
cannot call it in common code such as hw/virtio-pci.c. Pass a pointer to
the notifier, and only retrieve the file descriptor in kvm-specific code....

eaab4d60 06/21/2012 07:06 pm Allen Kay

Introduce Xen PCI Passthrough, qdevice

A more complete history can be found here:

Signed-off-by: Allen Kay <>
Signed-off-by: Guy Zana <>
Signed-off-by: Anthony PERARD <>...

180640ea 05/17/2012 01:52 pm John V. Baboval

Call xc_domain_shutdown with the reboot flag when the guest requests a reboot.

Signed-off-by: John V. Baboval <>
Signed-off-by: Tom Goetz <>
Signed-off-by: Anthony PERARD <>...

95d5d75e 05/17/2012 01:43 pm Stefano Stabellini

xen: disable rtc_clock

rtc_clock is only used by the RTC emulator (mc146818rtc.c), however Xen
has its own RTC emulator in the hypervisor so we can disable it.

Signed-off-by: Stefano Stabellini <>

4c9f8d1b 04/17/2012 09:04 pm Stefano Stabellini

xen: add a dummy xc_hvm_inject_msi for Xen < 4.2

xc_hvm_inject_msi is only available on Xen >= 4.2: add a dummy
compatibility function for Xen < 4.2.

Also enable msi support only on Xen >= 4.2.

Signed-off-by: Stefano Stabellini <>...

fda1f768 04/13/2012 08:46 pm Stefano Stabellini

xen: introduce an event channel for buffered io event notifications

Use the newly introduced HVM_PARAM_BUFIOREQ_EVTCHN to receive
notifications for buffered io events.
After the first notification is received leave the event channel masked
and setup a timer to process the rest of the batch....

f1dbf015 04/13/2012 08:34 pm Wei Liu

Xen: basic HVM MSI injection support.

Signed-off-by: Wei Liu <>
Signed-off-by: Stefano Stabellini <>

33cf629a 03/19/2012 08:39 pm Anthony Liguori

Merge remote-tracking branch 'sstabellini/saverestore-8' into staging

  • sstabellini/saverestore-8:
    xen: do not allocate RAM during INMIGRATE runstate
    xen mapcache: check if memory region has moved.
    xen: record physmap changes to xenstore
    Set runstate to INMIGRATE earlier...
d1814e08 03/19/2012 08:21 pm Stefano Stabellini

xen: record physmap changes to xenstore

Write to xenstore any physmap changes so that the hypervisor can be
aware of them.
Read physmap changes from xenstore on boot.

Signed-off-by: Stefano Stabellini <>

cd1ba7de 03/19/2012 08:21 pm Anthony PERARD

xen mapcache: check if memory region has moved.

This patch changes the xen_map_cache behavior. Before trying to map a guest
addr, mapcache will look into the list of range of address that have been moved
(physmap/set_memory). There is currently one memory space like this, the vram,...

c234572d 03/19/2012 08:21 pm Anthony PERARD

xen: do not allocate RAM during INMIGRATE runstate

Signed-off-by: Anthony PERARD <>
Signed-off-by: Stefano Stabellini <>

9349b4f9 03/14/2012 11:20 pm Andreas Färber

Rename CPUState -> CPUArchState

Scripted conversion:
for file in .[hc] hw/.[hc] hw/kvm/*.[hc] linux-user/*.[hc] linux-user/m68k/*.[hc] bsd-user/*.[hc] darwin-user/*.[hc] tcg/*/*.[hc] target-*/cpu.h; do
sed -i "s/CPUState/CPUArchState/g" $file

14655e48 03/01/2012 11:26 pm Anthony Liguori

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

  • qemu-kvm/memory/core: (30 commits)
    memory: allow phys_map tree paths to terminate early
    memory: unify PhysPageEntry::node and ::leaf
    memory: change phys_page_set() to set multiple pages...
7376e582 02/29/2012 01:44 pm Avi Kivity

memory: allow MemoryListeners to observe a specific address space

Ignore any regions not belonging to a specified address space.

Signed-off-by: Avi Kivity <>

947f562c 02/29/2012 01:44 pm Avi Kivity

xen: ignore I/O memory regions

Signed-off-by: Avi Kivity <>

50c1e149 02/29/2012 01:44 pm Avi Kivity

memory: support stateless memory listeners

Current memory listeners are incremental; that is, they are expected to
maintain their own state, and receive callbacks for changes to that state.

This patch adds support for stateless listeners; these work by receiving...

72e22d2f 02/29/2012 01:44 pm Avi Kivity

memory: switch memory listeners to a QTAILQ

This allows reverse iteration, which in turns allows consistent ordering
among multiple listeners:


Signed-off-by: Avi Kivity <>
Reviewed-by: Richard Henderson <>

80a1ea37 02/29/2012 01:44 pm Avi Kivity

memory: move ioeventfd ops to MemoryListener

This way the accelerator (kvm) can handle them directly.

Signed-off-by: Avi Kivity <>
Reviewed-by: Richard Henderson <>

da98c8eb 02/24/2012 09:36 pm Gerd Hoffmann

suspend: switch acpi s3 to new infrastructure.

This patch switches pc s3 suspend over to the new infrastructure.
The cmos_s3 qemu_irq is killed, the new notifier is used instead.
The xen hack goes away with that too, the hypercall can simply be
done in a notifier function now....

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 <>

6b620ca3 01/13/2012 06:55 pm Paolo Bonzini

prepare for future GPLv2+ relicensing

All files under GPLv2 will get GPLv2+ changes starting tomorrow.
event_notifier.c and exec-obsolete.h were only ever touched by Red Hat
employees and can be relicensed now.

Signed-off-by: Paolo Bonzini <>...

b18620cf 01/05/2012 02:47 pm Anthony PERARD

xen: Fix after recent change in dirty bitmap tracking.

A recent patch set from Avi break the dirty bitmap support of Xen. But
this is because xen_sync_dirty_bitmap will return an error for an
unhandled memory range (a0000 - bffff). However this is not a fatal...

5a97065b 01/04/2012 01:34 pm Avi Kivity

xen: convert framebuffer dirty tracking to memory API

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

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

vmstate, memory: decouple vmstate from memory API

Currently creating a memory region automatically registers it for
live migration. This differs from other state (which is enumerated
in a VMStateDescription structure) and ties the live migration code
into the memory core....

20581d20 01/03/2012 07:19 pm Avi Kivity

xen: convert to MemoryListener API

Signed-off-by: Avi Kivity <>

c65adf9b 12/20/2011 02:14 pm Avi Kivity

xen, vga: add API for registering the framebuffer

Xen currently uses the name of a memory region to determine whether it
is the framebuffer. Replace with an explicit API.

Signed-off-by: Avi Kivity <>

ce76b8a8 12/19/2011 05:23 pm Avi Kivity

xen: convert to memory API

Undo the private implementation of qemu_ram_alloc(); use the global one
(which calls right back into xen_ram_alloc()).

Signed-off-by: Avi Kivity <>

fce537d4 12/19/2011 05:23 pm Avi Kivity

memory, xen: pass MemoryRegion to xen_ram_alloc()

Currently xen_ram_alloc() relies on ram_addr, which is going away.
Give it something else to use as a cookie.

Signed-off-by: Avi Kivity <>

1dfb4dd9 09/15/2011 10:39 pm Luiz Capitulino

Replace the VMSTOP macros with a proper state type

Today, when notifying a VM state change with vm_state_notify(),
we pass a VMSTOP macro as the 'reason' argument. This is not ideal
because the VMSTOP macros tell why qemu stopped and not exactly
what the current VM state is....

1354869c 09/15/2011 10:39 pm Luiz Capitulino

Drop the vm_running global variable

Use runstate_is_running() instead, which is introduced by this commit.

Signed-off-by: Luiz Capitulino <>

2b734340 09/09/2011 04:13 pm Stefano Stabellini

xen: use uint64_t instead of target_ulong in cpu_ioreq_move

cpu_ioreq_move might move 8 bytes at a time so we must make sure that
the temporary variable can hold 8 bytes.

Signed-off-by: Stefano Stabellini <>

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 <>

8a369e20 07/26/2011 07:57 am Anthony PERARD

xen: Fix the memory registration to reflect of what is done by Xen.

A Xen guest memory is allocated by libxc. But this memory is not
allocated continuously, instead, it leaves the VGA IO memory space not
allocated, same for the MMIO space (at HVM_BELOW_4G_MMIO_START of size...

f15fbc4b 07/26/2011 07:57 am Anthony PERARD

cpu-common: Have a ram_addr_t of uint64 with Xen.

In Xen case, memory can be bigger than the host memory. that mean a
32bits host (and QEMU) should be able to handle a RAM address of 64bits.

Signed-off-by: Anthony PERARD <>
Signed-off-by: Alexander Graf <>

fb4bb2b5 07/26/2011 07:43 am Anthony PERARD

xen: introduce xen_change_state_handler

Remove the call to xenstore_record_dm_state from xen_main_loop_prepare
that is HVM specific.
Add a new vm_change_state_handler shared between xen_pv and xen_hvm
machines to record the VM state to xenstore.

Signed-off-by: Anthony PERARD <>...

9e8dd451 07/23/2011 07:26 pm Jan Kiszka

notifier: Pass data argument to callback

This allows to pass additional information to the notifier callback
which is useful if sender and receiver do not share any other distinct
data structure.

Will be used first for the clock reset notifier.

Signed-off-by: Jan Kiszka <>...

37cdfcf1 07/17/2011 02:54 am Stefano Stabellini

xen: add vkbd support for PV on HVM guests

Register the vkbd backend even when running as device emulator for HVM
guests: it is useful because it doesn't need a frequent timer like usb.

Check whether the XenInput DisplayState has been set in the initialise...

0f51726a 07/17/2011 02:54 am Stefano Stabellini

xen_console: support the new extended xenstore protocol

Since CS 21994 on xen-unstable.hg and CS
466608f3a32e1f9808acdf832a5843af37e5fcec on qemu-xen-unstable.git, few
changes have been introduced to the PV console xenstore protocol, as
described by the document docs/misc/console.txt under xen-unstable.hg....

e41d7c69 07/17/2011 02:54 am Jan Kiszka

xen: Clean up map cache API naming

The map cache is a Xen thing, so its API should make this clear.

Signed-off-by: Jan Kiszka <>
Signed-off-by: Alexander Graf <>

ad35a7da 07/17/2011 02:54 am Stefano Stabellini

xen: enable console and disk backend in HVM mode

Initialize the Xen console backend and the Xen disk backend even when
running in HVM mode so that PV on HVM drivers can connect to them.

Signed-off-by: Stefano Stabellini <>...

9319a6d3 06/22/2011 03:14 pm Anthony Liguori

Merge remote-tracking branch 'qmp/for-anthony' into staging

ebed8505 06/19/2011 05:42 am Stefano Stabellini

xen: only track the linear framebuffer

Xen can only do dirty bit tracking for one memory region, so we should
explicitly avoid trying to track anything but the vga vram region.

Signed-off-by: Stefano Stabellini <>
Signed-off-by: Alexander Graf <>

b4dd7802 06/19/2011 05:40 am Anthony PERARD

xen: Introduce VGA sync dirty bitmap support

This patch introduces phys memory client for Xen.

Only sync dirty_bitmap and set_memory are actually implemented.
migration_log will stay empty for the moment.

Xen can only log one range for bit change, so only the range in the...

e063eb1f 06/16/2011 05:42 pm Jan Kiszka

Allow silent system resets

This allows qemu_system_reset to be issued silently for internal
purposes, ie. without sending out a monitor event. Convert the system
reset after startup to the silent mode.

Signed-off-by: Jan Kiszka <>
Signed-off-by: Luiz Capitulino <>

29321335 05/08/2011 11:10 am Anthony PERARD

xen: Set running state in xenstore.

This tells to the xen management tool that the machine can begin run.

Signed-off-by: Anthony PERARD <>
Acked-by: Alexander Graf <>
Signed-off-by: Alexander Graf <>

c9622478 05/08/2011 11:10 am Anthony PERARD

xen: Add Xen hypercall for sleep state in the cmos_s3 callback.

Signed-off-by: Anthony PERARD <>
Signed-off-by: Alexander Graf <>

9c11a8ac 05/08/2011 11:10 am Anthony PERARD

xen: Introduce Xen Interrupt Controller

Every set_irq call makes a Xen hypercall.

Signed-off-by: Anthony PERARD <>
Signed-off-by: Stefano Stabellini <>
Signed-off-by: Alexander Graf <>

432d268c 05/08/2011 11:10 am Jun Nakajima

xen: Introduce the Xen mapcache

On IA32 host or IA32 PAE host, at present, generally, we can't create
an HVM guest with more than 2G memory, because generally it's almost
impossible for Qemu to find a large enough and consecutive virtual
address space to map an HVM guest's whole physical address space....

9ce94e7c 05/08/2011 11:10 am Arun Sharma

xen: Initialize event channels and io rings

Open and bind event channels; map ioreq and buffered ioreq rings.

Signed-off-by: Arun Sharma <>
Signed-off-by: Anthony PERARD <>
Signed-off-by: Stefano Stabellini <>...

3285cf4f 05/08/2011 11:10 am Anthony PERARD

xen: Add initialisation of Xen

The xenpv machine use the common init function.

Signed-off-by: Anthony PERARD <>
Acked-by: Alexander Graf <>
Signed-off-by: Alexander Graf <>

29d3ccde 05/08/2011 11:10 am Anthony PERARD

xen: Add xenfv machine

Introduce the Xen FV (Fully Virtualized) machine to Qemu, some more Xen
specific call will be added in further patches.

Signed-off-by: Anthony PERARD <>
Signed-off-by: Alexander Graf <>

41445300 05/08/2011 11:10 am Anthony PERARD

piix_pci: Introduces Xen specific call for irq.

This patch introduces Xen specific call in piix_pci.

The specific part for Xen is in write_config, set_irq and get_pirq.

Signed-off-by: Anthony PERARD <>
Signed-off-by: Stefano Stabellini <>...