[RFC 0/5] In virtio-spec 1.1, new feature bit VIRTIO_F_IN_ORDER was introduced.

Guo Zhi posted 5 patches 3 years, 9 months ago
drivers/vhost/test.c         | 15 +++++++++++-
drivers/vhost/vhost.c        | 44 ++++++++++++++++++++++++++++++++++--
drivers/vhost/vhost.h        |  4 ++++
drivers/virtio/virtio_ring.c | 39 +++++++++++++++++++++++++-------
4 files changed, 91 insertions(+), 11 deletions(-)
[RFC 0/5] In virtio-spec 1.1, new feature bit VIRTIO_F_IN_ORDER was introduced.
Posted by Guo Zhi 3 years, 9 months ago
When this feature has been negotiated, virtio driver will use
descriptors in ring order: starting from offset 0 in the table, and
wrapping around at the end of the table. Vhost devices will always use
descriptors in the same order in which they have been made available.
This can reduce virtio accesses to used ring.

Based on updated virtio-spec, this series realized IN_ORDER prototype
in virtio driver and vhost.

Guo Zhi (5):
  vhost: reorder used descriptors in a batch
  vhost: announce VIRTIO_F_IN_ORDER support
  vhost_test: batch used buffer
  virtio: get desc id in order
  virtio: annouce VIRTIO_F_IN_ORDER support

 drivers/vhost/test.c         | 15 +++++++++++-
 drivers/vhost/vhost.c        | 44 ++++++++++++++++++++++++++++++++++--
 drivers/vhost/vhost.h        |  4 ++++
 drivers/virtio/virtio_ring.c | 39 +++++++++++++++++++++++++-------
 4 files changed, 91 insertions(+), 11 deletions(-)

-- 
2.17.1
Re: [RFC 0/5] In virtio-spec 1.1, new feature bit VIRTIO_F_IN_ORDER was introduced.
Posted by Jason Wang 3 years, 9 months ago
On Thu, Jul 21, 2022 at 4:44 PM Guo Zhi <qtxuning1999@sjtu.edu.cn> wrote:
>
> When this feature has been negotiated, virtio driver will use
> descriptors in ring order: starting from offset 0 in the table, and
> wrapping around at the end of the table. Vhost devices will always use
> descriptors in the same order in which they have been made available.
> This can reduce virtio accesses to used ring.
>
> Based on updated virtio-spec, this series realized IN_ORDER prototype
> in virtio driver and vhost.

Thanks a lot for the series.

I wonder if you can share any performance numbers for this?

Thanks

>
> Guo Zhi (5):
>   vhost: reorder used descriptors in a batch
>   vhost: announce VIRTIO_F_IN_ORDER support
>   vhost_test: batch used buffer
>   virtio: get desc id in order
>   virtio: annouce VIRTIO_F_IN_ORDER support
>
>  drivers/vhost/test.c         | 15 +++++++++++-
>  drivers/vhost/vhost.c        | 44 ++++++++++++++++++++++++++++++++++--
>  drivers/vhost/vhost.h        |  4 ++++
>  drivers/virtio/virtio_ring.c | 39 +++++++++++++++++++++++++-------
>  4 files changed, 91 insertions(+), 11 deletions(-)
>
> --
> 2.17.1
>
Re: [RFC 0/5] In virtio-spec 1.1, new feature bit VIRTIO_F_IN_ORDER was introduced.
Posted by Guo Zhi 3 years, 9 months ago
On 2022/7/21 17:17, Jason Wang wrote:
> On Thu, Jul 21, 2022 at 4:44 PM Guo Zhi <qtxuning1999@sjtu.edu.cn> wrote:
>> When this feature has been negotiated, virtio driver will use
>> descriptors in ring order: starting from offset 0 in the table, and
>> wrapping around at the end of the table. Vhost devices will always use
>> descriptors in the same order in which they have been made available.
>> This can reduce virtio accesses to used ring.
>>
>> Based on updated virtio-spec, this series realized IN_ORDER prototype
>> in virtio driver and vhost.
> Thanks a lot for the series.
>
> I wonder if you can share any performance numbers for this?
>
> Thanks

As a RFC series, current prototype only support virtio_test, and its 
performance evaluation between

in order and traditional has little difference. We can focus on the 
prototype design at this stage.

I will continue work to support real network driver and device, thus 
share more persuasive performance result.

Thanks.

>> Guo Zhi (5):
>>    vhost: reorder used descriptors in a batch
>>    vhost: announce VIRTIO_F_IN_ORDER support
>>    vhost_test: batch used buffer
>>    virtio: get desc id in order
>>    virtio: annouce VIRTIO_F_IN_ORDER support
>>
>>   drivers/vhost/test.c         | 15 +++++++++++-
>>   drivers/vhost/vhost.c        | 44 ++++++++++++++++++++++++++++++++++--
>>   drivers/vhost/vhost.h        |  4 ++++
>>   drivers/virtio/virtio_ring.c | 39 +++++++++++++++++++++++++-------
>>   4 files changed, 91 insertions(+), 11 deletions(-)
>>
>> --
>> 2.17.1
>>