History log of /dragonfly/sys/dev/virtual/virtio/block/virtio_blk.c (Results 1 – 25 of 27)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
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).


12