| Branch: | Revision:

root / exec.c @ a74cdab4

History | View | Annotate | Download (132.6 kB)

# Date Author Comment
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....

050a0ddf 05/08/2011 11:10 am Anthony PERARD

Introduce qemu_put_ram_ptr

This function allows to unlock a ram_ptr give by qemu_get_ram_ptr. After
a call to qemu_put_ram_ptr, the pointer may be unmap from QEMU when
used with Xen.

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

5300f1a5 05/05/2011 04:39 pm Michael S. Tsirkin

Merge remote branch 'origin/master' into pci


8d4c78e7 05/05/2011 04:23 pm Alex Williamson

CPUPhysMemoryClient: Pass guest physical address not region offset

When we're trying to get a newly registered phys memory client updated
with the current page mappings, we end up passing the region offset
(a ram_addr_t) as the start address rather than the actual guest...

c2f42bf0 05/05/2011 04:21 pm Alex Williamson

CPUPhysMemoryClient: Fix typo in phys memory client registration

When we register a physical memory client, we try to walk the page
tables, calling the set_memory hook for every entry. Effectively
playing catchup for the client for everything already registered....

97ffbd8d 05/02/2011 03:38 pm Jan Kiszka

Break up user and system cpu_interrupt implementations

Both have only two lines in common, and we will convert the system
service into a callback which is of no use for user mode operation.

Signed-off-by: Jan Kiszka <>
CC: Riku Voipio <>...

ec6959d0 05/02/2011 03:38 pm Jan Kiszka

Redirect cpu_interrupt to callback handler

This allows to override the interrupt handling of QEMU in system mode.
KVM will make use of it to set a specialized handler.

Signed-off-by: Jan Kiszka <>
Signed-off-by: Marcelo Tosatti <>

618ba8e6 04/20/2011 11:37 am Stefan Weil

Remove unused function parameter from cpu_restore_state

The previous patch removed the need for parameter puc.
Is is now unused, so remove it.

Cc: Aurelien Jarno <>
Reviewed-by: Peter Maydell <>
Signed-off-by: Stefan Weil <>

71d2b725 04/12/2011 10:51 pm Stefan Weil

exec: Remove a type cast which is no longer needed

All other type casts in calls of cpu_physical_memory_write are
used by hardware emulations and will be fixed by separate patches.

Cc: Blue Swirl <>
Signed-off-by: Stefan Weil <>...

54f7b4a3 04/12/2011 10:51 pm Stefan Weil

Replace cpu_physical_memory_rw were possible

Using cpu_physical_memory_read, cpu_physical_memory_write and ldub_phys
improves readability and allows removing some type casts.

lduw_phys and ldl_phys were not used because both require aligned
addresses. Therefore it is not possible to simply replace existing...

3b8e6a2d 04/07/2011 11:53 am Edgar E. Iglesias

exec: Handle registrations of the entire address space

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

0fd542fb 04/06/2011 10:28 pm Michael S. Tsirkin

cpu: add set_memory flag to request dirty logging

Pass the flag to all cpu notifiers, doing
nothing at this point. Will be used by
follow-up patches.

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

dc7a09cf 03/16/2011 10:11 pm Jan Kiszka

Expose thread_id in info cpus

Based on patch by Glauber Costa:

To allow management applications like libvirt to apply CPU affinities to
the VCPU threads, expose their ID via info cpus. This patch provides the
pre-existing and used interface from qemu-kvm....

fd28aa13 03/15/2011 07:36 pm Jan Kiszka

s390: Detect invalid invocations of qemu_ram_free/remap

This both detects invalid invocations of qemu_ram_free and
qemu_ram_remap when mem_path is non-NULL and fixes a build error on
s390 ("'area' may be used uninitialized in this function").

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

cd19cfa2 03/15/2011 06:19 am Huang Ying

Add qemu_ram_remap

qemu_ram_remap() unmaps the specified RAM pages, then re-maps these
pages again. This is used by KVM HWPoison support to clear HWPoisoned
page tables across guest rebooting, so that a new page may be
allocated later to recover the memory error....

b7680cb6 03/13/2011 04:44 pm Jan Kiszka

Refactor thread retrieval and check

We have qemu_cpu_self and qemu_thread_self. The latter is retrieving the
current thread, the former is checking for equality (using CPUState). We
also have qemu_thread_equal which is only used like qemu_cpu_self.

This refactors the interfaces, creating qemu_cpu_is_self and...

