]> git.proxmox.com Git - qemu.git/log
qemu.git
14 years agoraw-posix: add Linux native AIO support
Christoph Hellwig [Thu, 20 Aug 2009 14:58:35 +0000 (16:58 +0200)]
raw-posix: add Linux native AIO support

Now that do have a nicer interface to work against we can add Linux native
AIO support.  It's an extremly thing layer just setting up an iocb for
the io_submit system call in the submission path, and registering an
eventfd with the qemu poll handler to do complete the iocbs directly
from there.

This started out based on Anthony's earlier AIO patch, but after
estimated 42,000 rewrites and just as many build system changes
there's not much left of it.

To enable native kernel aio use the aio=native sub-command on the
drive command line.  I have also added an option to qemu-io to
test the aio support without needing a guest.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoraw-posix: refactor AIO support
Christoph Hellwig [Thu, 20 Aug 2009 14:58:19 +0000 (16:58 +0200)]
raw-posix: refactor AIO support

Currently the raw-posix.c code contains a lot of knowledge about the
asynchronous I/O scheme that is mostly implemented in posix-aio-compat.c.
All this code does not really belong here and is getting a bit in the
way of implementing native AIO on Linux.

So instead move all the guts of the AIO implementation into
posix-aio-compat.c (which might need a better name, btw).

There's now a very small interface between the AIO providers and raw-posix.c:

 - an init routine is called from raw_open_common to return an AIO context
   for this drive.  An AIO implementation may either re-use one context
   for all drives, or use a different one for each as the Linux native
   AIO support will do.
 - an submit routine is called from the aio_reav/writev methods to submit
   an AIO request

There are no indirect calls involved in this interface as we need to
decide which one to call manually.  We will only call the Linux AIO native
init function if we were requested to by vl.c, and we will only call
the native submit function if we are asked to and the request is properly
aligned.  That's also the reason why the alignment check actually does
the inverse move and now goes into raw-posix.c.

The old posix-aio-compat.h headers is removed now that most of it's
content is private to posix-aio-compat.c, and instead we add a new
block/raw-posix-aio.h headers is created containing only the tiny interface
between raw-posix.c and the AIO implementation.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agovirtio-console: rename dvq to ovq
Amit Shah [Thu, 20 Aug 2009 09:33:25 +0000 (15:03 +0530)]
virtio-console: rename dvq to ovq

It isn't obvious what 'dvq' stands for. Since it's the output queue and
the corresponding input queue is called 'ivq', call this 'ovq'

Signed-off-by: Amit Shah <amit.shah@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agopci ids: remove redundant defines
Amit Shah [Wed, 12 Aug 2009 19:20:28 +0000 (00:50 +0530)]
pci ids: remove redundant defines

Remove some redundant definitions for PCI classes:
PCI_CLASS_SERIAL_OTHER already exists as PCI_CLASS_COMMUNICATION_OTHER
and PCI_CLASS_PROCESSOR_CO is redefined.

PCI_CLASS_SERIAL_OTHER is not used anywhere.

Signed-off-by: Amit Shah <amit.shah@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agomultiboot.raw is a generated file
Juan Quintela [Wed, 19 Aug 2009 10:19:31 +0000 (12:19 +0200)]
multiboot.raw is a generated file

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoPort ACPI to VMState
Juan Quintela [Thu, 20 Aug 2009 17:42:41 +0000 (19:42 +0200)]
Port ACPI to VMState

This uses a run_after_load() function, and VMSTATE_PCI_DEVICE()
It could be made smaller changing the type of pm_io_space_update()
to return an int.

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd VMState support to run a function after load
Juan Quintela [Thu, 20 Aug 2009 17:42:40 +0000 (19:42 +0200)]
Add VMState support to run a function after load

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoPort PCIDevice state to VMState
Juan Quintela [Thu, 20 Aug 2009 17:42:39 +0000 (19:42 +0200)]
Port PCIDevice state to VMState

This uses a variant of buffer, with extra checks. Also uses the new
support for cheking that a read value is less or equal than a field.

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd version_id to PCIDevice.
Juan Quintela [Thu, 20 Aug 2009 17:42:38 +0000 (19:42 +0200)]
Add version_id to PCIDevice.

It is needed for VMState

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd VMState support for int32_t check value
Juan Quintela [Thu, 20 Aug 2009 17:42:37 +0000 (19:42 +0200)]
Add VMState support for int32_t check value

We read the saved value and check that it is less or equal than the one
stored in the structure.

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoPort PS2 devices to VMState design
Juan Quintela [Thu, 20 Aug 2009 17:42:36 +0000 (19:42 +0200)]
Port PS2 devices to VMState design

