|
Revision tags: release/13.4.0-p5, release/13.5.0-p1, release/14.2.0-p3, release/13.5.0, release/14.2.0-p2, release/14.1.0-p8, release/13.4.0-p4, release/14.1.0-p7, release/14.2.0-p1, release/13.4.0-p3, release/14.2.0, release/13.4.0, release/14.1.0, release/13.3.0, release/14.0.0 |
|
| #
685dc743 |
| 16-Aug-2023 |
Warner Losh <[email protected]> |
sys: Remove $FreeBSD$: one-line .c pattern
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
| #
4d846d26 |
| 10-May-2023 |
Warner Losh <[email protected]> |
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD
The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD
The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of BSD-2-Clause.
Discussed with: pfg MFC After: 3 days Sponsored by: Netflix
show more ...
|
|
Revision tags: release/13.2.0, release/12.4.0, release/13.1.0, release/12.3.0 |
|
| #
fd80208a |
| 27-Aug-2021 |
Stephen J. Kiernan <[email protected]> |
Add SDT probes virtqueue::enqueue_segments:{entry,return}
This allows one to be able to map the sglist entries passed into the vq_ring_enqueue_segments() function to the segment indexes used in the
Add SDT probes virtqueue::enqueue_segments:{entry,return}
This allows one to be able to map the sglist entries passed into the vq_ring_enqueue_segments() function to the segment indexes used in the virtqueue.
This function normally gets inlined and may not available via FBT probes.
Differential Revision: https://reviews.freebsd.org/D31620
show more ...
|
|
Revision tags: release/13.0.0 |
|
| #
fbe0c4f4 |
| 19-Jan-2021 |
Bryan Venteicher <[email protected]> |
virtio: Add modern (v1) virtqueue support
This only supports the legacy virtqueue format that is now called "Split Virtqueues". Support for the new "Packed Virtqueues" described in v1.1 is left for
virtio: Add modern (v1) virtqueue support
This only supports the legacy virtqueue format that is now called "Split Virtqueues". Support for the new "Packed Virtqueues" described in v1.1 is left for a later date.
Reviewed by: grehan (mentor) Differential Revision: https://reviews.freebsd.org/D27857
show more ...
|
| #
9da9560c |
| 19-Jan-2021 |
Bryan Venteicher <[email protected]> |
virtio: Add VirtIO PCI modern (V1) support
Use the existing legacy PCI driver as the basis for shared code between the legacy and modern PCI drivers. The existing virtio_pci kernel module will conta
virtio: Add VirtIO PCI modern (V1) support
Use the existing legacy PCI driver as the basis for shared code between the legacy and modern PCI drivers. The existing virtio_pci kernel module will contain both the legacy and modern drivers.
Changes to the virtqueue and each device driver (network, block, etc) for V1 support come in later commits.
Update the MMIO driver to reflect the VirtIO bus method changes, but the modern compliance can be improved on later.
Note that the modern PCI driver requires bus_map_resource() to be implemented, which is not the case on all archs.
The hw.virtio.pci.transitional tunable default value is zero so transitional devices will continue to be driven via the legacy driver.
Reviewed by: grehan (mentor) Differential Revision: https://reviews.freebsd.org/D27856
show more ...
|
| #
1cd1ed3f |
| 19-Jan-2021 |
Bryan Venteicher <[email protected]> |
Revert: virtio: Support non-legacy network device and queue
And subsequent fix 576b099a.
By adding the mergable header to the vtnet_rx_header structure, the size was increased by 2 bytes, breaking
Revert: virtio: Support non-legacy network device and queue
And subsequent fix 576b099a.
By adding the mergable header to the vtnet_rx_header structure, the size was increased by 2 bytes, breaking the alignment of this structure as described the in preceding comments.
Furthermore, the mergable header does not belong the structure. With the mergable feature, the header is placed in line with the data, so there is no need for a separate segment, and misleading to follow the mergable header with any padding.
The V1 header is effectively identical to mergable header, and the driver has long supported the mergable feature. Revert this so the later changes that add V1 support can show how V1 is derived from the existing mergable buffers support, and to facilitate a later MFC.
Reviewed by: grehan (mentor) Differential Revision: https://reviews.freebsd.org/D27855
show more ...
|
|
Revision tags: release/12.2.0, release/11.4.0 |
|
| #
8c3988df |
| 08-Jun-2020 |
Jessica Clarke <[email protected]> |
virtio: Support non-legacy network device and queue
The non-legacy interface always defines num_buffers in the header, regardless of whether VIRTIO_NET_F_MRG_RXBUF, just leaving it unused. We also n
virtio: Support non-legacy network device and queue
The non-legacy interface always defines num_buffers in the header, regardless of whether VIRTIO_NET_F_MRG_RXBUF, just leaving it unused. We also need to ensure our virtqueue doesn't filter out VIRTIO_F_VERSION_1 during negotiation, as it supports non-legacy transports just fine. This fixes network packet transmission on TinyEMU.
Reviewed by: br, brooks (mentor), jhb (mentor) Approved by: br, brooks (mentor), jhb (mentor) Differential Revision: https://reviews.freebsd.org/D25132
show more ...
|
|
Revision tags: release/12.1.0, release/11.3.0, release/12.0.0, release/11.2.0 |
|
| #
88126356 |
| 19-Feb-2018 |
Bryan Venteicher <[email protected]> |
Add more virtqueue getter methods
MFC after: 2 weeks
|
| #
718cf2cc |
| 27-Nov-2017 |
Pedro F. Giffuni <[email protected]> |
sys/dev: further adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error
sys/dev: further adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone - task.
The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts.
show more ...
|
|
Revision tags: release/10.4.0, release/11.1.0, release/11.0.1, release/11.0.0, release/10.3.0, release/10.2.0 |
|
| #
156b97fa |
| 12-Dec-2014 |
Ruslan Bukin <[email protected]> |
Add virtio bus 'poll' method allowing us to inform backend we are going to poll virtqueue.
Use on BERI soft-core to invalidate cpu caches.
Reviewed by: bryanv Sponsored by: DARPA, AFRL
|
|
Revision tags: release/10.1.0 |
|
| #
a5b6123e |
| 16-Aug-2014 |
Luigi Rizzo <[email protected]> |
print additional debugging info in virtqueue_dump() (not fundamental, but useful to debug performance issues on vtnet)
MFC after: 3 days
|
|
Revision tags: release/9.3.0 |
|
| #
4b59668f |
| 10-Jul-2014 |
Bryan Venteicher <[email protected]> |
Add accessor to get the number of free descriptors in the virtqueue
MFC after: 1 month
|
| #
45543f07 |
| 16-Jun-2014 |
Bryan Venteicher <[email protected]> |
Move the VIRTIO_RING_F_* defines out of virtqueue.h into virtio_config.h
These defines are applicable to userland too, but virtqueue.h contains the kernel virtqueue interface, and is therefore not u
Move the VIRTIO_RING_F_* defines out of virtqueue.h into virtio_config.h
These defines are applicable to userland too, but virtqueue.h contains the kernel virtqueue interface, and is therefore not usable in userland.
Note that Linux places these defines in virtio_ring.h, but I don't want the drivers including this header file to keep the VirtIO ring opaque to everything but the virtqueue.
MFC after: 1 week
show more ...
|
| #
9a732166 |
| 01-Jun-2014 |
Bryan Venteicher <[email protected]> |
Split the virtio.h header file into multiple files
Reorganize the previous contexts of the file as it is in Linux. The eventual goal is to install the header files and share them between the kernel
Split the virtio.h header file into multiple files
Reorganize the previous contexts of the file as it is in Linux. The eventual goal is to install the header files and share them between the kernel and bhyve.
MFC after: 1 week
show more ...
|
|
Revision tags: release/10.0.0, release/9.2.0 |
|
| #
4142b1cb |
| 03-Sep-2013 |
Bryan Venteicher <[email protected]> |
Fix unintended compiler constant folding
Pointed out by: dim@
|
| #
b619f40a |
| 01-Sep-2013 |
Bryan Venteicher <[email protected]> |
Add support for postponing VirtIO virtqueue interrupts
Partial support for the EVENT_IDX feature was added a while ago, but this commit adds an interface for the device driver to hint how long (in t
Add support for postponing VirtIO virtqueue interrupts
Partial support for the EVENT_IDX feature was added a while ago, but this commit adds an interface for the device driver to hint how long (in terms of descriptors) the next interrupt should be delayed.
The first user of this will be used to reduce VirtIO net's Tx completion interrupts.
show more ...
|
| #
62a69c41 |
| 04-Jul-2013 |
Bryan Venteicher <[email protected]> |
Merge virtio_pci changes from projects/virtio
This commit is primarily a significant cleanup to the interrupt allocation code that had gotten a bit jumbled from having to support per-vq MSIX, shared
Merge virtio_pci changes from projects/virtio
This commit is primarily a significant cleanup to the interrupt allocation code that had gotten a bit jumbled from having to support per-vq MSIX, shared MSIX, MSI, and legacy style interrupts.
Contains projects/virtio commits:
r246064: virtio_pci: Rewrite allocation of interrupts r246065: virtio_pci: Remove spaces before a tab r246066: virtio_pci: Dynamically allocate the virtqueue array r246304: virtio_pci: Clean up after failed virtqueue alloc attempt r246305: virtio_pci: Move no interrupt check into the PCI interrupt handlers r246308: virtio_pci: Remove unused variable
MFC after: 1 month
show more ...
|
| #
abd6790c |
| 04-Jul-2013 |
Bryan Venteicher <[email protected]> |
Merge virtio changes from projects/virtio
Contains projects/virtio commits:
r245738: virtio: Minor man page tweaks r246060: virtio: Cleanup feature description printing r246306: virtio:
Merge virtio changes from projects/virtio
Contains projects/virtio commits:
r245738: virtio: Minor man page tweaks r246060: virtio: Cleanup feature description printing r246306: virtio: Remove old debugging flag r247238: virtio: Remove PRIx64 macros from format strings r247239: virtio: Constify some fields r247240: virtio: Minor code simplifications r249962: virtio: Update to my freebsd.org email address
MFC after: 1 month
show more ...
|
| #
6632efe4 |
| 04-Jul-2013 |
Bryan Venteicher <[email protected]> |
Convert VirtIO to use ithreads instead of taskqueues
Contains projects/virtio commits:
r245709: Each VirtIO device was scheduling its own taskqueue(9) to do the off-level interrupt handling
Convert VirtIO to use ithreads instead of taskqueues
Contains projects/virtio commits:
r245709: Each VirtIO device was scheduling its own taskqueue(9) to do the off-level interrupt handling. ithreads(9) is the more nature way to do this. The primary motivation for this work to better support network multiqueue. r245710: virtio: Change virtqueue intr handlers to return void r245711: virtio_blk: Remove interrupt taskqueue r245721: vtnet: Remove interrupt taskqueue r245722: virtio_scsi: Remove interrupt taskqueue r245747: vtnet: Remove taskqueue fields missed in r245721
MFC after: 1 month
show more ...
|
|
Revision tags: release/8.4.0, release/9.1.0 |
|
| #
1dbd8bc9 |
| 11-Oct-2012 |
Peter Grehan <[email protected]> |
Patch from Bryan to fix a virtqueue issue:
virtqueue: Fix non-indirect virtqueues
We really must walk the entire descriptor chain in order to append the to be free'd chain to the existi
Patch from Bryan to fix a virtqueue issue:
virtqueue: Fix non-indirect virtqueues
We really must walk the entire descriptor chain in order to append the to be free'd chain to the existing free chain.
Submitted by: Bryan Venteicher ([email protected]) Reported by: cognet
show more ...
|
| #
c44ef550 |
| 13-Sep-2012 |
Peter Grehan <[email protected]> |
Relax requirement of certain mb()s
Submitted by: Bryan Venteicher bryanv at daemoninthecloset org
|
| #
310dacd0 |
| 11-Jul-2012 |
Peter Grehan <[email protected]> |
Various VirtIO improvements
PCI: - Properly handle interrupt fallback from MSIX to MSI to legacy. The host may not have sufficient resources to support MSIX, so we
Various VirtIO improvements
PCI: - Properly handle interrupt fallback from MSIX to MSI to legacy. The host may not have sufficient resources to support MSIX, so we must be able to fallback to legacy interrupts. - Add interface to get the (sub) vendor and device IDs. - Rename flags to VTPCI_FLAG_* like other VirtIO drivers. Block: - No longer allocate vtblk_requests from separate UMA zone. malloc(9) from M_DEVBUF is sufficient. Assert segment counts at allocation. - More verbose error and debug messages. Network: - Remove stray write once variable. Virtqueue: - Shuffle code around in preparation of converting the mb()s to the appropriate atomic(9) operations. - Only walk the descriptor chain when freeing if INVARIANTS is defined since the result is only KASSERT()ed.
Submitted by: Bryan Venteicher ([email protected])
show more ...
|
| #
b8a58707 |
| 14-Apr-2012 |
Peter Grehan <[email protected]> |
Catch up with Bryan Venteicher's virtio git repo:
a8af6270bd96be6ccd86f70b60fa6512b710e4f0 virtio_blk: Include function name in panic string
cbdb03a694b76c5253d7ae3a59b9995b9afbb67a vir
Catch up with Bryan Venteicher's virtio git repo:
a8af6270bd96be6ccd86f70b60fa6512b710e4f0 virtio_blk: Include function name in panic string
cbdb03a694b76c5253d7ae3a59b9995b9afbb67a virtio_balloon: Do the notify outside of the lock
By the time we return from virtqueue_notify(), the descriptor will be in the used ring so we shouldn't have to sleep.
10ba392e60692529a5cbc1e9987e4064e0128447 virtio: Use DEVMETHOD_END
80cbcc4d6552cac758be67f0c99c36f23ce62110 virtqueue: Add support for VIRTIO_F_RING_EVENT_IDX
This can be used to reduce the number of guest/host and host/guest interrupts by delaying the interrupt until a certain index value is reached.
Actual use by the network driver will come along later.
8fc465969acc0c58477153e4c3530390db436c02 virtqueue: Simplify virtqueue_nused()
Since the values just wrap naturally at UINT16_MAX, we can just subtract the two values directly, rather than doing 2's complement math.
a8aa22f25959e2767d006cd621b69050e7ffb0ae virtio_blk: Remove debugging crud from 75dd732a
There seems to be an issue with Qemu (or FreeBSD VirtIO) that sets the PCI register space for the device config to bogus values. This only seems to happen after unloading and reloading the module.
d404800661cb2a9769c033f8a50b2133934501aa virtio_blk: Use better variable name
75dd732a97743d96e7c63f7ced3c2169696dadd3 virtio_blk: Partially revert 92ba40e65
Just use the virtqueue to determine if any requests are still inflight.
06661ed66b7a9efaea240f99f414c368f1bbcdc7 virtio_blk: error if allowed too few segments
Should never happen unless the host provides use with a bogus seg_max value.
4b33e5085bc87a818433d7e664a0a2c8f56a1a89 virtio_blk: Sort function declarations
426b9f5cac892c9c64cc7631966461514f7e08c6 virtio_blk: Cleanup whitespace
617c23e12c61e3c2233d942db713c6b8ff0bd112 virtio_blk: Call disk_err() on error'd completed requests
081a5712d4b2e0abf273be4d26affcf3870263a9 virtio_blk: ASSERT the ready and inflight request queues are empty
a9be2631a4f770a84145c18ee03a3f103bed4ca8 virtio_blk: Simplify check for too many segments
At the cost of a small style violation.
e00ec09da014f2e60cc75542d0ab78898672d521 virtio_blk: Add beginnings of suspend/resume
Still not sure if we need to virtio_stop()/virtio_reinit() the device before/after a suspend.
Don't start additional IO when marked as suspending.
47c71dc6ce8c238aa59ce8afd4bda5aa294bc884 virtio_blk: Panic when dealt an unhandled BIO cmd
1055544f90fb8c0cc6a2395f5b6104039606aafe virtio_blk: Add VQ enqueue/dequeue wrappers
Wrapper functions managed the added/removing to the in-flight list of requests.
Normally biodone() any completed IO when draining the virtqueue.
92ba40e65b3bb5e4acb9300ece711f1ea8f3f7f4 virtio_blk: Add in-flight list of requests
74f6d260e075443544522c0833dc2712dd93f49b virtio_blk: Rename VTBLK_FLAG_DETACHING to VTBLK_FLAG_DETACH
7aa549050f6fc6551c09c6362ed6b2a0728956ef virtio_blk: Finish all BIOs through vtblk_finish_bio()
Also properly set bio_resid in the case of errors. Most geom_disk providers seem to do the same.
9eef6d0e6f7e5dd362f71ba097f2e2e4c3744882 Added function to translate VirtIO status to error code
ef06adc337f31e1129d6d5f26de6d8d1be27bcd2 Reset dumping flag when given unexpected parameters
393b3e390c644193a2e392220dcc6a6c50b212d9 Added missing VTBLK_LOCK() in dump handler
Obtained from: Bryan Venteicher bryanv at daemoninthecloset dot org
show more ...
|
|
Revision tags: release/8.3.0_cvs, release/8.3.0, release/9.0.0 |
|
| #
10b59a9b |
| 18-Nov-2011 |
Peter Grehan <[email protected]> |
Import virtio base, PCI front-end, and net/block/balloon drivers. Tested on Qemu/KVM, VirtualBox, and BHyVe.
Currently built as modules-only on i386/amd64. Man pages not yet hooked up, pending revie
Import virtio base, PCI front-end, and net/block/balloon drivers. Tested on Qemu/KVM, VirtualBox, and BHyVe.
Currently built as modules-only on i386/amd64. Man pages not yet hooked up, pending review.
Submitted by: Bryan Venteicher bryanv at daemoninthecloset dot org Reviewed by: bz MFC after: 4 weeks or so
show more ...
|