]> Git Repo - qemu.git/log
qemu.git
13 years agovga: Silence bogus gcc warning about uninitialized variables
Jan Kiszka [Thu, 25 Aug 2011 09:10:13 +0000 (11:10 +0200)]
vga: Silence bogus gcc warning about uninitialized variables

Some gcc versions do not properly detect that all possible cases are
covered and base and size are always initialized. Please gcc by defining
a pseudo default case.

Signed-off-by: Jan Kiszka <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
13 years agoblock: explicit I/O accounting
Christoph Hellwig [Thu, 25 Aug 2011 06:26:01 +0000 (08:26 +0200)]
block: explicit I/O accounting

Decouple the I/O accounting from bdrv_aio_readv/writev/flush and
make the hardware models call directly into the accounting helpers.

This means:
 - we do not count internal requests from image formats in addition
   to guest originating I/O
 - we do not double count I/O ops if the device model handles it
   chunk wise
 - we only account I/O once it actuall is done
 - can extent I/O accounting to synchronous or coroutine I/O easily
 - implement I/O latency tracking easily (see the next patch)

I've conveted the existing device model callers to the new model,
device models that are using synchronous I/O and weren't accounted
before haven't been updated yet.  Also scsi hasn't been converted
to the end-to-end accounting as I want to defer that after the pending
scsi layer overhaul.

Signed-off-by: Christoph Hellwig <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agomonitor: fix build breakage for !CONFIG_VNC
Jamie Iles [Wed, 10 Aug 2011 14:18:42 +0000 (15:18 +0100)]
monitor: fix build breakage for !CONFIG_VNC

Commit c62f6d1 (monitor: fix build breakage with --disable-vnc)
conditionalised some VNC setup code but left an unused variable.  Move
the variable into the conditional code to fix the build breakage.

Cc: Luiz Capitulino <[email protected]>
Cc: Markus Armbruster <[email protected]>
Signed-off-by: Jamie Iles <[email protected]>
Signed-off-by: Luiz Capitulino <[email protected]>
13 years agoqcow2: remove unused qcow2_create_refcount_update function
Frediano Ziglio [Thu, 25 Aug 2011 07:29:32 +0000 (09:29 +0200)]
qcow2: remove unused qcow2_create_refcount_update function

Signed-off-by: Frediano Ziglio <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agoqcow2: use always stderr for debugging
Frediano Ziglio [Thu, 25 Aug 2011 07:23:55 +0000 (09:23 +0200)]
qcow2: use always stderr for debugging

let all DEBUG_ALLOC2 printf goes to stderr

Signed-off-by: Frediano Ziglio <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agoMerge remote-tracking branch 'stefanha/trivial-patches' into staging
Anthony Liguori [Thu, 25 Aug 2011 12:50:07 +0000 (07:50 -0500)]
Merge remote-tracking branch 'stefanha/trivial-patches' into staging

13 years agoMerge remote-tracking branch 'qemu-kvm/memory/batch' into staging
Anthony Liguori [Thu, 25 Aug 2011 12:48:24 +0000 (07:48 -0500)]
Merge remote-tracking branch 'qemu-kvm/memory/batch' into staging

13 years agoMerge remote-tracking branch 'aneesh/for-upstream-2' into staging
Anthony Liguori [Thu, 25 Aug 2011 12:48:15 +0000 (07:48 -0500)]
Merge remote-tracking branch 'aneesh/for-upstream-2' into staging

13 years agomemory: fix memory_region_init_rom_device() not initializing ->ops
Avi Kivity [Thu, 25 Aug 2011 11:56:14 +0000 (14:56 +0300)]
memory: fix memory_region_init_rom_device() not initializing ->ops

Signed-off-by: Avi Kivity <[email protected]>
13 years agodisasm: update comment
Frediano Ziglio [Thu, 25 Aug 2011 07:14:38 +0000 (09:14 +0200)]
disasm: update comment

Signed-off-by: Frediano Ziglio <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
13 years agoFix up some style nits of last uq/master merge
Jan Kiszka [Mon, 15 Aug 2011 23:24:48 +0000 (16:24 -0700)]
Fix up some style nits of last uq/master merge

