qemu
15 years agoCRIS: cris_mmu_result_t -> cris_mmu_result
Edgar E. Iglesias [Sat, 25 Apr 2009 13:51:53 +0000 (15:51 +0200)]
CRIS: cris_mmu_result_t -> cris_mmu_result

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>

15 years agoFix Win32 warning
Blue Swirl [Sat, 25 Apr 2009 12:56:37 +0000 (12:56 +0000)]
Fix Win32 warning

15 years agoFix compilation when x86_64 is defined
Blue Swirl [Sat, 25 Apr 2009 08:00:11 +0000 (08:00 +0000)]
Fix compilation when x86_64 is defined

15 years agoFix warning
Blue Swirl [Sat, 25 Apr 2009 07:31:43 +0000 (07:31 +0000)]
Fix warning

15 years agoblock-vvfat: fix a warning
Aurelien Jarno [Fri, 24 Apr 2009 22:08:05 +0000 (00:08 +0200)]
block-vvfat: fix a warning

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

15 years agoqemu: introduce iothread (Marcelo Tosatti)
aliguori [Fri, 24 Apr 2009 18:04:07 +0000 (18:04 +0000)]
qemu: introduce iothread (Marcelo Tosatti)

Fill in the hooks and introduce iothread.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7248 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoqemu: handle stop request in main loop (Marcelo Tosatti)
aliguori [Fri, 24 Apr 2009 18:04:02 +0000 (18:04 +0000)]
qemu: handle stop request in main loop (Marcelo Tosatti)

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7247 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoqemu: refactor tcg cpu execution loop (Marcelo Tosatti)
aliguori [Fri, 24 Apr 2009 18:03:57 +0000 (18:03 +0000)]
qemu: refactor tcg cpu execution loop (Marcelo Tosatti)

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7246 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoqemu: use debug_requested global instead of cpu_exec return (Marcelo Tosatti)
aliguori [Fri, 24 Apr 2009 18:03:54 +0000 (18:03 +0000)]
qemu: use debug_requested global instead of cpu_exec return (Marcelo Tosatti)

Necessary for the next refactoring patch.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7245 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoqemu: introduce lock/unlock_iothread (Marcelo Tosatti)
aliguori [Fri, 24 Apr 2009 18:03:49 +0000 (18:03 +0000)]
qemu: introduce lock/unlock_iothread (Marcelo Tosatti)

Hook to allow iothread to drop the global mutex.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7244 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoqemu: introduce qemu_cpu_kick (Marcelo Tosatti)
aliguori [Fri, 24 Apr 2009 18:03:45 +0000 (18:03 +0000)]
qemu: introduce qemu_cpu_kick (Marcelo Tosatti)

To notify cpu of pending interrupt.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7243 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoqemu: introduce qemu_init_vcpu (Marcelo Tosatti)
aliguori [Fri, 24 Apr 2009 18:03:41 +0000 (18:03 +0000)]
qemu: introduce qemu_init_vcpu (Marcelo Tosatti)

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7242 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoqemu: refactor main_loop (Marcelo Tosatti)
aliguori [Fri, 24 Apr 2009 18:03:33 +0000 (18:03 +0000)]
qemu: refactor main_loop (Marcelo Tosatti)