7d82af38 03/11/2011 12:12 am Vincent Palatin

Fix performance regression in qemu_get_ram_ptr

When the commit f471a17e9d869df3c6573f7ec02c4725676d6f3a converted the
ram_blocks structure to QLIST, it also removed the conditional check before
switching the current block at the beginning of the list.

In the common use case where ram_blocks has a few blocks with only one...

e5896b12 02/14/2011 04:39 pm Anthony PERARD

Introduce log_start/log_stop in CPUPhysMemoryClient

In order to use log_start/log_stop with Xen as well in the vga code,
this two operations have been put in CPUPhysMemoryClient.

The two new functions cpu_physical_log_start,cpu_physical_log_stop are
used in hw/vga.c and replace the kvm_log_start/stop. With this, vga does...

d1a1eb74 02/10/2011 07:17 pm Tristan Gingold

Make tb_alloc static

This function is only used within exec.c, so no need to make it public.

Signed-off-by: Tristan Gingold <>
Signed-off-by: Aurelien Jarno <>

4cd31ad2 01/16/2011 10:32 am Blue Swirl

tcg/sparc64: fix segfault

With current OpenBSD, code_gen_buffer was mapped 8GB away from
text segment. Then any helpers were beyond the 2GB range of call
instruction genereated by TCG and so the calls would go nowhere,
leading to a segfault.

Fix by specifying an address for the code_gen_buffer,...

cbb608a5 12/21/2010 09:44 pm Brad

Use mmap() within code_gen_alloc() for OpenBSD.

Signed-off-by: Brad Smith <>
Signed-off-by: Blue Swirl <>

dd310534 12/11/2010 05:24 pm Alexander Graf

exec: introduce endianness swapped mmio