Signed-off-by: Jan Kiszka <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
13 years agomilkymist: convert to memory API
Avi Kivity [Mon, 8 Aug 2011 18:42:57 +0000 (21:42 +0300)]
milkymist: convert to memory API

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agomilkymist-softusb: convert to memory API
Avi Kivity [Mon, 8 Aug 2011 18:40:35 +0000 (21:40 +0300)]
milkymist-softusb: convert to memory API

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agomilkymist-minimac2: convert to memory API
Avi Kivity [Mon, 8 Aug 2011 18:32:25 +0000 (21:32 +0300)]
milkymist-minimac2: convert to memory API

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agomcf5208: convert to memory API
Avi Kivity [Mon, 8 Aug 2011 18:21:47 +0000 (21:21 +0300)]
mcf5208: convert to memory API

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agomainstone: convert to memory API
Avi Kivity [Mon, 8 Aug 2011 18:08:45 +0000 (21:08 +0300)]
mainstone: convert to memory API

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agolm32_boards: convert to memory API
Avi Kivity [Mon, 8 Aug 2011 18:05:07 +0000 (21:05 +0300)]
lm32_boards: convert to memory API

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agog364fb: convert to memory API
Avi Kivity [Mon, 8 Aug 2011 18:01:16 +0000 (21:01 +0300)]
g364fb: convert to memory API

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agodummy_m68k: convert to memory API
Avi Kivity [Mon, 8 Aug 2011 17:44:23 +0000 (20:44 +0300)]
dummy_m68k: convert to memory API

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agopflash_cfi01/pflash_cfi02: convert to memory API
Avi Kivity [Thu, 4 Aug 2011 12:55:30 +0000 (15:55 +0300)]
pflash_cfi01/pflash_cfi02: convert to memory API

cfi02 is annoying in that is ignores some address bits; we probably
want explicit support in the memory API for that.

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agoMakefile.hw: allow hw/ files to include glib headers
Avi Kivity [Wed, 3 Aug 2011 15:55:00 +0000 (18:55 +0300)]
Makefile.hw: allow hw/ files to include glib headers

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agopiix_pci: wrap memory update in a transaction
Avi Kivity [Mon, 1 Aug 2011 08:04:39 +0000 (11:04 +0300)]
piix_pci: wrap memory update in a transaction

The code will remap all PAMs, even if just one is updated, resulting
in reduced performance.  Wrap in a transaction to detect that those
other PAMs have not changed.

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agocirrus: wrap memory update in a transaction
Avi Kivity [Mon, 1 Aug 2011 08:03:42 +0000 (11:03 +0300)]
cirrus: wrap memory update in a transaction

This prevents spurious unmapping and remapping of the vga windows,
which reduces performance.

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agoleon3: convert to memory API
Avi Kivity [Mon, 25 Jul 2011 12:07:22 +0000 (15:07 +0300)]
leon3: convert to memory API

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agointegratorcp: convert to memory API (RAM/flash only)
Avi Kivity [Mon, 25 Jul 2011 12:03:19 +0000 (15:03 +0300)]
integratorcp: convert to memory API (RAM/flash only)

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agosysbus: add sysbus_add_memory_overlap()
Avi Kivity [Mon, 25 Jul 2011 12:02:17 +0000 (15:02 +0300)]
sysbus: add sysbus_add_memory_overlap()

Signed-off-by: Avi Kivity <[email protected]>
13 years agoaxis_dev88: convert to memory API (RAM only)
Avi Kivity [Mon, 25 Jul 2011 11:32:34 +0000 (14:32 +0300)]
axis_dev88: convert to memory API (RAM only)

Reviewed-by: Richard Henderson <[email protected]>
Acked-by: Edgar E. Iglesias <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agoppc_oldworld, ppc_newworld: fix escc BAR related crash
Avi Kivity [Wed, 24 Aug 2011 18:37:05 +0000 (21:37 +0300)]
ppc_oldworld, ppc_newworld: fix escc BAR related crash

ppc maps the escc mmio region both at a fixed offset (as a sysbus area) and as part of a PCI BAR.
This crashes, since a MemoryRegion may have only one parent.  Use an alias so we have a separate
MemoryRegion for the BAR.

Signed-off-by: Avi Kivity <[email protected]>
13 years agogt64xxx: fix crash in gt64120_pci_mapping()
Avi Kivity [Wed, 24 Aug 2011 19:09:41 +0000 (22:09 +0300)]
gt64xxx: fix crash in gt64120_pci_mapping()

The map/unmap code was assymetric - unmap used the local MemoryRegion while
map used isa_mmio_init(), which cannot handle dynamic mappings.

Fix by using isa_mmio_setup() and the local MemoryRegion.

Signed-off-by: Avi Kivity <[email protected]>
Signed-off-by: Edgar E. Iglesias <[email protected]>
13 years agoarmv7m: convert to memory API
Avi Kivity [Mon, 25 Jul 2011 11:27:01 +0000 (14:27 +0300)]
armv7m: convert to memory API

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agoan5206: convert to memory API
Avi Kivity [Mon, 25 Jul 2011 11:14:31 +0000 (14:14 +0300)]
an5206: convert to memory API

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agoReadWriteHandler: remove
Avi Kivity [Sun, 24 Jul 2011 16:27:24 +0000 (19:27 +0300)]
ReadWriteHandler: remove

