Statistics
| Branch: | Revision:

root / hw / virtio-pci.c @ 5e22c276

History | View | Annotate | Download (36.5 kB)

# Date Author Comment
8e4a424b 01/06/2013 08:30 pm Blue Swirl

Revert "virtio-pci: replace byte swap hack"

This reverts commit 9807caccd605d09a72495637959568d690e10175.

Signed-off-by: Blue Swirl <>

9807cacc 01/06/2013 10:24 am Blue Swirl

virtio-pci: replace byte swap hack

Remove byte swaps by declaring the config space
as native endian.

Signed-off-by: Blue Swirl <>

217da7fd 01/02/2013 08:19 pm Anthony Liguori

Merge remote-tracking branch 'stefanha/block' into staging

  • stefanha/block:
    sheepdog: pass oid directly to send_pending_req()
    sheepdog: don't update inode when create_and_write fails
    block/raw-win32: Fix compiler warnings (wrong format specifiers)...
392808b4 01/02/2013 05:08 pm Stefan Hajnoczi

virtio-blk: add x-data-plane=on|off performance feature

The virtio-blk-data-plane feature is easy to integrate into
hw/virtio-blk.c. The data plane can be started and stopped similar to
vhost-net.

Users can take advantage of the virtio-blk-data-plane feature using the...

8a873ba7 01/02/2013 04:59 pm Stefan Hajnoczi

virtio-blk: restore VirtIOBlkConf->config_wce flag

Two slightly different versions of a patch to conditionally set
VIRTIO_BLK_F_CONFIG_WCE through the "config-wce" qdev property have been
applied (ea776abca and eec7f96c2). David Gibson
<> noticed that the "config-wce"...

89d62be9 12/26/2012 11:49 am Michael S. Tsirkin

virtio-pci: don't poll masked vectors

At the moment, when irqfd is in use but a vector is masked,
qemu will poll it and handle vector masks in userspace.
Since almost no one ever looks at the pending bits,
it is better to defer this until pending bits
are actually read....

bbef882c 12/26/2012 11:49 am Michael S. Tsirkin

msi: add API to get notified about pending bit poll

Update all users.

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

d2a0ccc6 12/20/2012 09:20 am Michael S. Tsirkin

virtio: make bindings typesafe

Move bindings from opaque to DeviceState.
This gives us better type safety with no performance cost.
Add macros to make future QOM work easier.

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

9c17d615 12/19/2012 09:32 am Paolo Bonzini

softmmu: move include files to include/sysemu/

Signed-off-by: Paolo Bonzini <>

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

misc: move include files to include/qemu/

Signed-off-by: Paolo Bonzini <>

7fa22f2b 12/19/2012 09:29 am Paolo Bonzini

net: do not include net.h everywhere

Signed-off-by: Paolo Bonzini <>

6f991980 12/17/2012 07:56 pm Paolo Bonzini

Merge commit '1dd3a74d2ee2d873cde0b390b536e45420b3fe05' into HEAD

Signed-off-by: Paolo Bonzini <>

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

pci: update all users to look in pci/

update all users so we can remove the makefile hack.

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

d567e62f 12/11/2012 12:04 pm David Gibson

virtio-blk: Remove duplicate property definition

For the virtio-blk device (via virtio-pci) the property "config-wce" is
defined in two places. First, it's defined from the
DEFINE_VIRTIO_BLK_FEATURES macro, second it's defined directly in
virtio-pci, just two lines above the call to that macro....

500054f1 11/16/2012 04:36 pm Anthony Liguori

virtio-rng-pci: create a default backend if none exists

This allows you to specify:

$ qemu -device virtio-rng-pci

And things will Just Work with a reasonable default.

Signed-off-by: Anthony Liguori <>

16c915ba 11/16/2012 04:36 pm Amit Shah

virtio-rng: hardware random number generator device

The Linux kernel already has a virtio-rng driver, this is the device
implementation.

When the guest asks for entropy from the virtio hwrng, it puts a buffer
in the vq. We then put entropy into that buffer, and push it back to...