Break main loop into 3 main functions.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7241 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoqemu: factor out event notification / rearm alarm timer on main_loop_wait (Marcelo...
aliguori [Fri, 24 Apr 2009 18:03:29 +0000 (18:03 +0000)]
qemu: factor out event notification / rearm alarm timer on main_loop_wait (Marcelo Tosatti)

Special events that have no particular event descriptor (either fd for UNIX
or HANDLE for Windows) associated with make use of an artificial one.

Factor the alarm timer notification so that it can be used for other events,
and move dyntick timer rearm to main_loop_wait.

aliguori: made sure to return a value in qemu_event_init() on win32

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7240 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoqemu: introduce qemu_init_main_loop (Marcelo Tosatti)
aliguori [Fri, 24 Apr 2009 18:03:25 +0000 (18:03 +0000)]
qemu: introduce qemu_init_main_loop (Marcelo Tosatti)

Hook to allow iothread initialization.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7239 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoqemu: per-arch cpu_has_work (Marcelo Tosatti)
aliguori [Fri, 24 Apr 2009 18:03:20 +0000 (18:03 +0000)]
qemu: per-arch cpu_has_work (Marcelo Tosatti)

Blue Swirl: fix Sparc32 breakage

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7238 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoqemu: mutex/thread/cond wrappers and configure tweaks (Marcelo Tosatti)
aliguori [Fri, 24 Apr 2009 18:03:15 +0000 (18:03 +0000)]
qemu: mutex/thread/cond wrappers and configure tweaks (Marcelo Tosatti)

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7237 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoqemu: create helper for event notification (Marcelo Tosatti)
aliguori [Fri, 24 Apr 2009 18:03:11 +0000 (18:03 +0000)]
qemu: create helper for event notification (Marcelo Tosatti)

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7236 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix typo, thanks to Andreas Faerber for spotting
blueswir1 [Thu, 23 Apr 2009 18:42:30 +0000 (18:42 +0000)]
Fix typo, thanks to Andreas Faerber for spotting

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7235 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoUse a more natural order
blueswir1 [Thu, 23 Apr 2009 18:29:47 +0000 (18:29 +0000)]
Use a more natural order

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7234 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix i386-linux-user build (Laurent Desnogues)
aliguori [Thu, 23 Apr 2009 13:16:56 +0000 (13:16 +0000)]
Fix i386-linux-user build (Laurent Desnogues)

This broke due to r7230.

Signed-off-by: Laurent Desnogues <laurent.desnogues@gmail.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7233 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agomonitor: Fix warning in do_info_numa (Jan Kiszka)
aliguori [Wed, 22 Apr 2009 20:20:29 +0000 (20:20 +0000)]
monitor: Fix warning in do_info_numa (Jan Kiszka)

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7232 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoChange RTC time drift IRQ re-injection (Gleb Natapov)
aliguori [Wed, 22 Apr 2009 20:20:22 +0000 (20:20 +0000)]
Change RTC time drift IRQ re-injection (Gleb Natapov)

Currently IRQ are reinjected as soon as they are acknowledged to
the RTC, but Windows sometimes do acknowledgement in a loop with
global interrupt disabled waiting for interrupt to be cleared and
it does not mask RTC vector in PIC/APIC while doing this. In such
situation interrupt injection always fails and RTC interrupt is never
cleared.

Instead of reinjecting coalesced IRQs on acknowledgement the patch below
reinjects them by accelerating RTC clock a bit. This way RTC interrupt
is not constantly raced after coalesced interrupt.

Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7231 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoput valid data into exit_int_info if needed (Gleb Natapov)
aliguori [Wed, 22 Apr 2009 20:20:07 +0000 (20:20 +0000)]
put valid data into exit_int_info if needed (Gleb Natapov)

If fault happened during event delivery exit_int_info should contain
valid info about the event on vm exit.

Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7230 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoimplement qemu_blockalign (Stefano Stabellini)
aliguori [Wed, 22 Apr 2009 20:20:00 +0000 (20:20 +0000)]
implement qemu_blockalign (Stefano Stabellini)

this patch adds a buffer_alignment field to BlockDriverState and
implements a qemu_blockalign function that uses that field to allocate a
memory aligned buffer to be used by the block driver.
buffer_alignment is initialized to 512 but each block driver can set
a different value (at the moment none of them do).
This patch modifies ide.c, block-qcow.c, block-qcow2.c and block.c to
use qemu_blockalign instead of qemu_memalign.
There is only one place left that still uses qemu_memalign to allocate
buffers used by block drivers that is posix-aio-compat:handle_aiocb_rw
because it is not possible to get the BlockDriverState from that
function. However I think it is not important because posix-aio-compat
already deals with driver specific code so it is supposed to know its
own needs.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7229 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoxen: add -vga xenfb option, configure xenfb (Gerd Hoffmann)
aliguori [Wed, 22 Apr 2009 15:19:53 +0000 (15:19 +0000)]
xen: add -vga xenfb option, configure xenfb (Gerd Hoffmann)

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7228 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agosimplify vga selection (Gerd Hoffmann)
aliguori [Wed, 22 Apr 2009 15:19:48 +0000 (15:19 +0000)]
simplify vga selection (Gerd Hoffmann)

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7227 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoxen: pv domain builder. (Gerd Hoffmann)
aliguori [Wed, 22 Apr 2009 15:19:44 +0000 (15:19 +0000)]
xen: pv domain builder. (Gerd Hoffmann)

This adds domain building support for paravirtual domains to qemu.
This allows booting xen guests directly with qemu, without Xend
and the management stack.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7226 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoxen: blk & nic configuration via cmd line. (Gerd Hoffmann)
aliguori [Wed, 22 Apr 2009 15:19:39 +0000 (15:19 +0000)]
xen: blk & nic configuration via cmd line. (Gerd Hoffmann)

This patch makes qemu create backend and frontend device entries in
xenstore for devices configured on the command line.  It will use
qdisk and qnic backend names, so the qemu internal backends will
be used.

Disks can be created using -drive if=xen,file=...
Nics can be created using -net nic,macaddr=...

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7225 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoxen: add net backend driver. (Gerd Hoffmann)
aliguori [Wed, 22 Apr 2009 15:19:35 +0000 (15:19 +0000)]
xen: add net backend driver. (Gerd Hoffmann)

This patch adds a network interface backend driver to qemu.  It is a pure
userspace implemention using the gntdev interface.  It uses "qnet" as
backend name in xenstore so it doesn't interfere with the netback
backend (aka "vnif").

The network backend is hooked into the corrosponding qemu vlan, i.e.
vif 0 is hooked into vlan 0.  To make the packages actually arrive
somewhere you additionally have to link the vlan to the outside world
using the usual qemu command line options such as "-net tap,...".

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7224 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoxen: add block device backend driver. (Gerd Hoffmann)
aliguori [Wed, 22 Apr 2009 15:19:30 +0000 (15:19 +0000)]
xen: add block device backend driver. (Gerd Hoffmann)

This patch adds a block device backend driver to qemu.  It is a pure
userspace implemention using the gntdev interface.  It uses "qdisk" as
backend name in xenstore so it doesn't interfere with the other existing
backends (blkback aka "vbd" and tapdisk aka "tap").

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7223 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoxen: add framebuffer backend driver (Gerd Hoffmann)
aliguori [Wed, 22 Apr 2009 15:19:25 +0000 (15:19 +0000)]
xen: add framebuffer backend driver (Gerd Hoffmann)

This patch adds a frsamebuffer (and kbd+mouse) backend driver.  It
it based on current xen-unstable code.  It has been changed to make
use of the common backend driver code.  It also has been changed to
compile with xen headers older than release 3.3

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7222 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoxen: add console backend driver. (Gerd Hoffmann)
aliguori [Wed, 22 Apr 2009 15:19:19 +0000 (15:19 +0000)]
xen: add console backend driver. (Gerd Hoffmann)

This patch adds a xenconsole backend driver.  It it based on current
xen-unstable code.  It has been changed to make use of the common
backend driver code.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7221 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoxen: backend driver core (Gerd Hoffmann)
aliguori [Wed, 22 Apr 2009 15:19:15 +0000 (15:19 +0000)]
xen: backend driver core (Gerd Hoffmann)

This patch adds infrastructure for xen backend drivers living in qemu,
so drivers don't need to implement common stuff on their own.  It's
mostly xenbus management stuff: some functions to access xentore,
setting up xenstore watches, callbacks on device discovery and state
changes, handle event channel, ...

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7220 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoxen: groundwork for xen support (Gerd Hoffmann)
aliguori [Wed, 22 Apr 2009 15:19:10 +0000 (15:19 +0000)]
xen: groundwork for xen support (Gerd Hoffmann)

- configure script and build system changes.
- wind up new machine type.
- add -xen-* command line options.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7219 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoupdate .gitignore: add qemu-io (Gerd Hoffmann)
aliguori [Wed, 22 Apr 2009 13:05:35 +0000 (13:05 +0000)]
update .gitignore: add qemu-io (Gerd Hoffmann)

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7218 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoqcow2: Add plausibility check for L1/L2 entries (Kevin Wolf)
aliguori [Tue, 21 Apr 2009 23:12:02 +0000 (23:12 +0000)]
qcow2: Add plausibility check for L1/L2 entries (Kevin Wolf)

From: Kevin Wolf <kwolf@redhat.com>

All L1 and L2 entries must point at the start of a cluster. If there is some
offset into the cluster, the entry is corrupted.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7217 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoqcow2: Refcount checking code cleanup (Kevin Wolf)
aliguori [Tue, 21 Apr 2009 23:11:58 +0000 (23:11 +0000)]
qcow2: Refcount checking code cleanup (Kevin Wolf)

This is purely cosmetical changes to make the code easier to read. Move L2
table processing from a deeply nested block to its own function, add some
comments.

Patch v2: Fix misplaced bracket causing false positives

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7216 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoIntroduce qemu-img check subcommand (Kevin Wolf)
aliguori [Tue, 21 Apr 2009 23:11:53 +0000 (23:11 +0000)]
Introduce qemu-img check subcommand (Kevin Wolf)

From: Kevin Wolf <kwolf@redhat.com>

Now that block drivers can provide check functions, expose them through
qemu-img.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7215 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoIntroduce bdrv_check (Kevin Wolf)
aliguori [Tue, 21 Apr 2009 23:11:50 +0000 (23:11 +0000)]
Introduce bdrv_check (Kevin Wolf)

From: Kevin Wolf <kwolf@redhat.com>

Introduce a new bdrv_check function pointer for block drivers. Modify qcow2 to
return an error status in check_refcounts(), so it can implement bdrv_check.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7214 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoqcow2: Fix warnings in check_refcount() (Kevin Wolf)
aliguori [Tue, 21 Apr 2009 23:11:45 +0000 (23:11 +0000)]
qcow2: Fix warnings in check_refcount() (Kevin Wolf)

From: Kevin Wolf <kwolf@redhat.com>

This code is currently only compiled when DEBUG_ALLOC is defined, so you
usually don't see compiler warnings on it. This patch series wants to enable
the code, so fix the format string warnings first.

While we're at it, let's print error messages to stderr.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7213 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agosending NUMA topology to BIOS (Andre Przywara)
aliguori [Tue, 21 Apr 2009 22:31:41 +0000 (22:31 +0000)]
sending NUMA topology to BIOS (Andre Przywara)

uses the QEMU firmware configuration interfacce to send the NUMA
topology to the BIOS, which has to setup the tables. Only one firmware
configuration channel is used.

Signed-off-by: Andre Przywara <andre.przywara@amd.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7212 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoadd info numa command to monitor (Andre Przywara)
aliguori [Tue, 21 Apr 2009 22:30:47 +0000 (22:30 +0000)]
add info numa command to monitor (Andre Przywara)

adds an "info numa" command to the monitor to output the current
topology. Since NUMA is advertised via static ACPI tables, no changes are
possible during runtime.

Signed-off-by: Andre Przywara <andre.przywara@amd.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7211 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoadded -numa cmdline parameter parser (Andre Przywara)
aliguori [Tue, 21 Apr 2009 22:30:27 +0000 (22:30 +0000)]
added -numa cmdline parameter parser (Andre Przywara)

adds a -numa command line parameter and sets a QEMU global array with
the memory sizes. The CPU-to-node assignemnt is written into the
CPUState. If no specific values for memory and CPUs are given,
all resources will be split equally across all nodes.
This code currently support only up to 64 virtual CPUs.

Signed-off-by: Andre Przywara <andre.przywara@amd.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7210 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoSafety net for the cases where disassembler/translator disagree over instruction...
malc [Tue, 21 Apr 2009 22:26:22 +0000 (22:26 +0000)]
Safety net for the cases where disassembler/translator disagree over instruction decoding

Noticed by Mark Karpeles.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7209 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agonet: Prevent multiple slirp instances (Jan Kiszka)
aliguori [Tue, 21 Apr 2009 20:49:11 +0000 (20:49 +0000)]
net: Prevent multiple slirp instances (Jan Kiszka)

The slirp stack is full of global variables which prevents instantiating
it more than once. Catch this during net_slirp_init to prevent more harm
later on.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7208 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoslirp: Enhance host-guest redirection setup (Jan Kiszka)
aliguori [Tue, 21 Apr 2009 19:56:44 +0000 (19:56 +0000)]
slirp: Enhance host-guest redirection setup (Jan Kiszka)

Allow to establish a TCP/UDP connection redirection also via a monitor
command 'host_net_redir'. Moreover, assume TCP as connection type if
that parameter is omitted.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7204 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agonet: Untangle nested qemu_send_packet (Jan Kiszka)
aliguori [Tue, 21 Apr 2009 19:56:41 +0000 (19:56 +0000)]
net: Untangle nested qemu_send_packet (Jan Kiszka)

Queue packets that are send during an ongoing packet delivery. This
ensures that packets will always arrive in their logical order at each
client of a VLAN. Currently, slirp generates such immediate relies, and
e.g. packet-sniffing clients on the same VLAN may get confused.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7203 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agomonitor: Allow host_net_add/remove for all targets (Jan Kiszka)
aliguori [Tue, 21 Apr 2009 19:56:36 +0000 (19:56 +0000)]
monitor: Allow host_net_add/remove for all targets (Jan Kiszka)

There is nothing x86-specific in host_net_add/remove, so allow them for
all targets.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7202 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agomonitor: Improve host_net_add (Jan Kiszka)
aliguori [Tue, 21 Apr 2009 19:56:32 +0000 (19:56 +0000)]
monitor: Improve host_net_add (Jan Kiszka)

Fix the documentation of the host_net_add monitor command and allow the
user to pass no options at all. Moreover, inform the user on the
monitor terminal if a request failed.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7201 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agonet: Add support for capturing VLANs (Jan Kiszka)
aliguori [Tue, 21 Apr 2009 19:56:28 +0000 (19:56 +0000)]
net: Add support for capturing VLANs (Jan Kiszka)

This patch is derived from Tristan Gingold's patch. It adds a new VLAN
client type that writes all traffic on the VLAN it is attached to into a
pcap file. Such a file can then be analyzed offline with Wireshark or
tcpdump.

Besides rebasing and some minor cleanups, the major differences to the
original version are:
 - support for enabling/disabling via the monitor (host_net_add/remove)
 - no special ordering of VLAN client list, qemu_send_packet now takes
   care of properly ordered packets
 - 64k default capturing limit (I hate tcpdump's default)

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7200 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoAllow empty params for check_params (Jan Kiszka)
aliguori [Tue, 21 Apr 2009 19:56:23 +0000 (19:56 +0000)]
Allow empty params for check_params (Jan Kiszka)

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7199 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoslirp: Handle DHCP requests for specific IP (Jan Kiszka)
aliguori [Tue, 21 Apr 2009 19:56:20 +0000 (19:56 +0000)]
slirp: Handle DHCP requests for specific IP (Jan Kiszka)

This adds proper handling of the ciaddr field as well as the "Requested
IP Address" option to slirp's DHCP server. If the client requests an
invalid or used IP, a NAK reply is sent, if it requests a specific but
valid IP, this is now respected.

NAK'ing invalid IPs is specifically useful when changing the slirp IP
range via '-net user,ip=...' while the client saved its previously used
address and tries to reacquire it. Now this will be NAK'ed and the
client will start a new discovery round.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7198 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agonet: Add parameter checks for VLAN clients (Jan Kiszka)
aliguori [Tue, 21 Apr 2009 19:56:15 +0000 (19:56 +0000)]
net: Add parameter checks for VLAN clients (Jan Kiszka)

This aims at helping the user to find typos or other mistakes in
parameter lists passed for VLAN client initialization. The existing
parsing infrastructure does not allow a leaner approach, but this is
better than nothing IMHO.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7197 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agonet: Fix -net socket,listen (Jan Kiszka)
aliguori [Tue, 21 Apr 2009 19:56:11 +0000 (19:56 +0000)]
net: Fix -net socket,listen (Jan Kiszka)

In case no symbolic name is provided when requesting VLAN connection via
listening TCP socket ('-net socket,listen=...'), qemu crashes. This
fixes the cause.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7196 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agonet: Check device passed to host_net_remove (Jan Kiszka)
aliguori [Tue, 21 Apr 2009 19:56:08 +0000 (19:56 +0000)]
net: Check device passed to host_net_remove (Jan Kiszka)

Make sure that we do not delete guest NICs via host_net_remove.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7195 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoMIPS signal handling fixes.
pbrook [Tue, 21 Apr 2009 01:41:10 +0000 (01:41 +0000)]
MIPS signal handling fixes.

Also fixes a register corruption bug in do_sigreturn. When "returning"
from sigreturn we are actually restoring the virtual cpu state from the
signal frame.  This is actually surprisingly hard to observe in practice.

Typically an thread be blocked in a FUTEX_WAIT call when the signal arrives,
so the effect is a spurious syscall success and the introduction of a
subtle race condition.

On x86/arm a syscall modifies a single word sized register, so
do_sigreturn can just return that value.  On MIPS a syscall clobbers
multiple registers, so we need additional smarts.  My solution is to
invent a magic errno value that means "don't touch CPU state".

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7194 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoMIPS: Raise SIGSEGV, not SIGILL when an access faults.
pbrook [Tue, 21 Apr 2009 01:03:10 +0000 (01:03 +0000)]
MIPS: Raise SIGSEGV, not SIGILL when an access faults.

Signed-off-by: Paul Brook <paul@codesourcery.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7193 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix target_siginfo ordering for MIPS.
pbrook [Tue, 21 Apr 2009 00:59:40 +0000 (00:59 +0000)]
Fix target_siginfo ordering for MIPS.

Signed-off-by: Paul Brook <paul@codesourcery.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7192 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoEnable access to SYNCI_Step register in usermode emulation.
pbrook [Mon, 20 Apr 2009 23:55:57 +0000 (23:55 +0000)]
Enable access to SYNCI_Step register in usermode emulation.

Signed-off-by: Paul Brook <paul@codesourcery.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7191 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoBuild system: Fix dependency of qemu.1
blueswir1 [Sun, 19 Apr 2009 10:25:05 +0000 (10:25 +0000)]
Build system: Fix dependency of qemu.1

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7190 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agokqemu: merge CONFIG_KQEMU and USE_KQEMU
blueswir1 [Sun, 19 Apr 2009 10:18:01 +0000 (10:18 +0000)]
kqemu: merge CONFIG_KQEMU and USE_KQEMU

Basically a recursive ":%s/USE_KQEMU/CONFIG_KQEMU/g".

Signed-off-by: Paul Bolle <pebolle@tiscali.nl>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7189 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoAdds SM501 usb host emulation feature.
aurel32 [Sun, 19 Apr 2009 09:15:50 +0000 (09:15 +0000)]
Adds SM501 usb host emulation feature.
It makes usb keyboard available for sh4/r2d system emulation.

The changes for "hw/usb-ohci.c" are as follows.
 - 'localmem_base' is introduced as OHCIState struct member.
   SM501 has a local memory, and it is used to pass and receive data with
   OHCI driver.  OHCI driver accesses it with SH4 physical memory address,
   and SM501 accesses it with SM501 local address.  'localmem_base' holds
   where the SM501 local memory is mapped into SH4 physical address space.
 - Memory access functions modified to adjust address with 'localmem_base'.
   The functions are, ohci_read_*(), ohci_put_*(), and ohci_copy_*().
 - ohci_read_hcca() and ohci_put_hcca() are introduced for more consistent
   implementation.

For other source files, it does,
 - introduces usb_ohci_init_sm501().
 - adds irq argument for SM501 initialization, to emulate USB interrupts.

Signed-off-by: Shin-ichiro KAWASAKI <kawasaki@juno.dti.ne.jp>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7188 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agolinux-user: Linux kernel's fchmodat and faccessat have three args (no 4th arg)
aurel32 [Sun, 19 Apr 2009 08:52:17 +0000 (08:52 +0000)]
linux-user: Linux kernel's fchmodat and faccessat have three args (no 4th arg)

In Linux kernel, fchmodat() and faccessat() take tree args.
4th value <int flags> is only processed by libc.

Signed-off-by: Takashi YOSHII <takasi-y@ops.dti.ne.jp>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7187 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix indices in Menelaus save/load.
balrog [Sun, 19 Apr 2009 00:26:31 +0000 (00:26 +0000)]
Fix indices in Menelaus save/load.

Version increase won't be helpful here.  Spotted by Sergei Steshenko / Blau
Wirbel.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7186 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agokqemu: only compile kqemu.o if actually needed
blueswir1 [Sat, 18 Apr 2009 19:25:43 +0000 (19:25 +0000)]
kqemu: only compile kqemu.o if actually needed

kqemu.o is compiled even if kqemu support is disabled. This is useless
(kqemu.o should provide nothing that is actually used in that case) and
slightly confusing. So introduce CONFIG_KQEMU for optionally compiling
kqemu.o.

Signed-off-by: Paul Bolle <pebolle@tiscali.nl>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7185 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agolinux-user: fix IPCOP_sem* and implement sem*
aurel32 [Sat, 18 Apr 2009 16:16:12 +0000 (16:16 +0000)]
linux-user: fix IPCOP_sem* and implement sem*

Fix and cleanup IPCOP_sem* ipc calls handling and
implement sem* syscalls.

Riku:

1) Uglify whitespace so that diff gets smaller and easier
to review

2) use __get_user in target_to_host_sembuf

Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7184 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoqemu-io: Verify read data by patterns (Kevin Wolf)
aliguori [Sat, 18 Apr 2009 15:36:23 +0000 (15:36 +0000)]
qemu-io: Verify read data by patterns (Kevin Wolf)