This uses STRUCT and BUFFER

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd VMState support for static sized buffers (uint_8)
Juan Quintela [Thu, 20 Aug 2009 17:42:35 +0000 (19:42 +0200)]
Add VMState support for static sized buffers (uint_8)

This patch adds support for static sized buffer and typecheks that the buffer is right.

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoPort PCI Bus to VMState design
Juan Quintela [Thu, 20 Aug 2009 17:42:34 +0000 (19:42 +0200)]
Port PCI Bus to VMState design

This uses VARRAY and INT32_EQUAL values

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd VMState support for variable sized arrays
Juan Quintela [Thu, 20 Aug 2009 17:42:33 +0000 (19:42 +0200)]
Add VMState support for variable sized arrays

This patch add supports for variable sized arrays whose size is
another field of the state.

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd VMState support for int32_t check value
Juan Quintela [Thu, 20 Aug 2009 17:42:32 +0000 (19:42 +0200)]
Add VMState support for int32_t check value

We read the saved value and check that it is the same that the one
is stored in the structure.

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoPort i8254 to new VMState design
Juan Quintela [Thu, 20 Aug 2009 17:42:31 +0000 (19:42 +0200)]
Port i8254 to new VMState design

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd VMState support for arrays of structs
Juan Quintela [Thu, 20 Aug 2009 17:42:30 +0000 (19:42 +0200)]
Add VMState support for arrays of structs

This patch add supports for arrays of structs

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd VMState support for structs
Juan Quintela [Thu, 20 Aug 2009 17:42:29 +0000 (19:42 +0200)]
Add VMState support for structs

This patch adds support for saving one VMStateDescription from other
VMStateDescription.

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoPort apic to new VMState design
Juan Quintela [Thu, 20 Aug 2009 17:42:28 +0000 (19:42 +0200)]
Port apic to new VMState design

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd VMState support for arrays
Juan Quintela [Thu, 20 Aug 2009 17:42:27 +0000 (19:42 +0200)]
Add VMState support for arrays

This patch adds support for saving arrays inside the struct

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd VMState support for pointers
Juan Quintela [Thu, 20 Aug 2009 17:42:26 +0000 (19:42 +0200)]
Add VMState support for pointers

This patch adds support for saving pointers to values

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoNew VMstate save/load infrastructure
Juan Quintela [Thu, 20 Aug 2009 17:42:25 +0000 (19:42 +0200)]
New VMstate save/load infrastructure

This patch introduces VMState infrastructure, to convert the save/load
functions of devices to a table approach.  This new approach has the
following advantages:
- it is type-safe
- you can't have load/save functions out of sync
- will allows us to have new interesting commands, like dump <device>, that
  shows all its internal state.
- Just now, the only added type is arrays, but we can add structures.
- Uses old load_state() function for loading old state.

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd vmstate_load() and vmstate_save() functions
Juan Quintela [Thu, 20 Aug 2009 17:42:24 +0000 (19:42 +0200)]
Add vmstate_load() and vmstate_save() functions

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoUse return value from load_state() call back
Juan Quintela [Thu, 20 Aug 2009 17:42:23 +0000 (19:42 +0200)]
Use return value from load_state() call back

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agomake load_vmstate() return errors
Juan Quintela [Thu, 20 Aug 2009 17:42:22 +0000 (19:42 +0200)]
make load_vmstate() return errors

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agomove do_loadvm() to monitor.c
Juan Quintela [Thu, 20 Aug 2009 17:42:21 +0000 (19:42 +0200)]
move do_loadvm() to monitor.c

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agosplit do_loadvm() into do_loadvm() and load_vmstate()
Juan Quintela [Thu, 20 Aug 2009 17:42:20 +0000 (19:42 +0200)]
split do_loadvm() into do_loadvm() and load_vmstate()

do_loadvm() is now called from the monitor.
load_vmstate() is called by do_loadvm() and when -loadvm command line is used.
Command line don't have to play games with vmstop()/vmstart()

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agomove useful type definitons to osdep.h
Juan Quintela [Thu, 20 Aug 2009 17:42:19 +0000 (19:42 +0200)]
move useful type definitons to osdep.h

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoqcow2: Metadata preallocation
Kevin Wolf [Mon, 17 Aug 2009 13:50:10 +0000 (15:50 +0200)]
qcow2: Metadata preallocation

This introduces a qemu-img create option for qcow2 which allows the metadata to
be preallocated, i.e. clusters are reserved in the refcount table and L1/L2
tables, but no data is written to them. Metadata is quite small, so this
happens in almost no time.

Especially with qcow2 on virtio this helps to gain a bit of performance during
the initial writes. However, as soon as create a snapshot, we're back to the
normal slow speed, obviously. So this isn't the real fix, but kind of a cheat
while we're still having trouble with qcow2 on virtio.