904d6f58 11/16/2012 04:36 pm Anthony Liguori

virtio-rng: add rate limiting support

This adds parameters to virtio-rng-pci to allow rate limiting the entropy a
guest receives. An example command line:

$ qemu -device virtio-rng-pci,max-bytes=1024,period=1000

Would limit entropy collection to 1Kb/s....

df6db5b3 10/29/2012 12:45 pm Alexander Graf

virtio-pci: convert PIO to new memory api read/write

Signed-off-by: Alexander Graf <>

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

Rename target_phys_addr_t to hwaddr

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

b131c74a 09/09/2012 05:03 pm Jan Kiszka

kvm: Clean up irqfd API

No need to expose the fd-based interface, everyone will already be fine
with the more handy EventNotifier variant. Rename the latter to clarify
that we are still talking about irqfds here.

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

3cac001e 08/30/2012 01:46 am Michael S. Tsirkin

msix: make [un]use vectors on reset/load optional

The facility to use/unuse vectors dynamically is helpful
for virtio but little else: everyone just seems to use
vectors in their init function.

Avoid clearing msix vector use info on reset and load.
For virtio, clear it explicitly....

eec7f96c 08/17/2012 10:29 pm Stefan Hajnoczi

virtio-blk: hide VIRTIO_BLK_F_CONFIG_WCE from old machine types

QEMU has a policy of keeping a stable guest device ABI. When new guest device
features are introduced they must not change hardware info seen by existing
guests. This is important because operating systems or applications may...

614e41bc 08/09/2012 04:16 pm Peter Maydell

kvm: Decouple 'MSI routing via irqfds' from 'kernel irqchip'

Decouple another x86-specific assumption about what irqchips imply.

Signed-off-by: Peter Maydell <>
Signed-off-by: Avi Kivity <>

26b9b5fe 08/06/2012 10:01 pm Paolo Bonzini

virtio: fix vhost handling

Commit b1f416aa8d870fab71030abc9401cfc77b948e8e breaks vhost_net
because it always registers the virtio_pci_host_notifier_read() handler
function on the ioeventfd, even when vhost_net.ko is using the ioeventfd.
The result is both QEMU and vhost_net.ko polling on the same eventfd...

5e3bc714 07/30/2012 06:00 pm Anthony Liguori

Merge remote-tracking branch 'mst/tags/for_anthony' into staging

  • mst/tags/for_anthony:
    msi/msix: added API to set MSI message address and data
    pci: Add INTx routing notifier
    pci: Add pci_device_route_intx_to_irq
    pci: Unregister BARs before device exit...
5e59b024 07/29/2012 05:05 pm Michael S. Tsirkin

Merge branch pci into master

Merge master and pci branch, resolve build breakage in hw/esp.c
introduced by f90c2bcd.

Conflicts:
hw/esp.c

4c205d0c 07/27/2012 04:47 pm Paolo Bonzini

virtio-scsi: enable MSI-X support

While virtio-scsi does support multiqueue, the default number of
interrupt vectors is not enough to actually enable usage of
multiple queues in the driver; this is because with only 2
vectors the driver will not be able to use a separate...

3f910904 07/27/2012 03:36 pm Paolo Bonzini

virtio-scsi: add ioeventfd support

Probably due to bad merge months ago, virtio-scsi-pci did not have
ioeventfd support. Fix this and enable it by default, as is the
case for other virtio-pci devices.

Signed-off-by: Paolo Bonzini <>

dfe1ce5d 07/18/2012 10:44 pm Anthony Liguori

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

  • kwolf/for-anthony: (41 commits)
    fdc-test: Clean up a bit
    fdc-test: introduce test_relative_seek
    fdc: fix relative seek
    qemu-iotests: Valgrind support
    coroutine-ucontext: Help valgrind understand coroutines...
e63e7fde 07/17/2012 05:48 pm Markus Armbruster

virtio-blk: qdev properties for disk geometry

Geometry needs to be qdev properties, because it belongs to the
disk's guest part.

Maintain backward compatibility exactly like for serial: fall back to
DriveInfo's geometry, set with -drive cyls=...