The way we're currently modeling mmio is too simplified. We assume that
every device has the same endianness as the target CPU. In reality,
most devices are little endian (all PCI and ISA ones I'm aware of). Some
are big endian (special system devices) and a very little fraction is...

2507c12a 12/11/2010 05:24 pm Alexander Graf

Add endianness as io mem parameter

As stated before, devices can be little, big or native endian. The
target endianness is not of their concern, so we need to push things
down a level.

This patch adds a parameter to cpu_register_io_memory that allows a
device to choose its endianness. For now, all devices simply choose...

db1923de 12/03/2010 07:50 pm Stefan Hajnoczi

exec: Remove debugging fprintf() that slipped into qemu_ram_alloc_from_ptr()

Remove the debugging fprintf() slipped in via the following commit:

commit b2e0a138e77245290428a7d599a929e2e1bfe510
Author: Michael S. Tsirkin &lt;&gt;
Date: Mon Nov 22 19:52:34 2010 +0200...
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 <>

055403b2 10/30/2010 11:01 am Stefan Weil

exec: Use fprintf_function for dump_exec_info (format checking)

fprintf_function uses format checking with GCC_FMT_ATTR.

It is declared in qemu-common.h and used in cpu-all.h
(which is included from cpu.h), so qemu-common.h must
be included earlier. Some redundant include statements...

e890261f 10/21/2010 12:15 am Marcelo Tosatti

Export qemu_ram_addr_from_host

To be used by next patches.

Signed-off-by: Marcelo Tosatti <>
Signed-off-by: Avi Kivity <>

7fd3f494 10/03/2010 09:41 am Stefan Weil

exec: Fix compilation error for debug code

is_softmmu was removed with commit
so remove it now from debug code, too.

Fix also the format specifier for paddr
in the same line of code.

Cc: Blue Swirl <>...

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

95c318f5 08/28/2010 11:47 am Gleb Natapov

Fix segfault in mmio subpage handling code.

It is possible that subpage mmio is registered over existing memory
page. When this happens "memory" will have real memory address and not
index into io_mem array so next access to the page will generate
segfault. It is uncommon to have some part of a page to be accessed as...

9742bf26 08/23/2010 12:19 am Yoshiaki Tamura

exec: replace tabs by spaces.

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

6977dfe6 08/23/2010 12:19 am Yoshiaki Tamura

exec: remove code duplication in qemu_ram_alloc() and qemu_ram_alloc_from_ptr()

Since most of the code in qemu_ram_alloc() and
qemu_ram_alloc_from_ptr() are duplicated, let
qemu_ram_alloc_from_ptr() to switch by checking void *host, and change
qemu_ram_alloc() to a wrapper....

84b89d78 08/11/2010 12:25 am Cam Macdonell

Add qemu_ram_alloc_from_ptr function

Provide a function to add an allocated region of memory to the qemu RAM.

This patch is copied from Marcelo's qemu_ram_map() in qemu-kvm and given the
clearer name qemu_ram_alloc_from_ptr().

Signed-off-by: Cam Macdonell <>...

24ab68ac 07/22/2010 06:52 am Stefan Weil

Declare code_gen_ptr, code_gen_max_blocks 'static'

Both values are only used in exec.c, so there is no need
to make them globally available.

Signed-off-by: Stefan Weil <>
Signed-off-by: Aurelien Jarno <>

09d7ae90 07/07/2010 10:37 pm Blue Swirl

Fix warning about uninitialized variable

With gcc 4.2.1-sjlj (mingw32-2) I get this warning:
/src/qemu/exec.c: In function 'qemu_ram_alloc':
/src/qemu/exec.c:2777: warning: 'offset' may be used uninitialized in this function

Fix by initializing the variable....

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

0be71e32 07/06/2010 06:36 pm Alex Williamson

savevm: Add DeviceState param

When available, we'd like to be able to access the DeviceState
when registering a savevm. For buses with a get_dev_path()
function, this will allow us to create more unique savevm
id strings.

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

1724f049 07/06/2010 06:36 pm Alex Williamson

qemu_ram_alloc: Add DeviceState and name parameters

These will be used to generate unique id strings for ramblocks. The name
field is required, the device pointer is optional as most callers don't
have a device. When there's no device or the device isn't a child of...

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

ramblocks: Make use of DeviceState pointer and BusInfo.get_dev_path

With these two pieces in place, we can start naming ramblocks. When
the device is present and it lives on a bus that provides a device
path, we concatenate the path and the provided name. Otherwise we...

04b16653 07/06/2010 06:36 pm Alex Williamson

qemu_ram_free: Implement it

Now that we can support a ram_addr_t space with holes, we can implement

Signed-off-by: Alex Williamson <>
Signed-off-by: Anthony Liguori <>

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

bf298f83 06/30/2010 09:25 pm Jun Koi

A bit optimization for tlb_set_page()

This patch avoids handling write watchpoints on read-only memory access.
It also breaks the searching loop for watchpoint once the setup for
handling watchpoint later is done.

Signed-off-by: Jun Koi <>...

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

eba0b893 06/11/2010 10:30 am Richard Henderson

tcg-s390: Allocate the code_gen_buffer near the main program.

This allows the use of direct calls to the helpers,
and a direct branch back to the epilogue.

Signed-off-by: Richard Henderson <>
Signed-off-by: Aurelien Jarno <>

239fda31 06/09/2010 05:10 pm Aurelien Jarno

tcg: get rid of copy_size in TCGOpDef

copy_size is a left-over from the dyngen era, remove it.

Signed-off-by: Aurelien Jarno <>

9002ec79 05/21/2010 07:41 pm Richard Henderson

tcg: Initialize the prologue after GUEST_BASE is fixed.

This will allow backends to make intelligent choices about how
to implement GUEST_BASE.

Signed-off-by: Richard Henderson <>
Signed-off-by: Aurelien Jarno <>

618a568d 05/11/2010 08:02 pm Marcelo Tosatti

Fix -mem-path with hugetlbfs

Fallback to qemu_vmalloc in case file_ram_alloc fails.

Signed-off-by: Marcelo Tosatti <>
Signed-off-by: Avi Kivity <>

3cab721d 05/07/2010 07:58 pm Richard Henderson

Fill in unassigned mem read/write callbacks.

Implement the "functions may be omitted with NULL pointer"
interface mentioned in the function block comment by transforming
NULL entries in the read/write arrays into calls to the
unassigned_mem family of functions....

733f0b02 05/06/2010 08:28 am Michael S. Tsirkin

qemu: address todo comment in exec.c

exec.c has a comment 'XXX: optimize' for lduw_phys/stw_phys,
so let's do it, along the lines of stl_phys.

The reason to address 16 bit accesses specifically is that virtio relies
on these accesses to be done atomically, using memset as we do now...

3e0650a9 05/06/2010 07:45 am Richard Henderson

Fix zero-length write(2).

Signed-off-by: Richard Henderson <>
Signed-off-by: Aurelien Jarno <>

2e9a5713 05/05/2010 06:32 pm Paul Brook


The usermode PAGE_RESERVED code is not required by the current mmap
implementation, and is already broken when guest_base != 0.
Unfortunately the bsd emulation still uses the old mmap implementation,
so we can't rip it out altogether....

f6405247 04/25/2010 03:59 pm Richard Henderson


Greatly simplify the subpage implementation by not supporting
multiple devices at the same address at different widths. We
don't need full copies of mem_read/mem_write/opaque for each
address, only a single index back into the main io_mem_* arrays....

24f7fb19 04/11/2010 11:15 pm Jun Koi

Cleanup dead code

This patch removes some dead code in exec.c

Signed-off-by: Jun Koi <>
Signed-off-by: Blue Swirl <>

fd436907 04/10/2010 06:20 pm Aurelien Jarno

Revert "Avoid page_set_flags() assert in qemu-user host page protection code"

This reverts commit 01c0bef1625d8e5d6d5c6abaf413214d667615ad.

(breaks build on 32-bit hosts)

01c0bef1 04/09/2010 11:01 pm Juergen Lock

Avoid page_set_flags() assert in qemu-user host page protection code

V2 that uses endaddr = end-of-guest-address-space if !h2g_valid(endaddr)
after I found out that indeed works; and also disables the FreeBSD 6.x
/compat/linux/proc/self/maps fallback because it can return partial lines...

f7c11b53 04/08/2010 12:11 pm Yoshiaki Tamura

Replace direct phys_ram_dirty access with wrapper functions.

Replaces direct phys_ram_dirty access with wrapper functions to prevent
direct access to the phys_ram_dirty bitmap.

Signed-off-by: Yoshiaki Tamura <>
Signed-off-by: OHMURA Kei <>...

355b1943 04/05/2010 02:28 am Paul Brook

Split TLB addend and target_phys_addr_t

Historically the qemu tlb "addend" field was used for both RAM and IO accesses,
so needed to be able to hold both host addresses (unsigned long) and guest
physical addresses (target_phys_addr_t). However since the introduction of...

45d679d6 04/01/2010 10:51 pm Aurelien Jarno

linux-user: fix page_unprotect when host page size > target page size

When the host page size is bigger that the target one, unprotecting a
page should:
- mark all the target pages corresponding to the host page as writable
- invalidate all tb corresponding to the host page (and not the target...

ebf50fb3 04/01/2010 10:51 pm Aurelien Jarno

tcg: align static_code_gen_buffer to CODE_GEN_ALIGN

On ia64, the default memory alignement is not enough for a code
alignement. To fix that, force static_code_gen_buffer alignment

Signed-off-by: Aurelien Jarno <>

f01576f1 03/30/2010 08:45 pm Juergen Lock

Get bsd-user host page protection code working on FreeBSD hosts

Use kinfo_getvmmap(3) on FeeBSD >= 7.x and /compat/linux/proc on older
FreeBSD. (kinfo_getvmmap is preferred since /compat/linux/proc is
usually only mounted on hosts also using the Linuxolator.)...

29e922b6 03/29/2010 10:24 pm Blue Swirl

Compile qemu-timer only once

Arrange various declarations so that also non-CPU code can access
them, adjust users.

Move CPU specific code to cpus.c.

Signed-off-by: Blue Swirl <>

91dbed4b 03/28/2010 07:47 pm Aurelien Jarno

exec: remove dead code

Signed-off-by: Aurelien Jarno <>

6adc0549 03/27/2010 04:26 pm Michael Tokarev

be more specific in -mem-path error messages

Signed-Off-By: Michael Tokarev <>
Signed-off-by: Aurelien Jarno <>

d4c430a8 03/17/2010 04:44 am Paul Brook

Large page TLB flush

QEMU uses a fixed page size for the CPU TLB. If the guest uses large
pages then we effectively split these into multiple smaller pages, and
populate the corresponding TLB entries on demand.

When the guest invalidates the TLB by virtual address we must invalidate...

7296abac 03/14/2010 04:58 pm Paul Brook

Fix pagetable code

The multi-level pagetable code fails to iterate ove all entries because
of the L2_BITS v.s. L2_SIZE thinko.

Signed-off-by: Paul Brook <>

338e9e6c 03/13/2010 11:48 am Blue Swirl

Fix more wrong usermode virtual address types

Fixes warning:
CC sparc-bsd-user/exec.o
/src/qemu/exec.c: In function `page_check_range':
/src/qemu/exec.c:2375: warning: comparison is always true due to limited range of data type

Signed-off-by: Blue Swirl <>

b480d9b7 03/13/2010 01:25 am Paul Brook

Fix usermode virtual address type

Usermode virtual addresses are abi_ulong, not target_ulong.

Signed-off-by: Paul Brook <>

b3755a91 03/12/2010 08:34 pm Paul Brook

Disable phsyical memory handling in userspace emulation.

Code to handle physical memory access is not meaningful in usrmode emulation,
so disable it.

Signed-off-by: Paul Brook <>

41c1b1c9 03/12/2010 07:23 pm Paul Brook

Add tb_page_addr_t

The page tracking code in exec.c is used by both userspace and system
emulation. Userspace emulation uses it to track virtual pages, and
system emulation to track ram pages. Introduce a new type to hold this
kind of address.

Signed-off-by: Paul Brook <>

376a7909 03/12/2010 06:31 pm Richard Henderson

Fix last page errors in page_check_range and page_set_flags.

The addr < end comparison prevents iterating over the last
page in the guest address space; an iteration based on
length avoids this problem.

At the same time, assert that the given address is in the...

5cd2c5b6 03/12/2010 06:31 pm Richard Henderson

Implement multi-level page tables.

Define L1_MAP_ADDR_SPACE_BITS to be either the virtual address size
(in user mode) or physical address size (in system mode), and use
that to size l1_map. This rewrites page_find_alloc, page_flush_tb,
and walk_memory_regions....

52705890 03/12/2010 06:28 pm Richard Henderson

Move TARGET_PHYS_ADDR_SPACE_BITS to target-*/cpu.h.

Removes a set of ifdefs from exec.c.

Introduce TARGET_VIRT_ADDR_SPACE_BITS for all targets other
than Alpha. This will be used for page_find_alloc, which is
supposed to be using virtual addresses in the first place....

ea375f9a 03/04/2010 05:29 am Jan Kiszka

KVM: Rework VCPU state writeback API

This grand cleanup drops all reset and vmsave/load related
synchronization points in favor of four(!) generic hooks:

- cpu_synchronize_all_states in qemu_savevm_state_complete
(initial sync from kernel before vmsave)...

c902760f 03/04/2010 05:28 am Marcelo Tosatti

Add option to use file backed guest memory

Port qemu-kvm's -mem-path and -mem-prealloc options. These are useful
for backing guest memory with huge pages via hugetlbfs.

Signed-off-by: Marcelo Tosatti <>
CC: john cooper <>

c527ee8f 03/01/2010 06:40 am Paul Brook

Avoid tlb_set_page in userspace emulation

tlb_set_page isn't meaningful for userspace emulation, so remove it.

Signed-off-by: Paul Brook <>

c04b2b78 03/01/2010 06:40 am Paul Brook

Move subpage definitions

Move definitions for subpage handling into !CONFIG_USER_ONLY code.

Signed-off-by: Paul Brook <>

a68fe89c 03/01/2010 02:08 am Paul Brook

Remove bogus cpu_physical_memory_rw

Userspace doesn't have physical memory, so cpu_physical_memory_rw
makes no sense. This is only used to implement cpu_memory_rw_debug, so
just implement that directly instead.

Signed-off-by: Paul Brook <>

6d9a1304 03/01/2010 01:55 am Paul Brook

Remove l1_phys_map from userspace emulation

Userspace emulation doesn't have a physical address space, so
l1_phys_map makes no sense. This code is never actually used, so don't
try and build it.

Signed-off-by: Paul Brook <>

94df27fd 03/01/2010 01:47 am Paul Brook

Fix userspace breakpoint invalidation

Remove bogus virtual->physical address translation in
breakpoint_invalidate for userspace emulation.

Signed-off-by: Paul Brook <>

f6f3fbca 02/10/2010 12:56 am Michael S. Tsirkin

qemu: memory notifiers

This adds notifiers for phys memory changes: a set of callbacks that
vhost can register and update kernel accordingly. Down the road, kvm
code can be switched to use these as well, instead of calling kvm code
directly from exec.c as is done now....

7b8f3b78 02/10/2010 12:56 am Michael S. Tsirkin

kvm: move kvm to use memory notifiers

remove direct kvm calls from exec.c, make
kvm use memory notifiers framework instead.

Signed-off-by: Michael S. Tsirkin <>
Acked-by: Avi Kivity <>
Signed-off-by: Anthony Liguori <>

8217d945 02/08/2010 06:06 pm Anthony Liguori

Merge remote branch 'qemu-kvm/uq/master' into staging-tmp

cab1b4bd 02/06/2010 06:19 pm Riku Voipio

fix locking error with current_tb

Signed-off-by: Riku Voipio <>

fd052bf6 02/06/2010 06:19 pm Riku Voipio

linux-user: remove signal handler before calling abort()

Qemu may hang in host_signal_handler after qemu has done a
seppuku with cpu_abort(). But at this stage we are not really
interested in target process coredump anymore, so unregister
host_signal_handler to die grafefully....

a4841565 02/05/2010 08:13 pm Paolo Bonzini

exec.c: dead assignments

Signed-off-by: Paolo Bonzini <>
Signed-off-by: Blue Swirl <>

62a2744c 02/03/2010 11:47 pm Sheng Yang

kvm: Flush coalesced MMIO buffer periodly

The default action of coalesced MMIO is, cache the writing in buffer, until:
1. The buffer is full.
2. Or the exit to QEmu due to other reasons.

But this would result in a very late writing in some condition.
1. The each time write to MMIO content is small....

f8a83245 01/27/2010 12:41 am Herve Poussineau

win32: pair qemu_memalign() with qemu_vfree()

Win32 suffers from a very big memory leak when dealing with SCSI devices.
Each read/write request allocates memory with qemu_memalign (ie
VirtualAlloc) but frees it with qemu_free (ie free).
Pair all qemu_memalign() calls with qemu_vfree() to prevent such leaks....

f76cfe56 12/19/2009 08:45 pm Riku Voipio

linux-user: enable tb unlinking when compiled with NPTL

Fixes receiving signals when guest code is being executed in a tight
loop. For an example, try interrupting the following code with ctrl-c.

The tight loop is ofcourse brainless, but it is also exactly how the waitpid* testcases...

1e8b27ca 12/19/2009 12:23 am Juha Riihimäki

Fix win32 log file location

/tmp doesn't exist under win32. Ease the pain of win32 development slightly.

From: Juha Riihimäki <>
Signed-off-by: Riku Voipio <>
Signed-off-by: Aurelien Jarno <>

c6703b47 12/19/2009 12:23 am Riku Voipio

Give a error when running out of iomem areas.

The limit of iomem areas is quite low. Without the
debug print, it is quite hard to figure out why more
devices are not getting registered.

Signed-off-by: Riku Voipio <>
Signed-off-by: Aurelien Jarno <>

6b02494d 12/05/2009 06:36 pm Alexander Graf

Allocate physical memory in low virtual address space

KVM on S390x requires the virtual address space of the guest's RAM to be
within the first 256GB.

The general direction I'd like to see KVM on S390 move is that this requirement
is losened, but for now that's what we're stuck with....

a167ba50 11/29/2009 07:00 pm Aurelien Jarno

Add support for GNU/kFreeBSD

Signed-off-by: Aurelien Jarno <>

ccb167e9 10/15/2009 05:32 pm Izik Eidus

ksm support

Call MADV_MERGEABLE on guest memory allocations. MADV_MERGABLE will be
available starting in Linux 2.6.32. This system call registers a region of
virtual address space with Linux as a candidate for transparent memory

Patchworks-ID: 35447...

8f2498f9 10/05/2009 05:32 pm Michael S. Tsirkin

fix comment on cpu_register_physical_memory_offset

We don't require full pages in cpu_register_physical_memory,
except for RAM.

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

d4bfa4d7 10/05/2009 05:32 pm Juan Quintela

vmstate: remove const from pre_save() functions

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

e59fb374 10/05/2009 05:32 pm Juan Quintela

vmstate: add version_id argument to post_load

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

c227f099 10/02/2009 12:12 am Anthony Liguori

Revert "Get rid of _t suffix"

In the very least, a change like this requires discussion on the list.

The naming convention is goofy and it causes a massive merge problem. Something
like this must be presented on the list first so people can provide input...

99a0949b 10/01/2009 09:45 pm malc

Get rid of _t suffix

Some not so obvious bits, slirp and Xen were left alone for the time

Signed-off-by: malc <>

72cf2d4f 09/12/2009 10:36 am Blue Swirl

Fix sys-queue.h conflict for good

Problem: Our file sys-queue.h is a copy of the BSD file, but there are
some additions and it's not entirely compatible. Because of that, there have
been conflicts with system headers on BSD systems. Some hacks have been
introduced in the commits 15cc9235840a22c289edbe064a9b3c19c5f49896,...

e7f4eff7 09/11/2009 07:10 pm Juan Quintela

vmstate: port cpu_comon

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