[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: RE: [PATCH v3 0/2] Support enabling virtqueue after DRIVER_OK
Hi Michael, Cornelia, > From: Parav Pandit <parav@nvidia.com> > Sent: Monday, October 2, 2023 10:46 AM > > Summary: > ======== > This patch enables driver to create virtqueues after DRIVER_OK status bit is set. > > This patch take the inspiration from the thread [2] with credits to Eugenio PÃrez. > > Details: > ======== > Currently, a virtqueue must be enabled before driver has set the DRIVER_OK > status bit. > > spec citation to section "Driver Requirements: Device Initialization" > > "Perform device-specific setup, including discovery of virtqueues for the device, > optional per-bus setup, reading and possibly writing the deviceâs virtio > configuration space, and population of virtqueues." > > This implies that a virtqueue must be enabled before reaching the DRIVER_OK > stage. There was no explicit mention about ability to enable the virtqueue after > DRIVER_OK stage. > > In following usecases, creating a virtqueue after DRIVER_OK phase is desired. > > Use cases: > ========= > 1. Dynamically create aq when administrative commands to be used. > ate the net device tx/rxq when device is > opened when deploying for a container. > In a container, number of virtqueues to be used may be <= max queues. > 3. Dynamically create flow filter queues of netdevice when > ARFS or ethtool filters are enabled as listed in [1]. > 4. Dynamically create rtc functionality related read virtqueue only > when net device when timestamping to be used. > 5. When XDP program is set, one can create additional XDP specific > queues without affecting existing queues. > > Hence, This patch introduces an existing queue enable and disable (aka reset) > facility and a new feature bit to explicitly indicate such support by the device. > > With this feature, drivers can skip optional queues creation during driver init > time. For example, a Linux net device driver can create/destroy the transmit and > receive queues when net device's > ndo_open() and ndo_stop() callbacks are invoked respectively. > > [1] https://lists.oasis-open.org/archives/virtio- > comment/202308/msg00263.html > [2] https://lists.oasis-open.org/archives/virtio- > comment/202306/msg00097.html > > Patch summary: > ============== > patch-1 fixes to add virtqueue reset conformance references > patch-2 adds VIRTIO_F_RING_DYNAMIC feature bit, requirements > > Please review. > > Fixes: https://github.com/oasis-tcs/virtio-spec/issues/177 > > --- > changelog: > v2->v3: > - github issue link updated > v1->v2: > - fixed comments from Michael > - reduced device and driver normatives (simplified) > - replace 'a virtqueue' to 'the virtqueues' > - reworded to remove 'interested' > - avoided repeated 'device initialization text', replaced with > DRIVER_OK status bit language > - avoided confusing text around 'MAY' in the requirements > - replaced 'the queue' to 'specific virtqueues' > - replaced queue to virtqueue > - simplified commit log to talk about msix > v0->v1: > - fixed comments from Xuan > - removed blank lines > - fixed wrong requirement link to device in driver section > I have updated v3 to link to the github issue. Now that this small feature was up for few weeks, can you please create the ballot review?
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]