Bonus: info qtree now shows the geometry....

b1f416aa 07/12/2012 02:08 pm Paolo Bonzini

virtio: move common ioeventfd handling out of virtio-pci

All transports can use the same event handler for the ioeventfd, though
the exact setup (address/memory region) will be specific.

This lets virtio use event_notifier_set_handler.

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

15b2bd18 07/12/2012 02:08 pm Paolo Bonzini

virtio: move common irqfd handling out of virtio-pci

All transports can use the same event handler for the irqfd, though the
exact mechanics of the assignment will be specific. Note that there
are three states: handled by the kernel, handled in userspace, disabled....

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

memory: pass EventNotifier, not eventfd

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

f90c2bcd 07/04/2012 03:52 pm Alex Williamson

pci: convert PCIUnregisterFunc to void

Not a single driver has any possibility of failure on their
exit function, let's keep it that way.

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

b2357c48 06/18/2012 10:21 am Alex Williamson

virtio: Convert to msix_init_exclusive_bar() interface

Simple conversion.

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

cbd2d434 06/07/2012 05:19 pm Jan Kiszka

msi: Invoke msi/msix_reset from PCI core

There is no point in pushing this burden to the devices, they tend to
forget to call them (like intel-hda, ahci, xhci did). Instead, reset
functions are now called from pci_device_reset. They do nothing if
MSI/MSI-X is not in use....

95d65800 06/07/2012 05:19 pm Jan Kiszka

msi: Invoke msi/msix_write_config from PCI core

Also this functions is better invoked by the core than by each and every
device. This allows to drop the config_write callbacks from ich and
intel-hda.

CC: Alexander Graf <>
CC: Gerd Hoffmann <>...

74f4d227 06/03/2012 02:56 am Anthony Liguori

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

  • qemu-kvm/uq/master:
    virtio/vhost: Add support for KVM in-kernel MSI injection
    msix: Add msix_nr_vectors_allocated
    kvm: Enable use of kvm_irqchip_in_kernel in hwlib code
    kvm: Introduce kvm_irqchip_add/remove_irqfd...
0e47931b 05/21/2012 11:40 pm Paolo Bonzini

virtio-blk: blockdev_mark_auto_del is transport-independent

Move it from virtio_blk_exit_pci to virtio_blk_exit.

This is included here because the next patch removes proxy->block.

Signed-off-by: Paolo Bonzini <>
Signed-off-by: Anthony Liguori <>

12c5674b 05/21/2012 11:40 pm Paolo Bonzini

virtio-blk: define VirtIOBlkConf

We will have to add another field to the virtio-blk configuration in
the next patch. Avoid a proliferation of arguments to virtio_blk_init.

Signed-off-by: Paolo Bonzini <>
Signed-off-by: Anthony Liguori <>

a6c5c84a 05/21/2012 11:40 pm Paolo Bonzini

virtio-blk: always enable VIRTIO_BLK_F_SCSI

VIRTIO_BLK_F_SCSI is supposed to mean whether the host can parse
SCSI requests, not execute them. You could run QEMU with scsi=on
and a file-backed disk, and QEMU would fail all SCSI requests even
though it advertises VIRTIO_BLK_F_SCSI....

7d37d351 05/21/2012 07:22 pm Jan Kiszka

virtio/vhost: Add support for KVM in-kernel MSI injection

Make use of the new vector notifier to track changes of the MSI-X
configuration of virtio PCI devices. On enabling events, we establish
the required virtual IRQ to MSI-X message route and link the signaling...

4636b9d1 05/19/2012 06:41 pm Blue Swirl

virtio-pci: add missing 'static'

There are no outside references to virtio_portio.
Add missing 'static' specifier.

Reviewed-by: Stefan Weil <>
Signed-off-by: Blue Swirl <>

2ba1d381 04/11/2012 01:24 pm David Gibson

virtio-pci: change virtio balloon PCI class code

Currently the virtio balloon device, when using the virtio-pci interface
advertises itself with PCI class code MEMORY_RAM. This is wrong; the
balloon is vaguely related to memory, but is nothing like a PCI memory...

