Message ID | 20240517144607.2595798-2-niuxuewei.nxw@antgroup.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | vsock/virtio: Add support for multi-devices | expand |
(CCing virtio-comment, since this proposes adding a field to a struct that is standardized[1] in the VIRTIO spec, so changes to the Linux implementation should presumably be coordinated with changes to the spec.) [1]: https://docs.oasis-open.org/virtio/virtio/v1.3/csd01/virtio-v1.3-csd01.html#x1-4780004 On Fri, May 17, 2024 at 10:46:03PM +0800, Xuewei Niu wrote: > The "order" field determines the location of the device in the linked list, > the device with CID 4, having a smallest order, is in the first place, and > so forth. > > Rules: > > * It doesn’t have to be continuous; > * It cannot exist conflicts; > * It is optional for the mode of a single device, but is required for the > mode of multiple devices. > > Signed-off-by: Xuewei Niu <niuxuewei.nxw@antgroup.com> > --- > include/uapi/linux/virtio_vsock.h | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/include/uapi/linux/virtio_vsock.h b/include/uapi/linux/virtio_vsock.h > index 64738838bee5..b62ec7d2ab1e 100644 > --- a/include/uapi/linux/virtio_vsock.h > +++ b/include/uapi/linux/virtio_vsock.h > @@ -43,6 +43,7 @@ > > struct virtio_vsock_config { > __le64 guest_cid; > + __le64 order; > } __attribute__((packed)); > > enum virtio_vsock_event_id { > -- > 2.34.1 >
As Alyssa suggested, we should discuss spec changes in the virtio ML. BTW as long as this is an RFC, it's fine. Just be sure, though, to remember to merge the change in the specification first versus the patches in Linux. So I recommend that you don't send a non-RFC set into Linux until you have agreed on the changes to the specification. On Fri, May 17, 2024 at 10:46:03PM GMT, Xuewei Niu wrote: >The "order" field determines the location of the device in the linked list, >the device with CID 4, having a smallest order, is in the first place, and >so forth. Do we really need an order, or would it suffice to just indicate the device to be used by default? (as the default gateway in networking) > >Rules: > >* It doesn’t have to be continuous; >* It cannot exist conflicts; >* It is optional for the mode of a single device, but is required for the > mode of multiple devices. We should also add a feature to support this new field. > >Signed-off-by: Xuewei Niu <niuxuewei.nxw@antgroup.com> >--- > include/uapi/linux/virtio_vsock.h | 1 + > 1 file changed, 1 insertion(+) > >diff --git a/include/uapi/linux/virtio_vsock.h b/include/uapi/linux/virtio_vsock.h >index 64738838bee5..b62ec7d2ab1e 100644 >--- a/include/uapi/linux/virtio_vsock.h >+++ b/include/uapi/linux/virtio_vsock.h >@@ -43,6 +43,7 @@ > > struct virtio_vsock_config { > __le64 guest_cid; >+ __le64 order; Do we really need 64 bits for the order? > } __attribute__((packed)); > > enum virtio_vsock_event_id { >-- >2.34.1 >
diff --git a/include/uapi/linux/virtio_vsock.h b/include/uapi/linux/virtio_vsock.h index 64738838bee5..b62ec7d2ab1e 100644 --- a/include/uapi/linux/virtio_vsock.h +++ b/include/uapi/linux/virtio_vsock.h @@ -43,6 +43,7 @@ struct virtio_vsock_config { __le64 guest_cid; + __le64 order; } __attribute__((packed)); enum virtio_vsock_event_id {
The "order" field determines the location of the device in the linked list, the device with CID 4, having a smallest order, is in the first place, and so forth. Rules: * It doesn’t have to be continuous; * It cannot exist conflicts; * It is optional for the mode of a single device, but is required for the mode of multiple devices. Signed-off-by: Xuewei Niu <niuxuewei.nxw@antgroup.com> --- include/uapi/linux/virtio_vsock.h | 1 + 1 file changed, 1 insertion(+)