Revision tags: v6.2.1, v6.2.0, v6.3.0, v6.0.1, v6.0.0, v6.0.0rc1, v6.1.0, v5.8.3, v5.8.2, v5.8.1, v5.8.0, v5.9.0, v5.8.0rc1, v5.6.3, v5.6.2, v5.6.1, v5.6.0, v5.6.0rc1, v5.7.0, v5.4.3, v5.4.2, v5.4.1, v5.4.0, v5.5.0, v5.4.0rc1 |
|
#
7f5940c5 |
| 23-Sep-2018 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Fix serious bug in virtio
* virtio_blk.c was destroy the buffer cache base global in vtblk_write_dump().
Located-by: gcc8, bcopy -> memcpy inline optimization complained.
|
Revision tags: v5.2.2, v5.2.1, v5.2.0, v5.3.0, v5.2.0rc |
|
#
099c4d8e |
| 22-Mar-2018 |
Imre Vadász <imre@vdsz.com> |
virtio - Get rid of unused flags option in virtio_alloc_virtqueues().
|
#
6ea187fd |
| 24-Mar-2018 |
Imre Vadász <imre@vdsz.com> |
virtio - Explicitly teardown interrupts in driver detach methods.
* This seems to be an easy way to avoid potential races during driver detachements.
|
Revision tags: v5.0.2, v5.0.1, v5.0.0, v5.0.0rc2, v5.1.0, v5.0.0rc1 |
|
#
f852cf82 |
| 13-Sep-2017 |
Imre Vadász <imre@vdsz.com> |
virtio - Move virtqueue_pending() checks into the child driver.
* This makes it easier for now, to deal with virtqueue locking, when multiple virtqueues are mapped to a single interrupt vector.
|
#
b817dce2 |
| 12-Sep-2017 |
Imre Vadász <imre@vdsz.com> |
virtio - Get rid of config_change devmethod, treat like vq interrupts.
|
#
9d96478c |
| 11-Sep-2017 |
Imre Vadász <imre@vdsz.com> |
virtio - Specify handler and argument in bind_intr, instead of vq alloc.
|
#
2f2405bb |
| 07-Sep-2017 |
Imre Vadász <imre@vdsz.com> |
virtio - Refactor virtio bus API, to untangle virtuques from IRQ allocation.
* These API changes allow each virtio device driver to explicitly control the assignment of virtqueues to IRQ vectors.
virtio - Refactor virtio bus API, to untangle virtuques from IRQ allocation.
* These API changes allow each virtio device driver to explicitly control the assignment of virtqueues to IRQ vectors.
* This allows explicitly assigning IRQ vectors to cpus. And virtio device drivers also get to know, on which cpu each virtqueue interrupt is running.
show more ...
|
Revision tags: v4.8.1, v4.8.0, v4.6.2, v4.9.0, v4.8.0rc |
|
#
2cc8f29f |
| 11-Mar-2017 |
Imre Vadász <imre@vdsz.com> |
virtio_blk - Inline vtblk_complete into vtblk_vq_intr. Dedup sglist_reset.
|
#
4846c104 |
| 16-Oct-2017 |
Imre Vadász <imre@vdsz.com> |
virtio_blk - Fix capacity calculation, when host sets large disk block size.
* The disk capacity in the virtio configuration space is always specified in 512 byte sectors, so info.d_media_blksize
virtio_blk - Fix capacity calculation, when host sets large disk block size.
* The disk capacity in the virtio configuration space is always specified in 512 byte sectors, so info.d_media_blksize should be 512.
* Also check for VIRTIO_BLK_F_GEOMETRY feature before reading the disk geometry from configuration space.
* Add some device_printf calls to report the disk size and (if available) geometry during bootup.
show more ...
|
#
9170a3fe |
| 02-Apr-2017 |
Imre Vadász <imre@vdsz.com> |
virtio_blk - No need to negotiate unused (and legacy) VIRTIO_BLK_F_BARRIER.
|
#
233b3ffb |
| 18-Feb-2017 |
Imre Vadász <imre@vdsz.com> |
virtio_blk - Clean up some unneeded functionalities.
* Get rid of remaining code for handling the B_ORDERED flag. B_ORDERED doesn't even exist anymore in DragonFly.
* Get rid of sc->vtblk_req_rea
virtio_blk - Clean up some unneeded functionalities.
* Get rid of remaining code for handling the B_ORDERED flag. B_ORDERED doesn't even exist anymore in DragonFly.
* Get rid of sc->vtblk_req_ready request list. We can just use bioqdisksort() to add a request - that we failed to enqueue ino the virtqueue - back into the bioq.
* Rename req->vbr_bp field to req->vbr_bio.
* Switch vtblk_req_free list from TAILQ to SLIST. A small optimization, none of the additional features of the TAILQ are needed here.
show more ...
|
#
06ea426b |
| 11-Mar-2017 |
Imre Vadász <imre@vdsz.com> |
virtio - Get rid of nop {vtblk/vtnet}_modevent methods.
|
#
c8247d06 |
| 08-Feb-2017 |
Imre Vadász <imre@vdsz.com> |
virtio: Fix and activate PCI MSI-X support.
* Change pci_msi_blacklisted() test to always assume working MSI and MSI-X interrupts on virtual-machines. We should assume that a hypervisor without
virtio: Fix and activate PCI MSI-X support.
* Change pci_msi_blacklisted() test to always assume working MSI and MSI-X interrupts on virtual-machines. We should assume that a hypervisor without MSI or MSI-X support shouldn't even indicate supported MSI(-X) via the PCI config space.
* Move vtblk_alloc_disk() to the end of virtio_blk's attach method. This avoids a race between irq enabling in virtio, and the disk probing.
* Fix allocation and teardown of MSI-X interrupts.
* Get rid of rather confusing VIRTIO_PCI_FLAG_NO_MSI and VIRTIO_PCI_FLAG_NO_MSIX flags. The VIRTIO_PCI_FLAG_NO_MSI is unneeded when using pci_alloc_1intr() for MSI allocation, and instead of VIRTIO_PCI_FLAG_NO_MSIX we can just check sc->vtpci_msix_res.
* For now, MSI-X vectors are simply assigned to subsequent cores (plus adding the device_get_unit() value to shuffle things a bit), i.e.: (device_get_unit(dev) + cnt) % ncpus
* For the if_vtnet network driver this means that the rx and tx queues run on different cores, but both queues still use the same serializer for now.
* One major advantages in using MSI-X interrupts instead of the legacy IRQ is, that this avoids interrupt sharing in many virtual-machine configurations.
* Tested on qemu with TCG (unaccelerated emulation) and 1 core, and with KVM acceleration and 2 cores, with both virtio network and disk devices.
show more ...
|
#
0c4341b9 |
| 09-Jan-2017 |
Matthew Dillon <dillon@apollo.backplane.com> |
buf - Remove B_ORDERED, Incidental CAM MPSAFE
* Remove support for B_ORDERED. Most drivers ignore it, and it is basically unusable.
* The CAM "xpt", "pass", and "sg" devices are MPSAFE, flag the
buf - Remove B_ORDERED, Incidental CAM MPSAFE
* Remove support for B_ORDERED. Most drivers ignore it, and it is basically unusable.
* The CAM "xpt", "pass", and "sg" devices are MPSAFE, flag them appropriately.
show more ...
|
Revision tags: v4.6.1, v4.6.0, v4.6.0rc2, v4.6.0rc, v4.7.0 |
|
#
6375454f |
| 28-May-2016 |
Matthew Dillon <dillon@apollo.backplane.com> |
virtio - vtblk_finish_bio() called with serializer held
* vtblk_finish_bio() was being improperly called with the serializer held in the strategy error path.
* Note that biodone() is properly cal
virtio - vtblk_finish_bio() called with serializer held
* vtblk_finish_bio() was being improperly called with the serializer held in the strategy error path.
* Note that biodone() is properly called without the serializer held in the normal completion path.
show more ...
|
#
eb55c32f |
| 28-May-2016 |
Matthew Dillon <dillon@apollo.backplane.com> |
virtio - Fix a few porting issues and bugs
* vtblk_maximum_segments() was really buggy. It was adding the base min segments to blkcfg->seg_max, miscalculating values for the case where the F_SE
virtio - Fix a few porting issues and bugs
* vtblk_maximum_segments() was really buggy. It was adding the base min segments to blkcfg->seg_max, miscalculating values for the case where the F_SEG_MAX feature is not in the feature list.
This could result in virtio imploding on a too-small sglist.
* Fix situations where M_NOWAIT is improperly used.
* At least use 16-byte alignment for contigmalloc()'s.
show more ...
|
Revision tags: v4.4.3, v4.4.2, v4.4.1, v4.4.0, v4.5.0, v4.4.0rc |
|
#
b5a81216 |
| 31-Oct-2015 |
Imre Vadász <imre@vdsz.com> |
virtio_blk: Add support for indirect buffers.
Taken-From: FreeBSD
|
#
f9d3f193 |
| 13-Dec-2015 |
Imre Vadasz <imre@vdsz.com> |
virtio_blk: Use contigmalloc/contigfree for vtblk_request allocations.
This should fix the "panic: header spanned multiple segments: 2" panic occuring for some users when running in qemu.
Reported-
virtio_blk: Use contigmalloc/contigfree for vtblk_request allocations.
This should fix the "panic: header spanned multiple segments: 2" panic occuring for some users when running in qemu.
Reported-By: Jim B.
show more ...
|
Revision tags: v4.2.4, v4.3.1, v4.2.3, v4.2.1, v4.2.0, v4.0.6, v4.3.0, v4.2.0rc, v4.0.5, v4.0.4, v4.0.3, v4.0.2, v4.0.1 |
|
#
58db6936 |
| 22-Nov-2014 |
Imre Vadasz <imre@vdsz.com> |
virtio_blk: Enable dump support. Partial sync with FreeBSD up to r252707.
* Adds support for dumping to the virtio_blk driver.
* The dev.vtblk.X.writecache_mode sysctl can now be used to toggle wri
virtio_blk: Enable dump support. Partial sync with FreeBSD up to r252707.
* Adds support for dumping to the virtio_blk driver.
* The dev.vtblk.X.writecache_mode sysctl can now be used to toggle write caching by the virtual-machine host.
* Add a workaround in sys/dev/virtual/virtio/virtio/virtqueue.c to avoid a serializer exit/enter pair while dumping.
* Reduce diff relative to FreeBSD's virtio_blk.c version.
* Adapt manpage, comment out description of the hw.vtblk.no_ident tunable.
* Updates are taken from FreeBSD's r252707, r252703 and r247829.
show more ...
|
Revision tags: v4.0.0, v4.0.0rc3, v4.0.0rc2, v4.0.0rc, v4.1.0, v3.8.2, v3.8.1, v3.6.3, v3.8.0, v3.8.0rc2, v3.9.0, v3.8.0rc, v3.6.2, v3.6.1, v3.6.0, v3.7.1, v3.6.0rc, v3.7.0, v3.4.3, v3.4.2, v3.4.0, v3.4.1, v3.4.0rc, v3.5.0 |
|
#
d3c9c58e |
| 20-Feb-2013 |
Sascha Wildner <saw@online.de> |
kernel: Use DEVMETHOD_END in the drivers.
|
#
bb99a6fc |
| 08-Feb-2013 |
Sascha Wildner <saw@online.de> |
kernel/virtio: Remove some unneeded inclusions of <sys/cdefs.h>.
|
#
26934431 |
| 08-Feb-2013 |
Sascha Wildner <saw@online.de> |
kernel/virtio: Remove some unused variables.
|
#
2f1382ca |
| 19-Jan-2013 |
Venkatesh Srinivas <me@endeavour.zapto.org> |
kernel -- virtio: Implement virtio-layer lwkt_serializer for devices
* Switch virtio device targets (currently only -blk) to use a serializer for synchronizing per-target state. Thread the seria
kernel -- virtio: Implement virtio-layer lwkt_serializer for devices
* Switch virtio device targets (currently only -blk) to use a serializer for synchronizing per-target state. Thread the serializer through virtqueue_notify (release around kick) and into the bus interrupt setup code.
* Remove dump support from virtio-blk for now; it doesn't work and results in further panics from an incorrectly setup bio.
* Other cleanups of virtio-blk (de-indirect locks).
show more ...
|
#
dcbcbc86 |
| 05-Jan-2013 |
Venkatesh Srinivas <vsrinivas@ops101.org> |
Build fixes.
|
#
9aa0ab36 |
| 02-Jan-2013 |
Sascha Wildner <saw@online.de> |
kernel/virtio: Some cleanup (Makefiles and gcc47 warnings).
|