973abc7f 02/22/2012 02:39 pm Stefan Hajnoczi

virtio-scsi: Add virtio-scsi stub device

Add a useless virtio SCSI HBA device:

qemu -device virtio-scsi-pci

Signed-off-by: Stefan Hajnoczi <>
Reviewed-by: Stefan Hajnoczi <>
Signed-off-by: Paolo Bonzini <>

83f7d43a 02/15/2012 05:39 pm Andreas Färber

qom: Unify type registration

Replace device_init() with generalized type_init().

While at it, unify naming convention: type_init([$prefix_]register_types)
Also, type_init() is a function, so add preceding blank line where
necessary and don't put a semicolon after the closing brace....

6acbe4c6 02/03/2012 06:41 pm Anthony Liguori

qdev: remove baked in notion of aliases (v2)

Limit them to the device_add functionality. Device aliases were a hack based
on the fact that virtio was modeled the wrong way. The mechanism for aliasing
is very limited in that only one alias can exist for any device....

39bffca2 02/03/2012 06:41 pm Anthony Liguori

qdev: register all types natively through QEMU Object Model

This was done in a mostly automated fashion. I did it in three steps and then
rebased it into a single step which avoids repeatedly touching every file in
the tree.

The first step was a sed-based addition of the parent type to the subclass...

40021f08 01/27/2012 06:50 pm Anthony Liguori

pci: convert to QEMU Object Model

Signed-off-by: Anthony Liguori <>

e855761c 01/27/2012 06:50 pm Anthony Liguori

qdev: prepare source tree for code conversion

These are various small stylistic changes which help make things more
consistent such that the automated conversion script can be simpler.

It's not necessary to agree or disagree with these style changes because all...

82afa586 01/21/2012 06:17 am Benjamin Herrenschmidt

virtio-pci: Fix endianness of virtio config

The virtio config area in PIO space is a bit special. The initial
header is little endian but the rest (device specific) is guest
native endian.

The PIO accessors for PCI on machines that don't have native IO ports...

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

prepare for future GPLv2+ relicensing

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

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

ad3d11e6 12/09/2011 01:25 pm Hui Kai Ran

virtio-pci: use pci macros

Signed-off-by: Hui Kai Ran <>
Signed-off-by: Stefan Hajnoczi <>

8798d6c9 12/04/2011 07:05 pm Aneesh Kumar K.V

hw/9pfs: Add qdev.reset callback for virtio-9p-pci device

Add the device reset callback

Signed-off-by: Aneesh Kumar K.V <>

ad0c9332 11/28/2011 07:36 pm Paolo Bonzini

virtio: add and use virtio_set_features

vdev->guest_features is not masking features that are not supported by
the guest. Fix this by introducing a common wrapper to be used by all
virtio bus implementations.

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

b0eb8449 11/02/2011 02:32 am Anthony Liguori

Revert "virtio: Add PCI memory BAR in addition to PIO BAR"

This reverts commit 46d95bfec7f9429d5228078219413d7e33496d65.

46d95bfe 11/01/2011 11:52 pm David Gibson

virtio: Add PCI memory BAR in addition to PIO BAR

Currently, virtio devices are usually presented to the guest as an
emulated PCI device, virtio_pci. Although the actual IO operations
are done through system memory, the configuration of the virtio device...

5745e38a 10/12/2011 04:41 pm Aneesh Kumar K.V

hw/9pfs: Use ioeventfd for 9p

With ioeventfd:
[root@qemu-img-64 storage]# dd if=/dev/zero of=/storage/testx bs=8k count=131072 oflag=direct
131072+0 records in
131072+0 records out
1073741824 bytes (1.1 GB) copied, 26.767 s, 40.1 MB/s

Without:
[root@qemu-img-64 storage]# dd if=/dev/zero of=/storage/testx bs=8k count=131072 oflag=direct...

95524ae8 08/08/2011 06:22 pm Avi Kivity

msix: convert to memory API