Note that the option is disabled by default and needs to be specified
explicitly using qemu-img create -f qcow2 -o preallocation=metadata.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoMove isa_connect_irq calls into isa_create_simple
Gerd Hoffmann [Fri, 14 Aug 2009 09:36:16 +0000 (11:36 +0200)]
Move isa_connect_irq calls into isa_create_simple

Now with isa-bus maintaining the isa irqs we can move the
isa_connect_irq() calls into isa_create_simple().

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd isa_reserve_irq().
Jes Sorensen [Fri, 14 Aug 2009 09:36:15 +0000 (11:36 +0200)]
Add isa_reserve_irq().

Introduce isa_reserve_irq() which marks an irq reserved and returns
the appropriate qemu_irq entry from the i8259 table.

isa_reserve_irq() is a temporary interface to be used to allocate ISA
IRQs for devices which have not yet been converted to qdev, and for
special cases which are not suited for qdev conversions, such as the
'ferr'.

This patch goes on top of Gerd Hoffmann's which makes isa-bus.c own
the ISA irq table.

[ added isa-bus.o to some targets to fix build failures  -- kraxel ]

Signed-off-by: Jes Sorensen <jes@sgi.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoisa bus irq changes and fixes.
Gerd Hoffmann [Fri, 14 Aug 2009 09:36:14 +0000 (11:36 +0200)]
isa bus irq changes and fixes.

Changes:

  (1) make isa-bus maintain isa irqs, complain when allocating
      already taken irqs.
  (2) note that (1) works only for isa devices converted to qdev
      already (floppy and ps2/kbd/mouse right now), so more work
      is needed to make this really useful.
  (3) split floppy init into isa and sysbus versions.
  (4) add sysbus->isa bridge & fix -M isapc breakage.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agohw/eepro100.c: Use extended TBD only where applicable
Naphtali Sprei [Thu, 13 Aug 2009 12:01:20 +0000 (15:01 +0300)]
hw/eepro100.c: Use extended TBD only where applicable

Bug fix for segfault when run as i82551 HW:
Use Extended TBD only when HW supports it (i82558 and up).

Added assertions to guard from such buffer overflow
Introduce the MAX_TCB_BYTE_COUNT macro
Allocate buf big enough as HW needs (MAX_ETH_FRAME_SIZE -> MAX_TCB_BYTE_COUNT)