No longer used.

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agopci_host: convert conf index and data ports to memory API
Avi Kivity [Sun, 24 Jul 2011 14:47:18 +0000 (17:47 +0300)]
pci_host: convert conf index and data ports to memory API

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agosysbus: add helpers to add and delete memory regions to the system bus
Avi Kivity [Sun, 24 Jul 2011 14:12:11 +0000 (17:12 +0300)]
sysbus: add helpers to add and delete memory regions to the system bus

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agostellaris_enet: convert to memory API
Avi Kivity [Mon, 18 Jul 2011 08:58:50 +0000 (11:58 +0300)]
stellaris_enet: convert to memory API

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agosheepdog: use coroutines
MORITA Kazutaka [Fri, 12 Aug 2011 12:33:15 +0000 (21:33 +0900)]
sheepdog: use coroutines

This makes the sheepdog block driver support bdrv_co_readv/writev
instead of bdrv_aio_readv/writev.

With this patch, Sheepdog network I/O becomes fully asynchronous.  The
block driver yields back when send/recv returns EAGAIN, and is resumed
when the sheepdog network connection is ready for the operation.

Signed-off-by: MORITA Kazutaka <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agopci: Error on PCI capability collisions
Jan Kiszka [Wed, 24 Aug 2011 12:29:30 +0000 (14:29 +0200)]
pci: Error on PCI capability collisions

Nothing good can happen when we overlap capabilities. This may happen
when plugging in assigned devices or when devices models contain bugs.
Detect the overlap and report it.

Based on qemu-kvm commit by Alex Williamson.

Signed-off-by: Jan Kiszka <[email protected]>
Acked-by: Don Dutile <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>
13 years agopcie/aer: fix inject aer error command
Isaku Yamahata [Fri, 5 Aug 2011 09:22:06 +0000 (18:22 +0900)]
pcie/aer: fix inject aer error command

various fixes to make aer inject error command work.
- wrong assert
- command line parser
- err.status needs initialization

Signed-off-by: Isaku Yamahata <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>
13 years agopcie/slot: fix hotplug event
Isaku Yamahata [Fri, 5 Aug 2011 09:22:03 +0000 (18:22 +0900)]
pcie/slot: fix hotplug event

When slot status register is cleared, PCIDevice::exp.hpev_notify
needs to be cleared.
Otherwise, PCIDevice::exp.hpev_notify is never set to false resulting
in no more hot plug event once it's raised.

Signed-off-by: Isaku Yamahata <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>
13 years agoPPC: E500: Set ESR values
Alexander Graf [Tue, 23 Aug 2011 04:55:44 +0000 (06:55 +0200)]
PPC: E500: Set ESR values

When an exception occurs on BookE, we need to set ESR bits to expose
to the guest information on what exactly happened. Add the obvious ones.

Reported-by: Jason Wessel <[email protected]>
Signed-off-by: Alexander Graf <[email protected]>
Signed-off-by: Edgar E. Iglesias <[email protected]>
13 years agoPPC: E500: Inject SPE exception on invalid SPE access
Alexander Graf [Tue, 23 Aug 2011 04:55:43 +0000 (06:55 +0200)]
PPC: E500: Inject SPE exception on invalid SPE access

When accessing an SPE instruction despite it being not available,
throw an SPE exception instead of an APU exception. That way the
guest knows what's going on and actually uses SPE.

Reported-by: Jason Wessel <[email protected]>
Signed-off-by: Alexander Graf <[email protected]>
Signed-off-by: Edgar E. Iglesias <[email protected]>
13 years agoPPC: E500: Add ESR bit definitions
Alexander Graf [Tue, 23 Aug 2011 04:55:42 +0000 (06:55 +0200)]
PPC: E500: Add ESR bit definitions

The BookE spec specifies a number of ESR bits. Add defines for them
so we can use them later on.

Reported-by: Jason Wessel <[email protected]>
Signed-off-by: Alexander Graf <[email protected]>
Signed-off-by: Edgar E. Iglesias <[email protected]>
13 years agohw/omap_gpmc: Don't try to map CS0 twice on reset
Peter Maydell [Tue, 23 Aug 2011 18:24:32 +0000 (19:24 +0100)]
hw/omap_gpmc: Don't try to map CS0 twice on reset

Remove a spurious second map of the OMAP GPMC CS0 region on reset.
This fixes an assertion failure when we try to add the region to
its container when it was already added. (The old code did not
complain about mismatched map/unmap calls, but the new MemoryRegion
implementation does.)