The msix table is defined as a subregion, to allow for a BAR that
mixes device specific regions with the msix table.

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

e824b2cc 08/08/2011 06:22 pm Avi Kivity

pci: rename pci_register_bar_region() to pci_register_bar()

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

da146d0a 08/08/2011 06:22 pm Avi Kivity

virtio-pci: convert to memory API

except msix.

[jan: fix build]
[aliguori: fix build]

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

81e34a24 08/05/2011 01:15 am Anthony Liguori

Merge remote-tracking branch 'mst/for_anthony' into staging

855d7e25 08/05/2011 12:43 am Amit Shah

virtio-balloon: Add exit handler, fix memleaks

Add an exit handler that will free up RAM after a virtio-balloon device
is unplugged.

Signed-off-by: Amit Shah <>
Reviewed-by: Markus Armbruster <>
Acked-by: Michael S. Tsirkin <>

f76f6655 08/05/2011 12:43 am Amit Shah

virtio-balloon: Check if balloon registration failed

Multiple balloon registrations are not allowed; check if the
registration with the qemu balloon api succeeded. If not, fail the
device init.

Signed-off-by: Amit Shah <>
Reviewed-by: Markus Armbruster <>...

1129714f 07/27/2011 08:08 pm Michael S. Tsirkin

virtio-pci: use generic logic for command access

In practice, guests don't generate config requests
that cross a word boundary, so the logic to
detect command word access is correct because
PCI_COMMAND is 0x4. But depending on this is
tricky, further, it will break with guests...

a8686a9b 07/05/2011 12:23 pm Markus Armbruster

virtio-blk: Turn drive serial into a qdev property

It needs to be a qdev property, because it belongs to the drive's
guest part. Precedence: commit a0fef654 and 6ced55a5.

Bonus: info qtree now shows the serial number.

Signed-off-by: Markus Armbruster <>...

befeac45 06/15/2011 06:27 pm Michael S. Tsirkin

Merge remote-tracking branch 'origin/master' into pci

Conflicts:
hw/virtio-pci.c

e75ccf2c 06/12/2011 10:33 am Isaku Yamahata

virtio-pci.c: convert to PCIDEviceInfo to initialize ids

use PCIDeviceInfo to initialize ids.

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

7157e2e2 06/12/2011 10:33 am Stefan Hajnoczi

virtio: guard against negative vq notifies

The virtio_queue_notify() function checks that the virtqueue number is
less than the maximum number of virtqueues. A signed comparison is used
but the virtqueue number could be negative if a buggy or malicious guest...

9fe1ebeb 06/01/2011 08:23 pm Aneesh Kumar K.V

virtio-9p: Move 9p device registration into virtio-9p.c

This patch move the 9p device registration into its own file

Signed-off-by: Aneesh Kumar K.V <>
Signed-off-by: Venkateswararao Jujjuri (JV) <>

5ee8ad71 04/18/2011 08:46 pm Alex Williamson

PXE: Use consistent naming for PXE ROMs

And add missing ROMs to tarbin build target.

Signed-off-by: Alex Williamson <>

29f82b37 04/04/2011 01:34 am Alexander Graf

virtio: use generic name when possible

We have two different virtio buses: pci and s390. The abstraction path
taken in qemu is to have generic aliases for each device type in the
architecture specific qdev devices.

So let's make use of these aliases whenever we can and define them...

89c473fd 03/28/2011 07:34 pm Michael S. Tsirkin

virtio-pci: fix bus master work around on load

Commit c81131db15dd1844d0db1d51f3cd7a105cfd2cf3
detects old guests by comparing virtio and
PCI status. It attempts to do this on load,
as well, but load_config callback in a binding
is invoked too early and so the virtio status...

32059220 03/21/2011 01:25 pm Amit Shah

virtio-serial: Enable ioeventfd

Enable ioeventfd for virtio-serial devices by default. Commit
25db9ebe15125deb32958c6df74996f745edf1f9 lists the benefits of using
ioeventfd.

Copying a file from guest to host over a virtio-serial channel didn't
show much difference in time or io_exit rate....