This patch adds a -P option to read and readv which allows to compare the read
data to a given pattern. This can be used to verify data written by write -P.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7182 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoqemu-io: Fix handling of bdrv_is_allocated() return value (Kevin Wolf)
aliguori [Sat, 18 Apr 2009 15:36:19 +0000 (15:36 +0000)]
qemu-io: Fix handling of bdrv_is_allocated() return value (Kevin Wolf)

bdrv_is_allocated() returns a boolean which indicates if the offset is
allocated, not 0 on success and everything else is an error.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7181 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agomonitor: Update command help (Jan Kiszka)
aliguori [Sat, 18 Apr 2009 15:36:15 +0000 (15:36 +0000)]
monitor: Update command help (Jan Kiszka)

Align some monitor help texts to the related command parameter
definitions. host_net_add is skipped intentionally, will be slightly
reworked in a separate patch later.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7180 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agox86: Enhanced dump of segment registers (Jan Kiszka)
aliguori [Sat, 18 Apr 2009 15:36:11 +0000 (15:36 +0000)]
x86: Enhanced dump of segment registers (Jan Kiszka)

Parse the descriptor flags that segment registers refer to and show the
result in a more human-friendly format. The output of info registers eg.
then looks like this:

[...]
ES =007b 00000000 ffffffff 00cff300 DPL=3 DS   [-WA]
CS =0060 00000000 ffffffff 00c09b00 DPL=0 CS32 [-RA]
SS =0068 00000000 ffffffff 00c09300 DPL=0 DS   [-WA]
DS =007b 00000000 ffffffff 00cff300 DPL=3 DS   [-WA]
FS =0000 00000000 00000000 00000000
GS =0033 b7dd66c0 ffffffff b7dff3dd DPL=3 DS   [-WA]
LDT=0000 00000000 00000000 00008200 DPL=0 LDT
TR =0080 c06da700 0000206b 00008900 DPL=0 TSS32-avl
[...]