Signed-off-by: Peter Maydell <[email protected]>
Signed-off-by: Edgar E. Iglesias <[email protected]>
13 years agotcg: Update --enable-debug for TCG_OPF_NOT_PRESENT.
Richard Henderson [Tue, 23 Aug 2011 17:43:32 +0000 (10:43 -0700)]
tcg: Update --enable-debug for TCG_OPF_NOT_PRESENT.

Signed-off-by: Richard Henderson <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Edgar E. Iglesias <[email protected]>
13 years agoqcow2: remove memory leak
Frediano Ziglio [Tue, 23 Aug 2011 13:21:20 +0000 (15:21 +0200)]
qcow2: remove memory leak

Signed-off-by: Frediano Ziglio <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agoqcow2: Removed QCowAIOCB entirely
Frediano Ziglio [Tue, 23 Aug 2011 13:21:19 +0000 (15:21 +0200)]
qcow2: Removed QCowAIOCB entirely

Signed-off-by: Frediano Ziglio <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agoqcow2: reindent and use while before the big jump
Frediano Ziglio [Tue, 23 Aug 2011 13:21:18 +0000 (15:21 +0200)]
qcow2: reindent and use while before the big jump

prepare to remove read/write callbacks

Signed-off-by: Frediano Ziglio <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agoqcow2: remove common from QCowAIOCB
Frediano Ziglio [Tue, 23 Aug 2011 13:21:17 +0000 (15:21 +0200)]
qcow2: remove common from QCowAIOCB

Signed-off-by: Frediano Ziglio <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agoqcow2: remove cluster_offset from QCowAIOCB
Frediano Ziglio [Tue, 23 Aug 2011 13:21:16 +0000 (15:21 +0200)]
qcow2: remove cluster_offset from QCowAIOCB

Signed-off-by: Frediano Ziglio <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agoqcow2: remove l2meta from QCowAIOCB
Frediano Ziglio [Tue, 23 Aug 2011 13:21:15 +0000 (15:21 +0200)]
qcow2: remove l2meta from QCowAIOCB

Signed-off-by: Frediano Ziglio <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agoqcow2: removed cur_nr_sectors field in QCowAIOCB
Frediano Ziglio [Tue, 23 Aug 2011 13:21:14 +0000 (15:21 +0200)]
qcow2: removed cur_nr_sectors field in QCowAIOCB

Signed-off-by: Frediano Ziglio <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agoqcow2: Removed unused AIOCB fields
Frediano Ziglio [Tue, 23 Aug 2011 13:21:13 +0000 (15:21 +0200)]
qcow2: Removed unused AIOCB fields

Signed-off-by: Frediano Ziglio <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agoqcow: remove old #undefined code
Frediano Ziglio [Tue, 23 Aug 2011 13:21:12 +0000 (15:21 +0200)]
qcow: remove old #undefined code

Signed-off-by: Frediano Ziglio <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agoqcow: Remove QCowAIOCB
Frediano Ziglio [Tue, 23 Aug 2011 13:21:11 +0000 (15:21 +0200)]
qcow: Remove QCowAIOCB

Embed qcow_aio_read_cb into qcow_co_readv and qcow_aio_write_cb into qcow_co_writev

Signed-off-by: Frediano Ziglio <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agoqcow: move some blocks of code to avoid useless variable initialization
Frediano Ziglio [Tue, 23 Aug 2011 13:21:10 +0000 (15:21 +0200)]
qcow: move some blocks of code to avoid useless variable initialization

Signed-off-by: Frediano Ziglio <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agoqcow: QCowAIOCB field cleanup
Frediano Ziglio [Tue, 23 Aug 2011 13:21:09 +0000 (15:21 +0200)]
qcow: QCowAIOCB field cleanup

remove unused field from this structure and put some of them in qcow_aio_read_cb and qcow_aio_write_cb

Signed-off-by: Frediano Ziglio <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agoqcow/qcow2: Allocate QCowAIOCB structure using stack
Frediano Ziglio [Tue, 23 Aug 2011 13:21:08 +0000 (15:21 +0200)]
qcow/qcow2: Allocate QCowAIOCB structure using stack

instead of calling qemi_aio_get use stack

Signed-off-by: Frediano Ziglio <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agoposix-aio-compat: fix latency issues
Avi Kivity [Sun, 14 Aug 2011 04:04:49 +0000 (07:04 +0300)]
posix-aio-compat: fix latency issues

In certain circumstances, posix-aio-compat can incur a lot of latency:
 - threads are created by vcpu threads, so if vcpu affinity is set,
   aio threads inherit vcpu affinity.  This can cause many aio threads
   to compete for one cpu.
 - we can create up to max_threads (64) aio threads in one go; since a
   pthread_create can take around 30μs, we have up to 2ms of cpu time
   under a global lock.