6b331efb 03/21/2011 01:25 pm Amit Shah

virtio-serial: Use a struct to pass config information from proxy

Instead of using a single variable to pass to the virtio_serial_init
function, use a struct so that expanding the number of variables to be
passed on later is easier.

Signed-off-by: Amit Shah <>

5430a28f 02/02/2011 12:50 am mst@redhat.com

vhost: force vhost off for non-MSI guests

When MSI is off, each interrupt needs to be bounced through the io
thread when it's set/cleared, so vhost-net causes more context switches and
higher CPU utilization than userspace virtio which handles networking in...

b36e3914 01/11/2011 05:47 pm Michael S. Tsirkin

ioeventfd: error handling cleanup

- Don't return status from start/stop functions where it's ignored
- report errors to make debugging easier
- assert on unexpected failures
- don't disable notifiers on error so that we'll
retry when guest driver restarts...

25db9ebe 01/10/2011 02:44 pm Stefan Hajnoczi

virtio-pci: Use ioeventfd for virtqueue notify

Virtqueue notify is currently handled synchronously in userspace virtio. This
prevents the vcpu from executing guest code while hardware emulation code
handles the notify.

On systems that support KVM, the ioeventfd mechanism can be used to make...

3dbca8e6 01/10/2011 01:47 pm Stefan Hajnoczi

virtio-pci: Rename bugs field to flags

The VirtIOPCIProxy bugs field is currently used to enable workarounds
for older guests. Rename it to flags so that other per-device behavior
can be tracked.

A later patch uses the flags field to remember whether ioeventfd should...

779206de 12/11/2010 11:27 pm Gleb Natapov

Introduce fw_name field to DeviceInfo structure.

Add "fw_name" to DeviceInfo to use in device path building. In
contrast to "name" "fw_name" should refer to functionality device
provides instead of particular device model like "name" does.

Signed-off-by: Gleb Natapov <>...

4e02d460 11/21/2010 05:16 pm Stefan Hajnoczi

virtio-pci: Convert fprintf() to error_report()

Signed-off-by: Stefan Hajnoczi <>
Signed-off-by: Anthony Liguori <>

9dbcca5a 11/21/2010 05:16 pm Gerd Hoffmann

virtfs: enable MSI-X

This patch enables MSI-X for virtfs-9p-pci. It also adds a
compat property to pc-0.13 which turns it of there to stay
compatible to 0.13-stable.

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

54dd9321 10/07/2010 01:19 pm Michael S. Tsirkin

virtio: change set guest notifier to per-device

When using irqfd with vhost-net to inject interrupts,
a single evenfd might inject multiple interrupts.
Implementing this is much easier with a single
per-device callback to set guest notifiers.

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

a697a334 09/07/2010 08:29 pm Alex Williamson

virtio-net: Introduce a new bottom half packet TX

Based on a patch from Mark McLoughlin, this patch introduces a new
bottom half packet transmitter that avoids the latency imposed by
the tx_timer approach. Rather than scheduling a timer when a TX
packet comes in, schedule a bottom half to be run from the iothread....

e3f30488 09/07/2010 08:29 pm Alex Williamson

virtio-net: Limit number of packets sent per TX flush

If virtio_net_flush_tx() is called with notification disabled, we can
race with the guest, processing packets at the same rate as they
get produced. The trouble is that this means we have no guaranteed...

f0c07c7c 09/07/2010 08:29 pm Alex Williamson

virtio-net: Make tx_timer timeout configurable

Add an option to make the TX mitigation timer adjustable as a device
option. The 150us hard coded default used currently is reasonable,
but may not be suitable for all workloads, this gives us a way to
adjust it using a single binary. We can't support any random option...

2446333c 08/24/2010 06:22 pm Blue Swirl

Rearrange block headers

Changing block.h or blockdev.h resulted in recompiling most objects.

Move DriveInfo typedef and BlockInterfaceType enum definitions
to qemu-common.h and rearrange blockdev.h use to decrease churn.

Signed-off-by: Blue Swirl <>

8b53a865 08/23/2010 12:19 am Amit Shah

