[dpdk-dev] [PATCH v9 1/8] net/virtio: vring init for packed queues
Tiwei Bie
tiwei.bie at intel.com
Fri Oct 26 08:01:54 CEST 2018
On Thu, Oct 25, 2018 at 05:12:48PM +0200, Jens Freimann wrote:
> On Thu, Oct 25, 2018 at 03:51:19PM +0200, Maxime Coquelin wrote:
> >
> >
> > On 10/25/18 3:48 PM, Jens Freimann wrote:
> > > On Thu, Oct 25, 2018 at 05:21:15PM +0800, Tiwei Bie wrote:
> > > > On Wed, Oct 24, 2018 at 04:32:29PM +0200, Jens Freimann wrote:
> > > > > Signed-off-by: Jens Freimann <jfreimann at redhat.com>
> > > > > ??struct vring {
> > > > > ???????? unsigned int num;
> > > > > -?????? struct vring_desc?? *desc;
> > > > > -?????? struct vring_avail *avail;
> > > > > -?????? struct vring_used?? *used;
> > > > > +?????? union {
> > > > > +?????????????? struct vring_desc_packed *desc_packed;
> > > > > +?????????????? struct vring_desc *desc;
> > > > > +?????? };
> > > > > +?????? union {
> > > > > +?????????????? struct vring_avail *avail;
> > > > > +?????????????? struct vring_packed_desc_event *driver_event;
> > > > > +?????? };
> > > > > +?????? union {
> > > > > +?????????????? struct vring_used?? *used;
> > > > > +?????????????? struct vring_packed_desc_event *device_event;
> > > > > +?????? };
> > > > > ??};
> > > > >
> > > >
> > > > We should define a new `vring` structure for packed ring.
> > >
> > > I think it was requested to have it as a union before, but I can do
> > > it.
> >
> > I guess oyu vcan have a union between struct vring and struct
> > vring_packed?
>
> Like this?
>
> struct vring {
> unsigned int num;
> union {
> struct vring_split *split;
> _ struct vring_packed *packed;
> };
> };
>
> We will have to write vq->vq_ring.split.avail->flags and
> vq->vq_ring.packed.desc[xx] and similar things in a lot of places, no?
>
> Should we just add both vring_split and vring_packed to struct
> virtqueue instead? Only one of them will have memory allocated per virtqueue
> anyway.
Yeah, we can add both to struct virtqueue.
More information about the dev
mailing list