search for: indirect_desc

Displaying 20 results from an estimated 40 matches for "indirect_desc".

2019 Oct 03
0
virtq questions
...#39;s the case, then submitter can't assume any order in request completion anyway. > > This is complicated by the fact that we call virtqueue_add_sgs() under > spinlock, which is the reason GFP_ATOMIC is used. However GFP_ATOMIC > can easily fail and that means even if the "indirect_desc" feature is > turned on a request may use several slots of the ring buffer for a > single request. Aha, you are referring to the case where indirect_desc feature is enabled but memory allocation fails, so it falls back to using regular descriptors. > Worst case is that a request has...
2017 Jul 12
2
[PATCH v12 5/8] virtio-balloon: VIRTIO_BALLOON_F_SG
..._vq, > + uint64_t addr, > + uint32_t len, > + unsigned int *head_id, > + unsigned int *prev_id, > + bool in); > + > +int virtqueue_add_chain(struct virtqueue *_vq, > + unsigned int head, > + bool indirect, > + struct vring_desc *indirect_desc, > + void *data, > + void *ctx); > + > bool virtqueue_kick(struct virtqueue *vq); > > +bool virtqueue_kick_sync(struct virtqueue *vq); > + > +bool virtqueue_kick_async(struct virtqueue *vq, wait_queue_head_t wq); > + > bool virtqueue_kick_prepare(struct virtque...
2017 Jul 12
2
[PATCH v12 5/8] virtio-balloon: VIRTIO_BALLOON_F_SG
..._vq, > + uint64_t addr, > + uint32_t len, > + unsigned int *head_id, > + unsigned int *prev_id, > + bool in); > + > +int virtqueue_add_chain(struct virtqueue *_vq, > + unsigned int head, > + bool indirect, > + struct vring_desc *indirect_desc, > + void *data, > + void *ctx); > + > bool virtqueue_kick(struct virtqueue *vq); > > +bool virtqueue_kick_sync(struct virtqueue *vq); > + > +bool virtqueue_kick_async(struct virtqueue *vq, wait_queue_head_t wq); > + > bool virtqueue_kick_prepare(struct virtque...
2015 Sep 09
2
virtio optimization idea
...ommunicate the length to the guest anyway, don't you? > For tx ring, the arrangement is like below. Each transmitted mbuf needs > a desc for virtio_net_hdr, so actually we have only 128 free slots. Just fix this one. Support ANY_LAYOUT and then you can put data linearly. And/or support INDIRECT_DESC and then you can use an indirect descriptor. > > > ++ > > || > > ||...
2015 Sep 09
2
virtio optimization idea
...ommunicate the length to the guest anyway, don't you? > For tx ring, the arrangement is like below. Each transmitted mbuf needs > a desc for virtio_net_hdr, so actually we have only 128 free slots. Just fix this one. Support ANY_LAYOUT and then you can put data linearly. And/or support INDIRECT_DESC and then you can use an indirect descriptor. > > > ++ > > || > > ||...
2017 Jul 12
0
[PATCH v12 5/8] virtio-balloon: VIRTIO_BALLOON_F_SG
...t;> + uint32_t len, >> + unsigned int *head_id, >> + unsigned int *prev_id, >> + bool in); >> + >> +int virtqueue_add_chain(struct virtqueue *_vq, >> + unsigned int head, >> + bool indirect, >> + struct vring_desc *indirect_desc, >> + void *data, >> + void *ctx); >> + >> bool virtqueue_kick(struct virtqueue *vq); >> >> +bool virtqueue_kick_sync(struct virtqueue *vq); >> + >> +bool virtqueue_kick_async(struct virtqueue *vq, wait_queue_head_t wq); >> + >>...
2019 Oct 02
0
virtq questions
* Miklos Szeredi (miklos at szeredi.hu) wrote: > Looking at the ugly retry logic in virtiofs and have some questions. > First one is, where do these features come from: > > VIRTIO_F_RING_PACKED > VIRTIO_RING_F_INDIRECT_DESC > > I see that in virtiofs "packed" is off and "indirect" is on. Is this > guaranteed? I think the xdindirect is coming from qemu's hw/virtio/virtio.h DEFINE_VIRTIO_COMMON_FEATURES which has: DEFINE_PROP_BIT64("indirect_desc", _state, _field, \...
2011 May 04
4
[PATCH 0/3] virtio-net: 64 bit features, event index
OK, here's a patch that implements the virtio spec update that I sent earlier. It supercedes the PUBLISH_USED_IDX patches I sent out earlier. Support is added in both userspace and vhost-net. I see nice performance improvements: e.g. from 12 to 18 Gbit/s host to guest with netperf, but did not spend a lot of time testing performance. I hope others will try this out and report. Note: there
2011 May 04
4
[PATCH 0/3] virtio-net: 64 bit features, event index
OK, here's a patch that implements the virtio spec update that I sent earlier. It supercedes the PUBLISH_USED_IDX patches I sent out earlier. Support is added in both userspace and vhost-net. I see nice performance improvements: e.g. from 12 to 18 Gbit/s host to guest with netperf, but did not spend a lot of time testing performance. I hope others will try this out and report. Note: there
2015 Sep 10
1
virtio optimization idea
...ring entry. > > > >> For tx ring, the arrangement is like below. Each transmitted mbuf needs > >> a desc for virtio_net_hdr, so actually we have only 128 free slots. > > Just fix this one. Support ANY_LAYOUT and then you can put data > > linearly. And/or support INDIRECT_DESC and then you can > > use an indirect descriptor. > Would check those two features. > > > >> > >> > > This one came out corrupted. > Actually i ever replied to the original mail and fixed it. Copy it here > again. > >...
2015 Sep 10
1
virtio optimization idea
...ring entry. > > > >> For tx ring, the arrangement is like below. Each transmitted mbuf needs > >> a desc for virtio_net_hdr, so actually we have only 128 free slots. > > Just fix this one. Support ANY_LAYOUT and then you can put data > > linearly. And/or support INDIRECT_DESC and then you can > > use an indirect descriptor. > Would check those two features. > > > >> > >> > > This one came out corrupted. > Actually i ever replied to the original mail and fixed it. Copy it here > again. > >...
2017 Sep 11
0
packed ring layout proposal v3
...fine VRING_DESC_F_INDIRECT 4 > > VRING_DESC_F_WRITE and VRING_DESC_F_NEXT are always clear. > > len specifies the length of the indirect descriptor buffer in bytes > and must be a multiple of 16. > > Unlike virtio 1.0, the buffer pointed to is a table, not a list: > struct indirect_descriptor_table { > /* The actual descriptors (16 bytes each) */ > struct indirect_desc desc[len / 16]; > }; > > The first descriptor is located at start of the indirect descriptor > table, additional indirect descriptors come immediately afterwards. > > struct...
2011 May 19
2
[PATCHv2 0/2] virtio-net: 64 bit features, event index
OK, here's a patch that implements the virtio spec update that I sent earlier. It supercedes the PUBLISH_USED_IDX patches I sent out earlier. Support is added in both userspace and vhost-net. If you see issues or are just curious, you can turn the new feature off. For example: -global virtio-net-pci.event_idx=on -global virtio-blk-pci.event_idx=off Also, it's possible to try both
2011 May 19
2
[PATCHv2 0/2] virtio-net: 64 bit features, event index
OK, here's a patch that implements the virtio spec update that I sent earlier. It supercedes the PUBLISH_USED_IDX patches I sent out earlier. Support is added in both userspace and vhost-net. If you see issues or are just curious, you can turn the new feature off. For example: -global virtio-net-pci.event_idx=on -global virtio-blk-pci.event_idx=off Also, it's possible to try both
2015 Sep 10
0
virtio optimization idea
...pdate the idx in the used ring entry. > >> For tx ring, the arrangement is like below. Each transmitted mbuf needs >> a desc for virtio_net_hdr, so actually we have only 128 free slots. > Just fix this one. Support ANY_LAYOUT and then you can put data > linearly. And/or support INDIRECT_DESC and then you can > use an indirect descriptor. Would check those two features. > >> >> > This one came out corrupted. Actually i ever replied to the original mail and fixed it. Copy it here again. ++...
2018 Apr 13
3
[RFC v2] virtio: support packed ring
...t; > + return last_used_idx; > > +} > > + [...] > > @@ -1157,14 +1852,18 @@ void vring_transport_features(struct virtio_device *vdev) > > for (i = VIRTIO_TRANSPORT_F_START; i < VIRTIO_TRANSPORT_F_END; i++) { > > switch (i) { > > - case VIRTIO_RING_F_INDIRECT_DESC: > > +#if 0 > > + case VIRTIO_RING_F_INDIRECT_DESC: // FIXME not tested yet. > > break; > > - case VIRTIO_RING_F_EVENT_IDX: > > + case VIRTIO_RING_F_EVENT_IDX: // FIXME probably not work. > > break; > > +#endif > > It would be better if...
2018 Apr 13
3
[RFC v2] virtio: support packed ring
...t; > + return last_used_idx; > > +} > > + [...] > > @@ -1157,14 +1852,18 @@ void vring_transport_features(struct virtio_device *vdev) > > for (i = VIRTIO_TRANSPORT_F_START; i < VIRTIO_TRANSPORT_F_END; i++) { > > switch (i) { > > - case VIRTIO_RING_F_INDIRECT_DESC: > > +#if 0 > > + case VIRTIO_RING_F_INDIRECT_DESC: // FIXME not tested yet. > > break; > > - case VIRTIO_RING_F_EVENT_IDX: > > + case VIRTIO_RING_F_EVENT_IDX: // FIXME probably not work. > > break; > > +#endif > > It would be better if...
2017 Jul 12
2
[PATCH v12 5/8] virtio-balloon: VIRTIO_BALLOON_F_SG
...unsigned int *head_id, > > > + unsigned int *prev_id, > > > + bool in); > > > + > > > +int virtqueue_add_chain(struct virtqueue *_vq, > > > + unsigned int head, > > > + bool indirect, > > > + struct vring_desc *indirect_desc, > > > + void *data, > > > + void *ctx); > > > + > > > bool virtqueue_kick(struct virtqueue *vq); > > > +bool virtqueue_kick_sync(struct virtqueue *vq); > > > + > > > +bool virtqueue_kick_async(struct virtqueue *vq, wait_queue_hea...
2017 Jul 12
2
[PATCH v12 5/8] virtio-balloon: VIRTIO_BALLOON_F_SG
...unsigned int *head_id, > > > + unsigned int *prev_id, > > > + bool in); > > > + > > > +int virtqueue_add_chain(struct virtqueue *_vq, > > > + unsigned int head, > > > + bool indirect, > > > + struct vring_desc *indirect_desc, > > > + void *data, > > > + void *ctx); > > > + > > > bool virtqueue_kick(struct virtqueue *vq); > > > +bool virtqueue_kick_sync(struct virtqueue *vq); > > > + > > > +bool virtqueue_kick_async(struct virtqueue *vq, wait_queue_hea...
2014 Dec 02
0
[PATCH RFC v5 05/19] virtio: support more feature bits
...s(VirtIODevice *vdev, uint64_t val); /* Base devices. */ typedef struct VirtIOBlkConf VirtIOBlkConf; @@ -238,9 +244,9 @@ typedef struct VirtIOSCSIConf VirtIOSCSIConf; typedef struct VirtIORNGConf VirtIORNGConf; #define DEFINE_VIRTIO_COMMON_FEATURES(_state, _field) \ - DEFINE_PROP_BIT("indirect_desc", _state, _field, \ + DEFINE_PROP_BIT64("indirect_desc", _state, _field, \ VIRTIO_RING_F_INDIRECT_DESC, true), \ - DEFINE_PROP_BIT("event_idx", _state, _field, \ + DEFINE_PROP_BIT64("event_idx", _state, _field, \ VIRTIO_RING_F_EVENT_IDX, true) hwaddr vi...