Fix by:
 - moving thread creation to the main thread, so we inherit the main
   thread's affinity instead of the vcpu thread's affinity.
 - if a thread is currently being created, and we need to create yet
   another thread, let thread being born create the new thread, reducing
   the amount of time we spend under the main thread.
 - drop the local lock while creating a thread (we may still hold the
   global mutex, though)

Note this doesn't eliminate latency completely; scheduler artifacts or
lack of host cpu resources can still cause it.  We may want pre-allocated
threads when this cannot be tolerated.

Thanks to Uli Obergfell of Red Hat for his excellent analysis and suggestions.

Signed-off-by: Avi Kivity <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agoblock: include flush requests in info blockstats
Christoph Hellwig [Sun, 21 Aug 2011 22:25:58 +0000 (00:25 +0200)]
block: include flush requests in info blockstats

Signed-off-by: Christoph Hellwig <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agoblock/curl: Handle failed reads gracefully.
Nicholas Thomas [Mon, 15 Aug 2011 09:00:34 +0000 (10:00 +0100)]
block/curl: Handle failed reads gracefully.

Current behaviour if a read fails is for the acb to not get finished.
This causes an infinite loop in bdrv_read_em (block.c). The read failure
never gets reported to the  guest and if the error condition clears, the
process never recovers.

With this patch, when curl reports a failure we finish the acb as a
failure. This results in the guest receiving an I/O error (rather than
the read hanging indefinitely) and if the error condition subsequently
clears, retries work as expected.

The simplest test is to put an ISO on a web server you have control over
and open it with qemu-io. Then move the ISO out of the way and attempt
to read some data - you should see behaviour matching the above.

Signed-off-by: Nick Thomas <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agoqemu-img: print error codes when convert fails
Stefan Hajnoczi [Wed, 17 Aug 2011 16:41:09 +0000 (17:41 +0100)]
qemu-img: print error codes when convert fails

Signed-off-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agoqcow: initialize coroutine mutex
Scott Wood [Thu, 11 Aug 2011 21:27:15 +0000 (16:27 -0500)]
qcow: initialize coroutine mutex

commit 52b8eb60132b27ad53476490e9d7579003390cfa added a mutex,
but never initialized it.  This caused a segfault.

Reported-by: Alexander Graf <[email protected]>
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agoqcow2: fix typo in documentation for qcow2_get_cluster_offset()
Devin Nakamura [Sun, 7 Aug 2011 23:47:36 +0000 (19:47 -0400)]
qcow2: fix typo in documentation for qcow2_get_cluster_offset()

Documentation states the num is measured in clusters, but its
actually measured in sectors

Signed-off-by: Devin Nakamura <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agoqemu-img: Use qemu_blockalign
Kevin Wolf [Mon, 8 Aug 2011 12:09:12 +0000 (14:09 +0200)]
qemu-img: Use qemu_blockalign

Now that you can use cache=none for the output file in qemu-img, we should
properly align our buffers so that raw-posix doesn't have to use its (smaller)
bounce buffer.

Signed-off-by: Kevin Wolf <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
13 years agoqcow2: Fix DEBUG_* compilation
Philipp Hahn [Thu, 4 Aug 2011 17:22:10 +0000 (19:22 +0200)]
qcow2: Fix DEBUG_* compilation

By introducing BlockDriverState compiling qcow2 with DEBUG_ALLOC and DEBUG_EXT
defined got broken.
Define a BdrvCheckResult structure locally which is now needed as the second
argument.

Also fix qcow2_read_extensions() needing BDRVQcowState.

Signed-off-by: Philipp Hahn <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agoblock: add cache=directsync parameter to -drive
Stefan Hajnoczi [Thu, 4 Aug 2011 11:26:52 +0000 (12:26 +0100)]
block: add cache=directsync parameter to -drive

This patch adds -drive cache=directsync for O_DIRECT | O_SYNC host file
I/O with no disk write cache presented to the guest.

This mode is useful when guests may not be sending flushes when
appropriate and therefore leave data at risk in case of power failure.
When cache=directsync is used, write operations are only completed to
the guest when data is safely on disk.

This new mode is like cache=writethrough but it bypasses the host page
cache.

Signed-off-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agoblock: parse cache mode flags in a single place
Stefan Hajnoczi [Thu, 4 Aug 2011 11:26:51 +0000 (12:26 +0100)]
block: parse cache mode flags in a single place

This patch introduces bdrv_parse_cache_flags() which sets open flags
given a cache mode.  Previously this was duplicated in blockdev.c and
qemu-img.c.