Changes in this version:
 - refactoring so that only a single helper is used for dumping the
   segment descriptor cache
 - tiny typo fixed that broke 64-bit segment type names

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7179 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoa couple of qemu-io fixes (Christoph Hellwig)
aliguori [Sat, 18 Apr 2009 15:36:06 +0000 (15:36 +0000)]
a couple of qemu-io fixes (Christoph Hellwig)

Fix two stupid bugs that I forgot to push out:

 - qiov->size already is in bytes, no need to shift it
 - actually use the supplied patter in the writev command

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7178 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agobuildsytem: consistently use install (Christoph Egger)
aliguori [Sat, 18 Apr 2009 15:36:02 +0000 (15:36 +0000)]
buildsytem: consistently use install (Christoph Egger)

attached patch makes qemu use install consistently.

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7177 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoUse ANSI prototypes to please sparse
blueswir1 [Sat, 18 Apr 2009 07:32:41 +0000 (07:32 +0000)]
Use ANSI prototypes to please sparse

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7176 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoAdd 'static' to avoid a sparse warning
blueswir1 [Sat, 18 Apr 2009 07:29:59 +0000 (07:29 +0000)]
Add 'static' to avoid a sparse warning

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7175 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoMove bootp_filename to avoid a sparse warning
blueswir1 [Sat, 18 Apr 2009 07:29:30 +0000 (07:29 +0000)]
Move bootp_filename to avoid a sparse warning

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7174 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix non-ACPI Timer Interrupt Routing (Beth Kon)
aliguori [Fri, 17 Apr 2009 21:01:11 +0000 (21:01 +0000)]
Fix non-ACPI Timer Interrupt Routing (Beth Kon)

