[virtio-dev] Re: RE: RE: RE: [RFC] virtio-net: support access and control the member devices

Xuan Zhuo
2023-08-03T11:28:49Z

On Thu, 3 Aug 2023 11:21:08 +0000, Parav Pandit <parav@nvidia.com> wrote:
>
> > From: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
> > Sent: Thursday, August 3, 2023 4:46 PM
> >
> > On Thu, 3 Aug 2023 11:13:28 +0000, Parav Pandit <parav@nvidia.com> wrote:
> > >
> > > > From: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
> > > > Sent: Thursday, August 3, 2023 4:36 PM
> > >
> > >
> > > >
> > > > OK.
> > > >
> > > >
> > > > >
> > > > > > + u8 mac[6];
> > > > > > + le16 status;
> > > > > > + le16 max_virtqueue_pairs;
> > > > > > + le16 mtu;
> > > > > > + le32 speed;
> > > > > > + u8 duplex;
> > > > >
> > > > > We should above split constant config space fields and below run
> > > > > time fields
> > > > meant for debug purpose.
> > > > > We are working on the member device migration proposal and below
> > > > > fields
> > > > belong to "device context" should be available through such separate
> > command.
> > > > > But if you do it before, please cover the whole device state and
> > > > > we will be
> > > > able to reuse for multiple use-cases.
> > > >
> > > >
> > > > I am not sure I got fully.
> > > >
> > > > I will try.
> > >
> > > Something like below.
> > >
> > > struct virtio_field {
> > > le32 type; /* contains the value of enum virtio_dev_field_type */
> > > le32 size; /* size of the data field in bytes */
> > > u8 data[];
> > > };
> > >
> > > enum virtio_dev_field_type {
> > > VIRTIO_DEV_PCI_COMMON_CFG, /* struct
> > virtio_dev_common_cfg */
> > > VIRTIO_DEV_CFG_SPACE, /* config space fields, for net struct
> > virtio_net_config etc */
> > > VIRTIO_DEV_QUEUE_CFG, /* struct virtio_dev_q_cfg */
> > > };
> > >
> > > In your use case, it is VIRTIO_DEV_CFG_SPACE, just blob of data bytes.
> >
> >
> > That is ok for me.
> >
> > My question is what is ctx? How do we decide what to put in ctx? How do we
> > define ctx?
>
> In the live migration use case flow, ctx is collection of all the device information.
> I only listed 3 above for simplicity of our discussion.
> In specific config space query, like your example,
> The owner driver asks for specific piece of the context to query by supplying the bitmap for above enum.

OK. I see.

Let we start from this.

Thanks.