Signed-off-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agocoroutine: Add CoRwlock support
Aneesh Kumar K.V [Tue, 2 Aug 2011 06:32:51 +0000 (12:02 +0530)]
coroutine: Add CoRwlock support

Signed-off-by: Aneesh Kumar K.V <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
13 years agoxilinx: removed microbalze_pic_init from xilinx.h
Peter A. G. Crosthwaite [Mon, 22 Aug 2011 08:15:25 +0000 (18:15 +1000)]
xilinx: removed microbalze_pic_init from xilinx.h

This is a microblaze target specific function that belongs outside
of xilinx.h (which is a collection of target independent device model
instantiator functions)

Signed-off-by: Peter A. G. Crosthwaite <[email protected]>
Signed-off-by: Edgar E. Iglesias <[email protected]>
13 years agoxilinx.h: Added missing includes
Peter A. G. Crosthwaite [Mon, 22 Aug 2011 08:15:24 +0000 (18:15 +1000)]
xilinx.h: Added missing includes

Added some missing #includes for this file. Previously this file
relied on its clients to pre-include its dependencies.

Signed-off-by: Peter A. G. Crosthwaite <[email protected]>
Signed-off-by: Edgar E. Iglesias <[email protected]>
13 years agosdl: Don't release input on mouse mode change in full-screen mode
Jan Kiszka [Mon, 22 Aug 2011 16:42:42 +0000 (18:42 +0200)]
sdl: Don't release input on mouse mode change in full-screen mode

While in full-screen mode, the input focus naturally belongs to the SDL
window. Avoid dropping it when switching from absolute to relative
mouse mode.

Signed-off-by: Jan Kiszka <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
13 years agoReplace qemu_system_cond with VCPU stop mechanism
Jan Kiszka [Mon, 22 Aug 2011 16:35:25 +0000 (18:35 +0200)]
Replace qemu_system_cond with VCPU stop mechanism

We can express the VCPU thread wakeup with the stop mechanism, saving
both qemu_system_ready and the qemu_system_cond. For KVM threads, we can
just enter the main loop as long as the thread is stopped. The central
TCG thread is better held back before the loop as there can be side
effects of the services called even when all CPUs are stopped.

Creating VCPUs in stopped state will also be required for proper CPU
hotplugging support.

Signed-off-by: Jan Kiszka <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
13 years agovga: Drop some unused fields
Jan Kiszka [Mon, 22 Aug 2011 17:12:13 +0000 (19:12 +0200)]
vga: Drop some unused fields

Memory region refactorings obsoleted them.

CC: Avi Kivity <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
13 years agovga: Use linear mapping + dirty logging in chain 4 memory access mode
Jan Kiszka [Mon, 22 Aug 2011 17:12:12 +0000 (19:12 +0200)]
vga: Use linear mapping + dirty logging in chain 4 memory access mode

Most VGA memory access modes require MMIO handling as they demand weird
logic to get a byte from or into the video RAM. However, there is one
exception: chain 4 mode with all memory planes enabled for writing. This
mode actually allows lineary mapping, which can then be combined with
dirty logging to accelerate KVM.

This patch accelerates specifically VBE accesses like they are used by
grub in graphical mode. Not only the standard VGA adapter benefits from
this, also vmware and spice in VGA mode.

CC: Gerd Hoffmann <[email protected]>
CC: Avi Kivity <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
13 years agovmware-vga: Eliminate vga_dirty_log_restart
Jan Kiszka [Mon, 22 Aug 2011 17:12:11 +0000 (19:12 +0200)]
vmware-vga: Eliminate vga_dirty_log_restart

After the conversion to the new Memory API, vga_dirty_log_restart became
seriously pointless. Remove it from vmware-vga and and then finally drop
the service.

CC: Andrzej Zaborowski <[email protected]>
CC: Avi Kivity <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
13 years agovmware-vga: Remove dead DIRECT_VRAM mode
Jan Kiszka [Mon, 22 Aug 2011 17:12:10 +0000 (19:12 +0200)]
vmware-vga: Remove dead DIRECT_VRAM mode

The code was disabled since day 1 of vmware-vga, and now it does not
even build anymore. Time for a cleanup.

CC: Andrzej Zaborowski <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
13 years agovmware-vga: Disable verbose mode
Jan Kiszka [Mon, 22 Aug 2011 17:12:09 +0000 (19:12 +0200)]
vmware-vga: Disable verbose mode

Elimiates 'vmsvga_value_write: guest runs Linux.' messages from the
console.

CC: Andrzej Zaborowski <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
13 years agovmware-vga: Register reset service
Jan Kiszka [Mon, 22 Aug 2011 17:12:08 +0000 (19:12 +0200)]
vmware-vga: Register reset service