Replicate ACPI irq0->inti2 override in mp table for non-acpi case.

v1 -> v2 adds comment suggested by Ryan.

Signed-off-by: Beth Kon <eak@us.ibm.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7169 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agohpet: Fix emulation of HPET_TN_SETVAL (Jan Kiszka)
aliguori [Fri, 17 Apr 2009 20:50:58 +0000 (20:50 +0000)]
hpet: Fix emulation of HPET_TN_SETVAL (Jan Kiszka)

While Intel's spec is not that clear here, latest changes to Linux' HPET
code (commit c23e253e67c9d8a91a0ffa33c1f571a17f0a2403, "x86: hpet: stop
HPET_COUNTER when programming periodic mode") strongly suggest that
HPET_TN_SETVAL rather means: Set _both_ the comparator value and
register.

With this patch applied, I'm again able to boot 2.6.30-rc kernels as
they no longer panic like this (which was due to the comparator
register remaining 0):

ENABLING IO-APIC IRQs
..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
..MP-BIOS bug: 8254 timer not connected to IO-APIC
...trying to set up timer (IRQ0) through the 8259A ...
..... (found apic 0 pin 2) ...
....... failed.
...trying to set up timer as Virtual Wire IRQ...
..... failed.
...trying to set up timer as ExtINT IRQ...
..... failed :(.
Kernel panic - not syncing: IO-APIC + timer doesn't work! [...]

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7168 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agokvm: Fix cpuid initialization (Jan Kiszka)
aliguori [Fri, 17 Apr 2009 20:50:54 +0000 (20:50 +0000)]
kvm: Fix cpuid initialization (Jan Kiszka)

Fix (more or less) spurious guest boot failures due to corrupted cpuid
states. The reason was insufficient initialization of cpuid entries
before passing them to the kernel.

At this chance also fix improper entry pointer progression and simplify
the code a bit.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7167 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoqcow2 corruption: Fix alloc_cluster_link_l2 (Kevin Wolf)
aliguori [Fri, 17 Apr 2009 20:44:06 +0000 (20:44 +0000)]
qcow2 corruption: Fix alloc_cluster_link_l2 (Kevin Wolf)

This patch fixes a qcow2 corruption bug introduced in SVN Rev 5861. L2 tables
are big endian, so entries must be converted before being passed to functions.

This bug is easy to trigger. The following script will create and destroy a
qcow2 image (the header is gone after three loop iterations):

    #!/bin/bash
    qemu-img create -f qcow2 test.qcow 1M
    for i in $(seq 1 10); do
    qemu-system-x86_64 -hda test.qcow -monitor stdio > /dev/null 2>&1 <<EOF
    savevm test-$i
    quit
    EOF
    done

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7165 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoMake the sed script also work with OpenBSD and OpenSolaris seds
blueswir1 [Fri, 17 Apr 2009 20:01:12 +0000 (20:01 +0000)]
Make the sed script also work with OpenBSD and OpenSolaris seds

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7164 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoqemu: Add support for SMBIOS command line otions (Alex Williamson)
aliguori [Fri, 17 Apr 2009 18:59:56 +0000 (18:59 +0000)]
qemu: Add support for SMBIOS command line otions (Alex Williamson)

Create a new -smbios option (x86-only) to allow binary SMBIOS entries
to be passed through to the BIOS or modify the default values of
individual fields of type 0 and 1 entries on the command line.

Binary SMBIOS entries can be generated as follows:

dmidecode -t 1 -u | grep $'^\t\t[^"]' | xargs -n1 | \
        perl -lne 'printf "%c", hex($_)' > smbios_type_1.bin

These can then be passed to the BIOS using this switch:

 -smbios file=smbios_type_1.bin

Command line generation supports the following syntax:

 -smbios type=0[,vendor=str][,version=str][,date=str][,release=%d.%d]
 -smbios type=1[,manufacturer=str][,product=str][,version=str][,serial=str]
              [,uuid=$(uuidgen)][,sku=str][,family=str]

For instance, to add a serial number to the type 1 table:

 -smbios type=1,serial=0123456789

Interface is extensible to support more fields/tables as needed.

aliguori: remove texi formatting from help output

Signed-off-by: Alex Williamson <alex.williamson@hp.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7163 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoqemu: Add prototype and make qemu_uuid_parse() non-static (Alex Williamson)
aliguori [Fri, 17 Apr 2009 18:58:14 +0000 (18:58 +0000)]
qemu: Add prototype and make qemu_uuid_parse() non-static (Alex Williamson)

SMBIOS parameters can also provide a UUID outside of vl.c.

Signed-off-by: Alex Williamson <alex.williamson@hp.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7162 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFree VLANClientState using qemu_free() (Mark McLoughlin)
aliguori [Fri, 17 Apr 2009 17:11:12 +0000 (17:11 +0000)]
Free VLANClientState using qemu_free() (Mark McLoughlin)

It's allocated using qemu_mallocz(), so ...

The name and model strings are strdup() allocated, so free()
is still appropriate for them.

Reported-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7151 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoIntroduce VLANClientState::cleanup() (Mark McLoughlin)
aliguori [Fri, 17 Apr 2009 17:11:08 +0000 (17:11 +0000)]
Introduce VLANClientState::cleanup() (Mark McLoughlin)

We're currently leaking memory and file descriptors on device
hot-unplug.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7150 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoUse NICInfo::model for eepro100 savevm ID string (Mark McLoughlin)
aliguori [Fri, 17 Apr 2009 17:11:03 +0000 (17:11 +0000)]
Use NICInfo::model for eepro100 savevm ID string (Mark McLoughlin)

NICInfo::model will always be identical to the device name strings
we're currently passing to nic_init(). Just re-use NICInfo::model.

This makes it clear why we use vc->model for unregister_savevm()
in a subsequent patch.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7149 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoAdd unregister_savevm() (Mark McLoughlin)
aliguori [Fri, 17 Apr 2009 17:10:59 +0000 (17:10 +0000)]
Add unregister_savevm() (Mark McLoughlin)

Currently there's no way to unregister a savevm callback, so
e.g. if a NIC is hot-unplugged and a savevm is issued, we'll
segfault.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7148 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoRemove NICInfo from e1000 and mipsnet state (Mark McLoughlin)
aliguori [Fri, 17 Apr 2009 17:10:56 +0000 (17:10 +0000)]
Remove NICInfo from e1000 and mipsnet state (Mark McLoughlin)

NICInfo isn't used after initialization, so remove it from the driver
state structures.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7147 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoRemove some useless malloc() checking (Mark McLoughlin)
aliguori [Fri, 17 Apr 2009 17:10:51 +0000 (17:10 +0000)]
Remove some useless malloc() checking (Mark McLoughlin)

Now that we abort() on malloc, neither qemu_find_vlan() nor
net_tap_fd_init() can fail.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7146 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoDon't fail PCI hotplug if no NIC model is supplied (Mark McLoughlin)
aliguori [Fri, 17 Apr 2009 17:10:47 +0000 (17:10 +0000)]
Don't fail PCI hotplug if no NIC model is supplied (Mark McLoughlin)

It's perfectly fine to not supply a NIC model when adding
a new NIC - we supply the default model to pci_nic_init()
and it uses that if one wasn't explicitly supplied.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7145 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoFix error handling in net_client_init() (Mark McLoughlin)
aliguori [Fri, 17 Apr 2009 17:10:43 +0000 (17:10 +0000)]
Fix error handling in net_client_init() (Mark McLoughlin)

We weren't freeing the name string everywhere.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7144 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agostruct iovec is now universally available (Mark McLoughlin)
aliguori [Fri, 17 Apr 2009 17:10:39 +0000 (17:10 +0000)]
struct iovec is now universally available (Mark McLoughlin)

struct iovec is now defined in qemu-common.h if needed, so we don't need
the tap code to handle !defined(HAVE_IOVEC).

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7143 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agoRemove stray GSO code from virtio_net (Mark McLoughlin)
aliguori [Fri, 17 Apr 2009 17:10:34 +0000 (17:10 +0000)]
Remove stray GSO code from virtio_net (Mark McLoughlin)

Obviously merged from kvm-userspace accidentally.

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7142 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agovga: Cleanup dirty logging (Jan Kiszka)
aliguori [Fri, 17 Apr 2009 14:26:41 +0000 (14:26 +0000)]
vga: Cleanup dirty logging (Jan Kiszka)

In theory, there are no more quirks in the KVM slot management that
requires dirty log start/stop all over the place. We just have to start
the logging each time the mapping may have changed. This patch drops
vga_dirty_log_stop for both standard and cirrus VGA. It also reverts
#6851 as it was obviously a tribute to the old slot system.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7141 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agovga: Fix inconsistent tracking of map_addr (Jan Kiszka)
aliguori [Fri, 17 Apr 2009 14:26:37 +0000 (14:26 +0000)]
vga: Fix inconsistent tracking of map_addr (Jan Kiszka)

Only track video RAM mapping in map_addr and use the correct RAM size.
Furthermore, make sure the reset the address in case unmapping took
place via PCI reconfiguration.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7140 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agokvm: improve handling of overlapping slots (Jan Kiszka)
aliguori [Fri, 17 Apr 2009 14:26:33 +0000 (14:26 +0000)]
kvm: improve handling of overlapping slots (Jan Kiszka)

This reworks the slot management to handle more patterns of
cpu_register_physical_memory*, finally allowing to reset KVM guests (so
far address remapping on reset broke the slot management).

We could actually handle all possible ones without failing, but a KVM
kernel bug in older versions would force us to track all previous
fragmentations and maintain them (as that bug prevents registering
larger slots that overlap also deleted ones). To remain backward
compatible but avoid overly complicated workarounds, we apply a simpler
workaround that covers all currently used patterns.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7139 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agokvm: Add sanity checks to slot management (Jan Kiszka)
aliguori [Fri, 17 Apr 2009 14:26:29 +0000 (14:26 +0000)]
kvm: Add sanity checks to slot management (Jan Kiszka)

Fail loudly if we run out of memory slot.

Make sure that dirty log start/stop works with consistent memory regions
by reporting invalid parameters. This reveals several inconsistencies in
the vga code, patch to fix them follows later in this series.

And, for simplicity reasons, also catch and report unaligned memory
regions passed to kvm_set_phys_mem (KVM works on page basis).

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7138 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agokvm: Cleanup unmap condition in kvm_set_phys_mem (Jan Kiszka)
aliguori [Fri, 17 Apr 2009 14:26:25 +0000 (14:26 +0000)]
kvm: Cleanup unmap condition in kvm_set_phys_mem (Jan Kiszka)

Testing for TLB_MMIO on unmap makes no sense as A) that flag belongs to
CPUTLBEntry and not to io_memory slots or physical addresses and B) we
already use a different condition before mapping. So make this test
consistent.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7137 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agokvm: Apply SMM-already-initialized workaround on reset (Jan Kiszka)
aliguori [Fri, 17 Apr 2009 14:26:21 +0000 (14:26 +0000)]
kvm: Apply SMM-already-initialized workaround on reset (Jan Kiszka)

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7136 c046a42c-6fe2-441c-8c8c-71466251a162

15 years agokvm: Sync CPU state on reset (Jan Kiszka)
aliguori [Fri, 17 Apr 2009 14:26:17 +0000 (14:26 +0000)]
kvm: Sync CPU state on reset (Jan Kiszka)

Make sure KVM gets informed about the reset CPU state.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7135 c046a42c-6fe2-441c-8c8c-71466251a162