I don't feel 100% OK with the "s->device >= i82558B" condition
since it relies on the numeric (hex) value of those defines, which currently
is correct, but changes (which I don't forsee now) might break it.

Signed-off-by: Naphtali Sprei <nsprei@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agopci-hotplug: initialize dinfo to NULL in pci_device_hot_add
Sebastian Herbszt [Sun, 16 Aug 2009 12:07:54 +0000 (14:07 +0200)]
pci-hotplug: initialize dinfo to NULL in pci_device_hot_add

Suppress the following compiler warning emitted by at least gcc version 4.2.1 (SUSE Linux)
and gcc version 3.4.5 (mingw32 special):

hw/pci-hotplug.c: In function 'pci_device_hot_add':
hw/pci-hotplug.c:102: warning: 'dinfo' may be used uninitialized in this function
hw/pci-hotplug.c:102: note: 'dinfo' was declared here

Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoblock/vdi.c: Fix several bugs
Stefan Weil [Fri, 14 Aug 2009 19:50:02 +0000 (21:50 +0200)]
block/vdi.c: Fix several bugs

* The code for option '-static' was wrong, so image creation
  always created static images.

* Static images created with qemu-img did not set header entry
  blocks_allocated.

* The size of the block map must be rounded to the next multiple
  of SECTOR_SIZE, otherwise the block map is only read partially
  for block map sizes which are not a multiple of SECTOR_SIZE.

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agointroduce kvm64 CPU
Andre Przywara [Thu, 20 Aug 2009 21:34:17 +0000 (23:34 +0200)]
introduce kvm64 CPU

In addition to the TCG based qemu64 type let's introduce a kvm64 CPU type,
which is the least common denominator of all KVM-capable x86-CPUs
(based on Intel Pentium 4 Prescott). It can be used as a base type
for migration.

Signed-off-by: Andre Przywara <andre.przywara@amd.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoallow overriding of CPUID level on command line
Andre Przywara [Thu, 20 Aug 2009 19:03:48 +0000 (21:03 +0200)]
allow overriding of CPUID level on command line

The CPUID level determines how many CPUID leafs are exposed to the guest.
Some features (like multi-core) cannot be propagated without the proper
level, but guests maybe confused by bogus entries in some leafs.
So add level= and xlevel= to the list of -cpu options to allow the user to
override the default settings. While at it, merge unnecessary local
variables into one and allow hexadecimal arguments.

Signed-off-by: Andre Przywara <andre.przywara@amd.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoset CPUID bits to present cores and threads topology
Andre Przywara [Wed, 19 Aug 2009 13:42:42 +0000 (15:42 +0200)]
set CPUID bits to present cores and threads topology

Controlled by the enhanced -smp option set the CPUID bits to present the
guest the desired topology. This is vendor specific, but (with the exception
of the CMP_LEGACY bit) not conflicting, so we set all bits everytime.
There is no real multithreading support for AMD CPUs, so report cores
instead.

Signed-off-by: Andre Przywara <andre.przywara@amd.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agopush CPUID level to 4 to allow Intel multicore decoding
Andre Przywara [Wed, 19 Aug 2009 13:42:41 +0000 (15:42 +0200)]
push CPUID level to 4 to allow Intel multicore decoding

Intel CPUs store the number of cores in CPUID leaf 4. So push
the maxleaf value to 4 to allow the guests access to this leaf.

Signed-off-by: Andre Przywara <andre.przywara@amd.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoextend -smp parsing to include cores= and threads= options
Andre Przywara [Wed, 19 Aug 2009 13:42:40 +0000 (15:42 +0200)]
extend -smp parsing to include cores= and threads= options

For injecting multi-core and multi-threading CPU topology into guests
extend the -smp syntax to accommodate cores and threads specification.
Syntax: -smp smp_value[,cores=nr_cores][,threads=nr_threads]\
[,socket=nr_sockets][,maxcpus=max_cpus]
smp_value is the legacy value specifying the total number of vCPUs for
the guest. If you specify one of cores, threads or sockets this value
can be omitted. Missing values will be computed to fulfill:
smp_value = nr_cores * nr_threads * nr_sockets
where it will favour sockets over cores over threads (to mimic the
current behavior, which will only inject multiple sockets.)
So -smp 4,threads=2 will inject two sockets with 2 threads each,
-smp cores=4 is an abbreviation for -smp 4,cores=4,threads=1,sockets=1.
If max_cpus (the number of hotpluggable CPUs) is omitted, it will
be set to smp_value.

Signed-off-by: Andre Przywara <andre.przywara@amd.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoadd file descriptor migration
Paolo Bonzini [Tue, 18 Aug 2009 13:56:25 +0000 (15:56 +0200)]
add file descriptor migration

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Cc: Chris Lalancette <clalance@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd sparse to new feature convention
Juan Quintela [Wed, 12 Aug 2009 16:29:57 +0000 (18:29 +0200)]
Add sparse to new feature convention

Once there, move to a proper test to see if we are going to use it or not

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd kvm to new feature convention
Juan Quintela [Wed, 12 Aug 2009 16:29:56 +0000 (18:29 +0200)]
Add kvm to new feature convention

Extra error message is only given if --enable-kvm was given

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd xen to new feature convention
Juan Quintela [Wed, 12 Aug 2009 16:29:55 +0000 (18:29 +0200)]
Add xen to new feature convention

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd fdt to new feature convention
Juan Quintela [Wed, 12 Aug 2009 16:29:54 +0000 (18:29 +0200)]
Add fdt to new feature convention

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd sdl to new feature convention
Juan Quintela [Wed, 12 Aug 2009 16:29:53 +0000 (18:29 +0200)]
Add sdl to new feature convention

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoRename build_docs to docs
Juan Quintela [Wed, 12 Aug 2009 16:29:52 +0000 (18:29 +0200)]
Rename build_docs to docs

All other features are named foo and enabled with --enable-foo.

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd build_docs to new feature convention
Juan Quintela [Wed, 12 Aug 2009 16:29:51 +0000 (18:29 +0200)]
Add build_docs to new feature convention

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd bluez to new feature convencion
Juan Quintela [Wed, 12 Aug 2009 16:29:50 +0000 (18:29 +0200)]
Add bluez to new feature convencion

Once there, remove extra check for package and output if bluez was found or not as the other features

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd nptl to new feature convencion
Juan Quintela [Wed, 12 Aug 2009 16:29:49 +0000 (18:29 +0200)]
Add nptl to new feature convencion

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd curl to new feature convencion
Juan Quintela [Wed, 12 Aug 2009 16:29:47 +0000 (18:29 +0200)]
Add curl to new feature convencion

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd curses to new feature convencion
Juan Quintela [Wed, 12 Aug 2009 16:20:30 +0000 (18:20 +0200)]
Add curses to new feature convencion

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd vnc_sasl to new feature convencion
Juan Quintela [Wed, 12 Aug 2009 16:20:29 +0000 (18:20 +0200)]
Add vnc_sasl to new feature convencion

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd vnc_tls to new feature convencion
Juan Quintela [Wed, 12 Aug 2009 16:20:28 +0000 (18:20 +0200)]
Add vnc_tls to new feature convencion

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd vde to new feature convencion
Juan Quintela [Wed, 12 Aug 2009 16:20:27 +0000 (18:20 +0200)]
Add vde to new feature convencion

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd brlapi to new feature convencion
Juan Quintela [Wed, 12 Aug 2009 16:20:26 +0000 (18:20 +0200)]
Add brlapi to new feature convencion

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd error message for feature not found
Juan Quintela [Wed, 12 Aug 2009 16:20:25 +0000 (18:20 +0200)]
Add error message for feature not found

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd feature configure help
Juan Quintela [Wed, 12 Aug 2009 16:20:24 +0000 (18:20 +0200)]
Add feature configure help

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoUse the same structure for list of libs in curses and pthread
Juan Quintela [Wed, 12 Aug 2009 16:20:23 +0000 (18:20 +0200)]
Use the same structure for list of libs in curses and pthread

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoMake vnc configure options less verbose.
Juan Quintela [Wed, 12 Aug 2009 16:20:22 +0000 (18:20 +0200)]
Make vnc configure options less verbose.

Rest of libraries don't print themselves

Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoRemove a hack introduced by d19076faca944c31bb051b95d285e75ec67902f7
malc [Thu, 27 Aug 2009 14:04:10 +0000 (18:04 +0400)]
Remove a hack introduced by d19076faca944c31bb051b95d285e75ec67902f7

Work by Blue Swirl culminating with 5c55ff99fa88158871d5b9f619c485deae5f3d5b
made it unnecessary.

14 years agoFix dsound typos
Consul [Tue, 25 Aug 2009 21:48:50 +0000 (14:48 -0700)]
Fix dsound typos

Dsound currently does not compile due to the typos in the code. This
patch makes it compile again.{PATCH}

Signed-off-by: Alex Ivanov <void@aleksoft.net>
Signed-off-by: malc <av1474@comtv.ru>
14 years agoRemove kqemu.c accidentally added by d60efc6b0d3d4e90cbbb86e21451e55263c29416
Blue Swirl [Tue, 25 Aug 2009 19:32:42 +0000 (19:32 +0000)]
Remove kqemu.c accidentally added by d60efc6b0d3d4e90cbbb86e21451e55263c29416

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoSparc32: improve interrupt handling
Blue Swirl [Tue, 25 Aug 2009 18:29:36 +0000 (18:29 +0000)]
Sparc32: improve interrupt handling

Level 15 interrupts are broadcast to all CPUs, each CPU can clear the
interrupt using the local Clear Pending register.

Update intbit_to_level table.

Don't try to raise level 0 interrupts.

Calculate pending interrupts based on the separate inputs from master
register. Setting or resetting the pending level isn't correct because of
overlap of levels.

Level 14 is always used for CPU timer interrupts, remove the property.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoMake CPURead/WriteFunc structure 'const'
Blue Swirl [Tue, 25 Aug 2009 18:29:31 +0000 (18:29 +0000)]
Make CPURead/WriteFunc structure 'const'

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agotarget-mips: fix conditional moves off fp condition codes
Nathan Froyd [Tue, 25 Aug 2009 15:20:00 +0000 (08:20 -0700)]
target-mips: fix conditional moves off fp condition codes

Conditional moves off fp condition codes were using the result of
get_fp_bit to isolate and test the relevant condition code.  However,
get_fp_bit returns the bit number of the condition code, not a
bitmask.  (Compare the use of get_fp_bit in gen_compute_branch1, for
instance.)

Fixed by shifting a bitmask into place using the result of get_fp_bit in
the relevant functions (gen_mov{ci,cf_s,cf_d,cf_ps}).

Signed-off-by: Nathan Froyd <froydnj@codesourcery.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoARM back-end: Fix encode_imm
Laurent Desnogues [Mon, 24 Aug 2009 23:12:25 +0000 (01:12 +0200)]
ARM back-end: Fix encode_imm

the encode_imm function in tcg/arm/tcg-target.c lacks shift declaration.

Laurent

Signed-off-by: Laurent Desnogues <laurent.desnogues@gmail.com>
Signed-off-by: Andrzej Zaborowski <andrew.zaborowski@intel.com>
14 years agoMake the e1000 the default network adapter for the pc target.
Anthony Liguori [Fri, 14 Aug 2009 16:20:47 +0000 (11:20 -0500)]
Make the e1000 the default network adapter for the pc target.

The ne2k is an ancient card that performs pretty terribly under QEMU.  In many
modern OSes, there is no longer drivers available for the ne2k.

Switch the default network adapter to e1000.  This card is more widely
suppported and performs rather well under QEMU.  There may be very old OSes
that had a ne2k driver but not an e1000 driver but I think this is likely the
exception.

I think the average user is better served with an e1000 vs ne2k.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoeliminate errors about unused results in block/vpc.c
Nathan Froyd [Tue, 11 Aug 2009 19:47:59 +0000 (12:47 -0700)]
eliminate errors about unused results in block/vpc.c

These errors come up when compiling with gcc-4.3.3 and some older headers:

/scratch/froydnj/qemu.git/block/vpc.c: In function 'vpc_create':
/scratch/froydnj/qemu.git/block/vpc.c:514: error: value computed is not used
/scratch/froydnj/qemu.git/block/vpc.c:516: error: value computed is not used
/scratch/froydnj/qemu.git/block/vpc.c:517: error: value computed is not used
/scratch/froydnj/qemu.git/block/vpc.c:566: error: value computed is not used

Use memcpy to copy the strings instead of strncpy.

Signed-off-by: Nathan Froyd <froydnj@codesourcery.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agovirtio-blk: add msi support.
Gerd Hoffmann [Wed, 12 Aug 2009 10:47:24 +0000 (12:47 +0200)]
virtio-blk: add msi support.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoqdev/prop: convert isa-bus to helper macros.
Gerd Hoffmann [Tue, 11 Aug 2009 09:38:30 +0000 (11:38 +0200)]
qdev/prop: convert isa-bus to helper macros.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agomake pthreads mandatory
Christoph Hellwig [Mon, 10 Aug 2009 21:39:39 +0000 (23:39 +0200)]
make pthreads mandatory

As requested by Anthony make pthreads mandatory.  This means we will always
have AIO available on posix hosts, and it will also allow enabling the I/O
thread unconditionally once it's ready.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoqemu: move virtio-pci.o to near pci.o
Michael S. Tsirkin [Mon, 10 Aug 2009 19:30:24 +0000 (22:30 +0300)]
qemu: move virtio-pci.o to near pci.o

virtio-pci depends, and will always depend, on pci.c
so it makes sense to keep it in the same makefile,
(unlike the rest of virtio files which should eventually
 be moved out to Makefile.hw).

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agochar: Emit 'CLOSED' events on char device close
Amit Shah [Tue, 11 Aug 2009 15:57:48 +0000 (21:27 +0530)]
char: Emit 'CLOSED' events on char device close

Notify users of the char interface whenever the file / connection is
closed.

Signed-off-by: Amit Shah <amit.shah@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agocleanup cpu-exec.c, part 0/N: consolidate handle_cpu_signal
Nathan Froyd [Mon, 10 Aug 2009 20:37:36 +0000 (13:37 -0700)]
cleanup cpu-exec.c, part 0/N: consolidate handle_cpu_signal

handle_cpu_signal is very nearly copy-paste code for each target, with a
few minor variations.  This patch sets up appropriate defaults for a
generic handle_cpu_signal and provides overrides for particular targets
that did things differently.  Fixing things like the persistent (XXX:
use sigsetjmp) should now become somewhat easier.

Previous comments on this patch suggest that the "activate soft MMU for
this block" comments refer to defunct functionality.  I have removed
such blocks for the appropriate targets in this patch.

Signed-off-by: Nathan Froyd <froydnj@codesourcery.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agounify popen/fopen qemu wrappers
Paolo Bonzini [Wed, 12 Aug 2009 12:17:35 +0000 (14:17 +0200)]
unify popen/fopen qemu wrappers

While reading Chris's code for fd migration I noticed the duplication
between QEMUFilePopen and QEMUFileStdio.  This fixes it, and makes
qemu_fopen more similar qemu_popen.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoOnly build osdep once
Anthony Liguori [Mon, 10 Aug 2009 22:14:11 +0000 (17:14 -0500)]
Only build osdep once

We no longer need hackery to work around kqemu

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoUnbreak large mem support by removing kqemu
Anthony Liguori [Mon, 10 Aug 2009 22:07:24 +0000 (17:07 -0500)]
Unbreak large mem support by removing kqemu

kqemu introduces a number of restrictions on the i386 target.  The worst is that
it prevents large memory from working in the default build.

Furthermore, kqemu is fundamentally flawed in a number of ways.  It relies on
the TSC as a time source which will not be reliable on a multiple processor
system in userspace.  Since most modern processors are multicore, this severely
limits the utility of kqemu.

kvm is a viable alternative for people looking to accelerate qemu and has the
benefit of being supported by the upstream Linux kernel.  If someone can
implement work arounds to remove the restrictions introduced by kqemu, I'm
happy to avoid and/or revert this patch.

N.B. kqemu will still function in the 0.11 series but this patch removes it from
the 0.12 series.

Paul, please Ack or Nack this patch.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd a configure switch to enable / disable all user targets. I felt compelled to...
Zachary Amsden [Thu, 30 Jul 2009 10:14:59 +0000 (00:14 -1000)]
Add a configure switch to enable / disable all user targets. I felt compelled to do it for symmetry, mostly it is useful to disable user targets when you don't want to build them.

Signed-off-by: Zachary Amsden <zamsden@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoMigration via unix sockets.
Chris Lalancette [Wed, 5 Aug 2009 15:24:29 +0000 (17:24 +0200)]
Migration via unix sockets.

Implement migration via unix sockets.  While you can fake this using
exec and netcat, this involves forking another process and is
generally not very nice.  By doing this directly in qemu, we can avoid
the copy through the external nc command.  This is useful for
implementations (such as libvirt) that want to do "secure" migration;
we pipe the data on the sending side into the unix socket, libvirt
picks it up, encrypts it, and transports it, and then on the remote
side libvirt decrypts it, dumps it to another unix socket, and
feeds it into qemu.

The implementation is straightforward and looks very similar to
migration-exec.c and migration-tcp.c

Signed-off-by: Chris Lalancette <clalance@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoRoute IOAPIC interrupts via ISA bus
Avi Kivity [Sun, 9 Aug 2009 16:44:56 +0000 (19:44 +0300)]
Route IOAPIC interrupts via ISA bus

Instead of calling the IOAPIC from the PIC, raise IOAPIC irqs via the ISA bus.
As a side effect, IOAPIC lines 16-23 are enabled.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoRoute PC irqs to ISA bus instead of i8259 directly
Avi Kivity [Sun, 9 Aug 2009 16:44:55 +0000 (19:44 +0300)]
Route PC irqs to ISA bus instead of i8259 directly

A PC has its motherboard IRQ lines connected to both the PIC and IOAPIC.
Currently, qemu routes IRQs to the PIC which then calls the IOAPIC, an
incestuous arrangement.  In order to clean this up, create a new ISA IRQ
abstraction, and have devices raise ISA IRQs (which in turn raise the i8259
IRQs as usual).

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoMakefile: fixed rule TAGS
Alexandre Bique [Fri, 7 Aug 2009 14:43:11 +0000 (15:43 +0100)]
Makefile: fixed rule TAGS

- still works if the build dir is not the src dir
- use find instead of *.c block/*.c etc...

Signed-off-by: Alexandre Bique <alexandre.bique@citrix.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoQEMU set irq0override in fw_cfg
Jes Sorensen [Thu, 6 Aug 2009 14:25:50 +0000 (16:25 +0200)]
QEMU set irq0override in fw_cfg

Hi,

After discussing the issue with Avi, Gleb and a couple others on irq,
we came to the conclusion that it is preferred to have QEMU request
features from the BIOS, rather than notifying the BIOS that it is
running on QEMU or KVM. This way memory ranges can change etc. and
an older BIOS will continue to work on newer QEMU if it receives the
info as a fw_cfg value.

This one also matches what qemu-kvm does for irq0override, except I
haven't made it configurable. I leave that as an exercise for whoever
would be interested in switching off irq0override.

Thanks,
Jes

Set irq0 override in fw_cfg, informing the BIOS that QEMU expects
override on irq0. This matches qemu-kvm, and will help sharing a
single BIOS binary.

Signed-off-by: Jes Sorensen <jes@sgi.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoSMART ATA Functionality
Brian Wheeler [Fri, 7 Aug 2009 19:33:04 +0000 (15:33 -0400)]
SMART ATA Functionality

For the lulz I implemented basic SMART functionality in ide.c.  smartctl
on linux recognizes it just fine and starting self tests with it
complete successfully.

Signed-off-by: Brian Wheeler <bdwheele@indiana.edu>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoAdd missing linefeed in error message
Stefan Weil [Sat, 8 Aug 2009 21:33:26 +0000 (23:33 +0200)]
Add missing linefeed in error message

The error message for an unknown network device given to
monitor command set_link looks better with a terminating
linefeed.

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoClean up VGA type selection; far too many variables being used to track one state...
Zachary Amsden [Thu, 30 Jul 2009 10:15:02 +0000 (00:15 -1000)]
Clean up VGA type selection; far too many variables being used to track one state leads to confusion if new variables are added.

Signed-off-by: Zachary Amsden <zamsden@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoWhen using stdio monitor and VNC display, one can set or clear a VNC password; this...
Zachary Amsden [Thu, 30 Jul 2009 10:15:01 +0000 (00:15 -1000)]
When using stdio monitor and VNC display, one can set or clear a VNC password; this should set or turn off VNC authentication as well.

Signed-off-by: Zachary Amsden <zamsden@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoDon't segfault when changing VNC password on an SDL display.
Zachary Amsden [Thu, 30 Jul 2009 10:15:00 +0000 (00:15 -1000)]
Don't segfault when changing VNC password on an SDL display.

Signed-off-by: Zachary Amsden <zamsden@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoFix detached migration with exec.
Chris Lalancette [Wed, 5 Aug 2009 15:07:35 +0000 (17:07 +0200)]
Fix detached migration with exec.

When trying to do detached migration with exec, I found that
the monitor wouldn't always return in a timely manner.  I
tracked this down to exec_start_outgoing_migration.  It
appeared we were setting the fd to NONBLOCK'ing, but in
point of fact we weren't.

This bugfix should also go onto the stable 0.10 branch

Signed-off-by: Chris Lalancette <clalance@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoDo not disable autostart for live migration
Avi Kivity [Sun, 9 Aug 2009 11:39:20 +0000 (14:39 +0300)]
Do not disable autostart for live migration

If the user does not want autostart, they can specify -S.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agomake vga screen_dump use DisplayState properly
Stefano Stabellini [Tue, 11 Aug 2009 15:18:07 +0000 (16:18 +0100)]
make vga screen_dump use DisplayState properly

Hi all,
currently the vga screen_dump code doesn't use the DisplayState
interface properly and tries to replace it temporarily while taking the
screenshot.
A better approach is to register a DisplayChangeListener, call
vga_hw_update, and finally write the ppm in the next call from dpy_update.

Testing is appreciated.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoRestore consistent formatting
malc [Mon, 24 Aug 2009 11:18:12 +0000 (15:18 +0400)]
Restore consistent formatting

Signed-off-by: malc <av1474@comtv.ru>
14 years agoes1370: Remove unused indirection of PCIES1370State and ES1370State
Juan Quintela [Mon, 24 Aug 2009 11:03:25 +0000 (13:03 +0200)]
es1370: Remove unused indirection of PCIES1370State and ES1370State

Signed-off-by: Juan Quintela <quintela@redhat.com>
14 years agoFix device name completion for 'eject'
Blue Swirl [Sun, 23 Aug 2009 20:10:28 +0000 (20:10 +0000)]
Fix device name completion for 'eject'

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoRevert my commit c00a9de060124a988bd9847c095e5836488c6f01
Andrzej Zaborowski [Sun, 23 Aug 2009 17:00:58 +0000 (19:00 +0200)]
Revert my commit c00a9de060124a988bd9847c095e5836488c6f01

was incorrect.

14 years agoFix segfault of qemu-system-arm with PXA target
Torsten Duwe [Sun, 23 Aug 2009 16:08:14 +0000 (18:08 +0200)]
Fix segfault of qemu-system-arm with PXA target

qemu-system-arm (0.10.5) segfaults when invoked with a PXA machine target,
e.g. -M tosa. The reason is fairly obvious:

Signed-off-by: Torsten Duwe <duwe@lst.de>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrzej Zaborowski <balrogg@gmail.com>
14 years agosdl.c: support 32 bpp cursors
Reimar Döffinger [Sun, 23 Aug 2009 16:03:34 +0000 (18:03 +0200)]
sdl.c: support 32 bpp cursors

Hello,
currently when a 32 bpp cursor gets defined the result is all-black in
the areas that are not transparent (you'll get a 32 bpp cursor if you
use my previous patch to allow vmware_vga to use a 32 bpp framebuffer).
This is because the switch in sdl.c lacks a 32 bpp case.
The thing I am unsure about though is which byte is the unused one and
should be skipped, the first or the last - for the black-and-white
cursors I tested it doesn't make a difference...

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Andrzej Zaborowski <balrogg@gmail.com>
14 years agoUse corect depth from DisplaySurface in vmware_vga.c
Reimar Döffinger [Sun, 23 Aug 2009 16:00:33 +0000 (18:00 +0200)]
Use corect depth from DisplaySurface in vmware_vga.c

Hello,
for what I can tell, there is no way for vmware_vga to work correctly
right now. It assumes that the framebuffer bits-per-pixel and the one
from the DisplaySurface are identical (it uses directly the VRAM from
vga.c), but it always assumes 3 bytes per pixel, which is never possible
with the current version of DisplaySurface.
Attached patch fixes that by using ds_get_bits_per_pixel.

14 years agoRemove the unnecessary and only global in musicpal.c
Andrzej Zaborowski [Sun, 23 Aug 2009 15:44:20 +0000 (17:44 +0200)]
Remove the unnecessary and only global in musicpal.c