Fixes cold reset in vmware graphic modes. We need to split up the reset
function for this purpose, breaking out init-once bits.

Cc: Andrzej Zaborowski <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
13 years agoioapic: Implement polarity
Jan Kiszka [Mon, 22 Aug 2011 15:46:42 +0000 (17:46 +0200)]
ioapic: Implement polarity

If the polarity bit is set in the redirection table, the input level
simply has to inverted as it is low active in this case.

Signed-off-by: Jan Kiszka <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
13 years agotarget-i386: Remove unused polarity arguments from APIC API
Jan Kiszka [Mon, 22 Aug 2011 15:46:31 +0000 (17:46 +0200)]
target-i386: Remove unused polarity arguments from APIC API

Polarity of external interrupts needs to be handled in the IOAPIC.
Passing it to the APIC is pointless. So remove all these arguments.

Signed-off-by: Jan Kiszka <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
13 years agoDo not kick vcpus in TCG mode
Jan Kiszka [Mon, 22 Aug 2011 15:46:03 +0000 (17:46 +0200)]
Do not kick vcpus in TCG mode

In TCG mode, iothread and vcpus run in lock-step. So it's pointless to
send a signal from qemu_cpu_kick to the vcpu thread - if we got here,
the receiver already left the vcpu loop.

Signed-off-by: Jan Kiszka <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
13 years agoPoll main loop after I/O events were received
Jan Kiszka [Mon, 22 Aug 2011 15:46:02 +0000 (17:46 +0200)]
Poll main loop after I/O events were received

Polling until select returns empty fdsets helps to reduce the switches
between iothread and vcpus. The benefit of this patch is best visible
when running an SMP guest on an SMP host in emulation mode.

Signed-off-by: Jan Kiszka <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
13 years agoDo not drop global mutex for polled main loop runs
Jan Kiszka [Mon, 22 Aug 2011 15:46:01 +0000 (17:46 +0200)]
Do not drop global mutex for polled main loop runs

If we call select without a timeout, it's more efficient to keep the
global mutex locked as we may otherwise just play ping pong with a
vcpu thread contending for it. This is particularly important for TCG
mode where we run in lock-step with the vcpu thread.

Signed-off-by: Jan Kiszka <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
13 years agoMerge remote-tracking branch 'qemu-kvm/memory/core' into staging
Anthony Liguori [Mon, 22 Aug 2011 17:26:30 +0000 (12:26 -0500)]
Merge remote-tracking branch 'qemu-kvm/memory/core' into staging

13 years agomicroblaze-user: Deliver SIGFPE on div by zero
Edgar E. Iglesias [Mon, 22 Aug 2011 16:42:54 +0000 (18:42 +0200)]
microblaze-user: Deliver SIGFPE on div by zero

Signed-off-by: Edgar E. Iglesias <[email protected]>
13 years agomemory: Fix old_portio vs non-zero offset
Richard Henderson [Wed, 10 Aug 2011 22:28:19 +0000 (15:28 -0700)]
memory: Fix old_portio vs non-zero offset

The legacy functions that we're wrapping expect that offset
to be included in the register.  Indeed, they generally
expect the absolute address and then mask off the "high" bits.

The FDC is the first converted device with a non-zero offset.

Signed-off-by: Richard Henderson <[email protected]>
Signed-off-by: Avi Kivity <[email protected]>
13 years agomemory: temporarily suppress the subregion collision warning
Anthony Liguori [Mon, 22 Aug 2011 16:14:56 +0000 (11:14 -0500)]
memory: temporarily suppress the subregion collision warning

After 312b4234, the APIC and PCI devices are colliding with each other.  This
is harmless in practice because the APIC accesses are special cased and never
make there way onto the bus.

Avi is working on a proper fix, but until that's ready, avoid printing the
warning.

Signed-off-by: Anthony Liguori <[email protected]>
13 years ago440fx: fix PAM, PCI holes
Avi Kivity [Mon, 15 Aug 2011 14:17:38 +0000 (17:17 +0300)]
440fx: fix PAM, PCI holes

The current implementation of PAM and the PCI holes is broken in several
ways:

  - PCI BARs are not restricted to the PCI hole (a BAR may hide memory)
  - PCI devices do not respect PAM (if a PCI device maps a region while
    PAM maps the region to RAM, the request will be honored)

This patch fixes things by introducing a pci address space, and using
memory region aliases to represent PAM regions, SMRAM, and PCI holes.

The memory hierarchy looks something like

