[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: (VIRTIO-13) Remove VIRTIO_F_NOTIFY_ON_EMPTY?
Rusty Russell <rusty@au1.ibm.com> writes:
> OASIS Issues Tracker <workgroup_mailer@lists.oasis-open.org> writes:
>> Remove VIRTIO_F_NOTIFY_ON_EMPTY?
>> ---------------------------------
>>
>> Key: VIRTIO-13
>> URL: http://tools.oasis-open.org/issues/browse/VIRTIO-13
>> Project: OASIS Virtual I/O Device (VIRTIO) TC
>> Issue Type: Improvement
>> Reporter: Rusty Russell
>>
>>
>> Notify on empty means that the device interrupts even if it wouldn't normally, in the case where a normally-full virtqueue is empty.
>>
>> ISTR this was a performance hack; it's no longer used in Linux anyway, and performance issues may have been due to a race which sometimes lost interrupts :)
>
> Which would look something like this:
This is updated on the more recent draft, using an explicit legacy
section:
commit 65b90ebe8be6a55c4c3c5033d597a6c3de87adf8
Author: Rusty Russell <rusty@au1.ibm.com>
Date: Mon Sep 9 16:55:06 2013 +0930
Remove VIRTIO_F_NOTIFY_ON_EMPTY
As per http://tools.oasis-open.org/issues/browse/VIRTIO-13
(Includes le8 -> u8 fix)
Signed-off-by: Rusty Russell <rusty@au1.ibm.com>
diff --git a/virtio-v1.0-wd01-part1-specification.txt b/virtio-v1.0-wd01-part1-specification.txt
index 9b0bbca..aea3b3f 100644
--- a/virtio-v1.0-wd01-part1-specification.txt
+++ b/virtio-v1.0-wd01-part1-specification.txt
@@ -1361,9 +1361,7 @@ the different features the driver negotiated.
Often a driver will suppress transmission interrupts using the
VRING_AVAIL_F_NO_INTERRUPT flag (see "2.4.2. Receiving Used Buffers From
The Device") and check for used packets in the transmit path of following
-packets. However, it will still receive interrupts if the
-VIRTIO_F_NOTIFY_ON_EMPTY feature is negotiated, indicating that
-the transmission queue is completely emptied.
+packets.
The normal behavior in this interrupt handler is to retrieve and
new descriptors from the used ring and free the corresponding
@@ -2568,18 +2566,7 @@ contents of the event field. The following events are defined:
2.5. Reserved Feature Bits
=========================
-Currently there are five device-independent feature bits defined:
-
- VIRTIO_F_NOTIFY_ON_EMPTY (24) Negotiating this feature
- indicates that the driver wants an interrupt if the device runs
- out of available descriptors on a virtqueue, even though
- interrupts are suppressed using the VRING_AVAIL_F_NO_INTERRUPT
- flag or the used_event field. An example of this is the
- networking driver: it doesn't need to know every time a packet
- is transmitted, but it does need to free the transmitted
- packets a finite time after they are transmitted. It can avoid
- using a timer if the device interrupts it when all the packets
- are transmitted.
+Currently there are four device-independent feature bits defined:
VIRTIO_F_ANY_LAYOUT (27) This feature indicates that the device accepts arbitrary
descriptor layouts, as described in Section "2.1.4.2. Message Framing".
@@ -2607,6 +2594,22 @@ In addition, bit 30 is used by qemu's implementation to check for experimental
early versions of virtio which did not perform correct feature negotiation,
and should not be used.
+2.5.1 Legacy Interface: Reserved Feature Bits
+--------------------------------------------
+
+Legacy or transitional devices may offer the following:
+
+VIRTIO_F_NOTIFY_ON_EMPTY (24) Negotiating this feature
+ indicates that the driver wants an interrupt if the device runs
+ out of available descriptors on a virtqueue, even though
+ interrupts are suppressed using the VRING_AVAIL_F_NO_INTERRUPT
+ flag or the used_event field. An example of this is the
+ networking driver: it doesn't need to know every time a packet
+ is transmitted, but it does need to free the transmitted
+ packets a finite time after they are transmitted. It can avoid
+ using a timer if the device interrupts it when all the packets
+ are transmitted.
+
2.6. virtio_ring.h
=================
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]