virtio-serial: Cleanup on device hot-unplug

Free malloc'ed memory, unregister from savevm and clean up virtio-common
bits on device hot-unplug.

This was found performing a migration after device hot-unplug.

Reported-by: <>
Signed-off-by: Amit Shah <>...

9d0d3138 07/26/2010 02:39 pm Alex Williamson

virtio-blk: Create exit function to unregister savevm

Otherwise we can't migrate after we've removed a virtio block device.

Signed-off-by: Alex Williamson <>
Signed-off-by: Kevin Wolf <>

ac0c14d7 07/13/2010 06:48 pm Markus Armbruster

virtio-pci: Check for virtio_blk_init() failure

It can't actually fail now, but the next commit will change that.

s390_virtio_blk_init() already checks for failure, but
virtio_blk_init_pci() doesn't. Fix that.

Signed-off-by: Markus Armbruster <>...

d75d25e3 07/13/2010 06:48 pm Markus Armbruster

virtio-blk: Fix virtio-blk-s390 to require drive

Move the check from virtio_blk_init_pci(), where it protects only
virtio-blk-pci, to virtio_blk_init(). Without that, virtio-blk-s390
initializes without a drive. I figure that can lead to null pointer
dereferences....

b80d4a98 07/11/2010 08:00 pm Isaku Yamahata

pci: don't overwrite multi functio bit in pci header type.

Don't overwrite pci header type.
Otherwise, multi function bit which pci_init_header_type() sets
appropriately is lost.
Anyway PCI_HEADER_TYPE_NORMAL is zero, so it is unnecessary to zero
which is already zero cleared....

f8b6cc00 07/02/2010 02:18 pm Markus Armbruster

qdev: Decouple qdev_prop_drive from DriveInfo

Make the property point to BlockDriverState, cutting out the DriveInfo
middleman. This prepares the ground for block devices that don't have
a DriveInfo.

Currently all user-defined ones have a DriveInfo, because the only way...

14bafc54 07/02/2010 02:18 pm Markus Armbruster

blockdev: Clean up automatic drive deletion

We automatically delete blockdev host parts on unplug of the guest
device. Too much magic, but we can't change that now.

The delete happens early in the guest device teardown, before the
connection to the host part is severed. Thus, the guest part's...

8a911107 06/22/2010 11:15 pm Alex Williamson

virtio-pci: fix bus master bug setting on load

The comment suggests we're checking for the driver in the ready
state and bus master disabled, but the code is checking that it's
not in the ready state.

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

758e8e38 06/22/2010 11:15 pm Venkateswararao Jujjuri (JV)

virtio-9p: Make infrastructure for the new security model.

This patch adds required infrastructure for the new security model.

- A new configure option for attr/xattr.
- if CONFIG_VIRTFS will be defined if both CONFIG_LINUX and CONFIG_ATTR defined.
- Defines routines related to both security models....

666daa68 06/04/2010 04:20 pm Markus Armbruster

blockdev: Collect block device code in new blockdev.c

Anything that moves hundreds of lines out of vl.c can't be all bad.

Signed-off-by: Markus Armbruster <>
Signed-off-by: Kevin Wolf <>

9f107513 05/03/2010 08:17 pm Anthony Liguori

virtio-9p: Add a virtio 9p device to qemu

This patch doesn't implement the 9p protocol handling
code. It adds a simple device which dump the protocol data.

[: Little-Endian to host format conversion]
[: Multiple-mounts support]...

3e607cb5 04/01/2010 09:56 pm Michael S. Tsirkin

virtio: add set_status callback

vhost net backend needs to be notified when
frontend status changes. Add a callback,
similar to set_features.

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

ade80dc8 04/01/2010 09:56 pm Michael S. Tsirkin

virtio-pci: fill in notifier support

Support host/guest notifiers in virtio-pci.
The last one only with kvm, that's okay
because vhost relies on kvm anyway.

Note on kvm usage: kvm ioeventfd API
is implemented on non-kvm systems as well,
this is the reason we don't need if (kvm_enabled())...