system_memory
 |
 +--- low memory alias (0-0xe0000000)
 |      |
 |      +-- ram@0
 |
 +--- high memory alias (0x100000000-EOM)
 |      |
 |      +-- ram@0xe0000000
 |
 +--- pci hole alias (end of low memory-0x100000000)
 |      |
 |      +-- pci@end-of-low-memory
 |
 |
 +--- pam[n] (0xc0000-0xc3fff etc) (when set to pci, priority 1)
 |      |
 |      +-- pci@0xc4000 etc
 |
 +--- smram (0xa0000-0xbffff) (when set to pci/vga, priority 1)
        |
        +-- pci@0xa0000 etc

ram (simple ram region)

pci
 |
 +--- BARn
 |
 +--- VGA 0xa0000-0xbffff
 |
 +--- ROMs

Signed-off-by: Avi Kivity <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
13 years agovga: drop get_system_memory() from vga devices and derivatives
Avi Kivity [Mon, 15 Aug 2011 14:17:37 +0000 (17:17 +0300)]
vga: drop get_system_memory() from vga devices and derivatives

Instead, use the bus accessors, or get the address space directly
from the board constructor.

Signed-off-by: Avi Kivity <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
13 years agopci: add pci_address_space()
Avi Kivity [Mon, 15 Aug 2011 14:17:36 +0000 (17:17 +0300)]
pci: add pci_address_space()

Returns the PCI address space.  Useful for bridges that can obscure
part of the PCI address space.

Signed-off-by: Avi Kivity <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
13 years agoisa: add isa_address_space()
Avi Kivity [Mon, 15 Aug 2011 14:17:35 +0000 (17:17 +0300)]
isa: add isa_address_space()

A helper that returns the address space used by ISA devices.  Useful
for getting rid of isa_mem_base, multiple ISA buses, or ISA buses behind
bridges.

Signed-off-by: Avi Kivity <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
13 years agosysbus: remove sysbus_init_mmio_cb()
Avi Kivity [Mon, 15 Aug 2011 14:17:34 +0000 (17:17 +0300)]
sysbus: remove sysbus_init_mmio_cb()

This problem with this function is that it is not reversible - it is
impossible to know where things are registered and unregister them
exactly.  As there are no more users, we can remove it.

Signed-off-by: Avi Kivity <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
13 years agoppce500_pci: convert to sysbus_init_mmio_cb2()
Avi Kivity [Mon, 15 Aug 2011 14:17:33 +0000 (17:17 +0300)]
ppce500_pci: convert to sysbus_init_mmio_cb2()

Not a huge step forward, but at least we now have a 1:1 relationship
between registration and unregistration.

Signed-off-by: Avi Kivity <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
13 years agoversatile_pci: convert to memory API
Avi Kivity [Mon, 15 Aug 2011 14:17:32 +0000 (17:17 +0300)]
versatile_pci: convert to memory API

Signed-off-by: Avi Kivity <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
13 years agoarm11mpcore: use sysbus_init_mmio_cb2
Avi Kivity [Mon, 15 Aug 2011 14:17:31 +0000 (17:17 +0300)]
arm11mpcore: use sysbus_init_mmio_cb2

This tells the sysbus code it need not use IO_MEM_UNASSIGNED.

Signed-off-by: Avi Kivity <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
13 years agosh_pci: convert to memory API
Avi Kivity [Mon, 15 Aug 2011 14:17:30 +0000 (17:17 +0300)]
sh_pci: convert to memory API

Signed-off-by: Avi Kivity <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
13 years agosysbus: add a variant of sysbus_init_mmio_cb with an unmap callback
Avi Kivity [Mon, 15 Aug 2011 14:17:29 +0000 (17:17 +0300)]
sysbus: add a variant of sysbus_init_mmio_cb with an unmap callback

sysbus_init_mmio_cb() uses the destructive IO_MEM_UNASSIGNED to remove a
region.  Provide an alternative that calls an unmap callback, so the removal
may be done non-destructively.

Signed-off-by: Avi Kivity <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
13 years agoppc4xx_sdram: convert to memory API
Avi Kivity [Mon, 15 Aug 2011 14:17:27 +0000 (17:17 +0300)]
ppc4xx_sdram: convert to memory API

Clumsy due to the lack of clipping support, needed for
changing exposed ram size.

Signed-off-by: Avi Kivity <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
13 years agoppc405_uc: convert to memory API
Avi Kivity [Mon, 15 Aug 2011 14:17:26 +0000 (17:17 +0300)]
ppc405_uc: convert to memory API

Signed-off-by: Avi Kivity <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
13 years agopcie_host: convert to memory API
Avi Kivity [Mon, 15 Aug 2011 14:17:25 +0000 (17:17 +0300)]
pcie_host: convert to memory API

Assuming that mmcfg size cannot change at runtime.

Signed-off-by: Avi Kivity <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
This page took 0.075639 seconds and 4 git commands to generate.