* [PATCH] vhost_net: add NOTIFICATION_DATA and IN_ORDER feature bits to vdpa_feature_bits @ 2024-01-02 11:14 Srujana Challa 2024-01-31 7:10 ` Vamsi Krishna Attunuru 2024-02-19 9:45 ` Michael S. Tsirkin 0 siblings, 2 replies; 10+ messages in thread From: Srujana Challa @ 2024-01-02 11:14 UTC (permalink / raw) To: qemu-devel; +Cc: mst, vattunuru, jerinj Enables VIRTIO_F_NOTIFICATION_DATA and VIRTIO_F_IN_ORDER feature bits for vhost vdpa backend. Also adds code to consider all feature bits supported by vhost net client type for feature negotiation, so that vhost backend device supported features can be negotiated with guest. Signed-off-by: Srujana Challa <schalla@marvell.com> --- hw/net/vhost_net.c | 10 ++++++++++ net/vhost-vdpa.c | 2 ++ 2 files changed, 12 insertions(+) diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c index e8e1661646..65ae8bcece 100644 --- a/hw/net/vhost_net.c +++ b/hw/net/vhost_net.c @@ -117,6 +117,16 @@ static const int *vhost_net_get_feature_bits(struct vhost_net *net) uint64_t vhost_net_get_features(struct vhost_net *net, uint64_t features) { + const int *bit = vhost_net_get_feature_bits(net); + + /* + * Consider all feature bits for feature negotiation with vhost backend, + * so that all backend device supported features can be negotiated. + */ + while (*bit != VHOST_INVALID_FEATURE_BIT) { + features |= (1ULL << *bit); + bit++; + } return vhost_get_features(&net->dev, vhost_net_get_feature_bits(net), features); } diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 3726ee5d67..51334fcfe2 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -57,7 +57,9 @@ typedef struct VhostVDPAState { */ const int vdpa_feature_bits[] = { VIRTIO_F_ANY_LAYOUT, + VIRTIO_F_IN_ORDER, VIRTIO_F_IOMMU_PLATFORM, + VIRTIO_F_NOTIFICATION_DATA, VIRTIO_F_NOTIFY_ON_EMPTY, VIRTIO_F_RING_PACKED, VIRTIO_F_RING_RESET, -- 2.25.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* RE: [PATCH] vhost_net: add NOTIFICATION_DATA and IN_ORDER feature bits to vdpa_feature_bits 2024-01-02 11:14 [PATCH] vhost_net: add NOTIFICATION_DATA and IN_ORDER feature bits to vdpa_feature_bits Srujana Challa @ 2024-01-31 7:10 ` Vamsi Krishna Attunuru 2024-02-19 9:38 ` Srujana Challa 2024-02-19 9:45 ` Michael S. Tsirkin 1 sibling, 1 reply; 10+ messages in thread From: Vamsi Krishna Attunuru @ 2024-01-31 7:10 UTC (permalink / raw) To: qemu-devel@nongnu.org, mst@redhat.com Cc: Jerin Jacob, Srujana Challa, Vamsi Krishna Attunuru Hi Michael, Can you review this feature support patch, appreciate your review and comments. Patch considers all feature bits supported by vhost net client type as part of feature negotiation to address the concerns raised in below thread. https://patchew.org/QEMU/1533833677-27512-1-git-send-email-i.maximets@samsung.com/ Regards Vamsi > -----Original Message----- > From: Srujana Challa <schalla@marvell.com> > Sent: Tuesday, January 2, 2024 4:45 PM > To: qemu-devel@nongnu.org > Cc: mst@redhat.com; Vamsi Krishna Attunuru <vattunuru@marvell.com>; > Jerin Jacob Kollanukkaran <jerinj@marvell.com> > Subject: [PATCH] vhost_net: add NOTIFICATION_DATA and IN_ORDER > feature bits to vdpa_feature_bits > > Enables VIRTIO_F_NOTIFICATION_DATA and VIRTIO_F_IN_ORDER feature > bits for vhost vdpa backend. Also adds code to consider all feature bits > supported by vhost net client type for feature negotiation, so that vhost > backend device supported features can be negotiated with guest. > > Signed-off-by: Srujana Challa <schalla@marvell.com> > --- > hw/net/vhost_net.c | 10 ++++++++++ > net/vhost-vdpa.c | 2 ++ > 2 files changed, 12 insertions(+) > > diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c index > e8e1661646..65ae8bcece 100644 > --- a/hw/net/vhost_net.c > +++ b/hw/net/vhost_net.c > @@ -117,6 +117,16 @@ static const int *vhost_net_get_feature_bits(struct > vhost_net *net) > > uint64_t vhost_net_get_features(struct vhost_net *net, uint64_t features) > { > + const int *bit = vhost_net_get_feature_bits(net); > + > + /* > + * Consider all feature bits for feature negotiation with vhost backend, > + * so that all backend device supported features can be negotiated. > + */ > + while (*bit != VHOST_INVALID_FEATURE_BIT) { > + features |= (1ULL << *bit); > + bit++; > + } > return vhost_get_features(&net->dev, vhost_net_get_feature_bits(net), > features); > } > diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index > 3726ee5d67..51334fcfe2 100644 > --- a/net/vhost-vdpa.c > +++ b/net/vhost-vdpa.c > @@ -57,7 +57,9 @@ typedef struct VhostVDPAState { > */ > const int vdpa_feature_bits[] = { > VIRTIO_F_ANY_LAYOUT, > + VIRTIO_F_IN_ORDER, > VIRTIO_F_IOMMU_PLATFORM, > + VIRTIO_F_NOTIFICATION_DATA, > VIRTIO_F_NOTIFY_ON_EMPTY, > VIRTIO_F_RING_PACKED, > VIRTIO_F_RING_RESET, > -- > 2.25.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* RE: [PATCH] vhost_net: add NOTIFICATION_DATA and IN_ORDER feature bits to vdpa_feature_bits 2024-01-31 7:10 ` Vamsi Krishna Attunuru @ 2024-02-19 9:38 ` Srujana Challa 2024-02-19 9:46 ` Michael S. Tsirkin 0 siblings, 1 reply; 10+ messages in thread From: Srujana Challa @ 2024-02-19 9:38 UTC (permalink / raw) To: Vamsi Krishna Attunuru, qemu-devel@nongnu.org, mst@redhat.com; +Cc: Jerin Jacob Ping. > Subject: RE: [PATCH] vhost_net: add NOTIFICATION_DATA and IN_ORDER > feature bits to vdpa_feature_bits > > Hi Michael, > > Can you review this feature support patch, appreciate your review and > comments. > > Patch considers all feature bits supported by vhost net client type as part of > feature negotiation to address the concerns raised in below thread. > https://patchew.org/QEMU/1533833677-27512-1-git-send-email- > i.maximets@samsung.com/ > > Regards > Vamsi > > > -----Original Message----- > > From: Srujana Challa <schalla@marvell.com> > > Sent: Tuesday, January 2, 2024 4:45 PM > > To: qemu-devel@nongnu.org > > Cc: mst@redhat.com; Vamsi Krishna Attunuru <vattunuru@marvell.com>; > > Jerin Jacob Kollanukkaran <jerinj@marvell.com> > > Subject: [PATCH] vhost_net: add NOTIFICATION_DATA and IN_ORDER > feature > > bits to vdpa_feature_bits > > > > Enables VIRTIO_F_NOTIFICATION_DATA and VIRTIO_F_IN_ORDER feature > bits > > for vhost vdpa backend. Also adds code to consider all feature bits > > supported by vhost net client type for feature negotiation, so that > > vhost backend device supported features can be negotiated with guest. > > > > Signed-off-by: Srujana Challa <schalla@marvell.com> > > --- > > hw/net/vhost_net.c | 10 ++++++++++ > > net/vhost-vdpa.c | 2 ++ > > 2 files changed, 12 insertions(+) > > > > diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c index > > e8e1661646..65ae8bcece 100644 > > --- a/hw/net/vhost_net.c > > +++ b/hw/net/vhost_net.c > > @@ -117,6 +117,16 @@ static const int > > *vhost_net_get_feature_bits(struct > > vhost_net *net) > > > > uint64_t vhost_net_get_features(struct vhost_net *net, uint64_t > > features) { > > + const int *bit = vhost_net_get_feature_bits(net); > > + > > + /* > > + * Consider all feature bits for feature negotiation with vhost backend, > > + * so that all backend device supported features can be negotiated. > > + */ > > + while (*bit != VHOST_INVALID_FEATURE_BIT) { > > + features |= (1ULL << *bit); > > + bit++; > > + } > > return vhost_get_features(&net->dev, vhost_net_get_feature_bits(net), > > features); > > } > > diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index > > 3726ee5d67..51334fcfe2 100644 > > --- a/net/vhost-vdpa.c > > +++ b/net/vhost-vdpa.c > > @@ -57,7 +57,9 @@ typedef struct VhostVDPAState { > > */ > > const int vdpa_feature_bits[] = { > > VIRTIO_F_ANY_LAYOUT, > > + VIRTIO_F_IN_ORDER, > > VIRTIO_F_IOMMU_PLATFORM, > > + VIRTIO_F_NOTIFICATION_DATA, > > VIRTIO_F_NOTIFY_ON_EMPTY, > > VIRTIO_F_RING_PACKED, > > VIRTIO_F_RING_RESET, > > -- > > 2.25.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] vhost_net: add NOTIFICATION_DATA and IN_ORDER feature bits to vdpa_feature_bits 2024-02-19 9:38 ` Srujana Challa @ 2024-02-19 9:46 ` Michael S. Tsirkin 0 siblings, 0 replies; 10+ messages in thread From: Michael S. Tsirkin @ 2024-02-19 9:46 UTC (permalink / raw) To: Srujana Challa Cc: Vamsi Krishna Attunuru, qemu-devel@nongnu.org, Jerin Jacob, Jason Wang Sorry this got tagged for Linux by mistake. Replied now. On Mon, Feb 19, 2024 at 09:38:46AM +0000, Srujana Challa wrote: > Ping. > > > Subject: RE: [PATCH] vhost_net: add NOTIFICATION_DATA and IN_ORDER > > feature bits to vdpa_feature_bits > > > > Hi Michael, > > > > Can you review this feature support patch, appreciate your review and > > comments. > > > > Patch considers all feature bits supported by vhost net client type as part of > > feature negotiation to address the concerns raised in below thread. > > https://patchew.org/QEMU/1533833677-27512-1-git-send-email- > > i.maximets@samsung.com/ > > > > Regards > > Vamsi > > > > > -----Original Message----- > > > From: Srujana Challa <schalla@marvell.com> > > > Sent: Tuesday, January 2, 2024 4:45 PM > > > To: qemu-devel@nongnu.org > > > Cc: mst@redhat.com; Vamsi Krishna Attunuru <vattunuru@marvell.com>; > > > Jerin Jacob Kollanukkaran <jerinj@marvell.com> > > > Subject: [PATCH] vhost_net: add NOTIFICATION_DATA and IN_ORDER > > feature > > > bits to vdpa_feature_bits > > > > > > Enables VIRTIO_F_NOTIFICATION_DATA and VIRTIO_F_IN_ORDER feature > > bits > > > for vhost vdpa backend. Also adds code to consider all feature bits > > > supported by vhost net client type for feature negotiation, so that > > > vhost backend device supported features can be negotiated with guest. > > > > > > Signed-off-by: Srujana Challa <schalla@marvell.com> > > > --- > > > hw/net/vhost_net.c | 10 ++++++++++ > > > net/vhost-vdpa.c | 2 ++ > > > 2 files changed, 12 insertions(+) > > > > > > diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c index > > > e8e1661646..65ae8bcece 100644 > > > --- a/hw/net/vhost_net.c > > > +++ b/hw/net/vhost_net.c > > > @@ -117,6 +117,16 @@ static const int > > > *vhost_net_get_feature_bits(struct > > > vhost_net *net) > > > > > > uint64_t vhost_net_get_features(struct vhost_net *net, uint64_t > > > features) { > > > + const int *bit = vhost_net_get_feature_bits(net); > > > + > > > + /* > > > + * Consider all feature bits for feature negotiation with vhost backend, > > > + * so that all backend device supported features can be negotiated. > > > + */ > > > + while (*bit != VHOST_INVALID_FEATURE_BIT) { > > > + features |= (1ULL << *bit); > > > + bit++; > > > + } > > > return vhost_get_features(&net->dev, vhost_net_get_feature_bits(net), > > > features); > > > } > > > diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index > > > 3726ee5d67..51334fcfe2 100644 > > > --- a/net/vhost-vdpa.c > > > +++ b/net/vhost-vdpa.c > > > @@ -57,7 +57,9 @@ typedef struct VhostVDPAState { > > > */ > > > const int vdpa_feature_bits[] = { > > > VIRTIO_F_ANY_LAYOUT, > > > + VIRTIO_F_IN_ORDER, > > > VIRTIO_F_IOMMU_PLATFORM, > > > + VIRTIO_F_NOTIFICATION_DATA, > > > VIRTIO_F_NOTIFY_ON_EMPTY, > > > VIRTIO_F_RING_PACKED, > > > VIRTIO_F_RING_RESET, > > > -- > > > 2.25.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] vhost_net: add NOTIFICATION_DATA and IN_ORDER feature bits to vdpa_feature_bits 2024-01-02 11:14 [PATCH] vhost_net: add NOTIFICATION_DATA and IN_ORDER feature bits to vdpa_feature_bits Srujana Challa 2024-01-31 7:10 ` Vamsi Krishna Attunuru @ 2024-02-19 9:45 ` Michael S. Tsirkin 2024-02-19 11:43 ` [EXT] " Srujana Challa 1 sibling, 1 reply; 10+ messages in thread From: Michael S. Tsirkin @ 2024-02-19 9:45 UTC (permalink / raw) To: Srujana Challa; +Cc: qemu-devel, vattunuru, jerinj, Jason Wang On Tue, Jan 02, 2024 at 04:44:32PM +0530, Srujana Challa wrote: > Enables VIRTIO_F_NOTIFICATION_DATA and VIRTIO_F_IN_ORDER feature bits > for vhost vdpa backend. Also adds code to consider all feature bits > supported by vhost net client type for feature negotiation, so that > vhost backend device supported features can be negotiated with guest. > > Signed-off-by: Srujana Challa <schalla@marvell.com> > --- > hw/net/vhost_net.c | 10 ++++++++++ > net/vhost-vdpa.c | 2 ++ > 2 files changed, 12 insertions(+) > > diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c > index e8e1661646..65ae8bcece 100644 > --- a/hw/net/vhost_net.c > +++ b/hw/net/vhost_net.c > @@ -117,6 +117,16 @@ static const int *vhost_net_get_feature_bits(struct vhost_net *net) > > uint64_t vhost_net_get_features(struct vhost_net *net, uint64_t features) > { > + const int *bit = vhost_net_get_feature_bits(net); > + > + /* > + * Consider all feature bits for feature negotiation with vhost backend, > + * so that all backend device supported features can be negotiated. > + */ > + while (*bit != VHOST_INVALID_FEATURE_BIT) { > + features |= (1ULL << *bit); > + bit++; > + } > return vhost_get_features(&net->dev, vhost_net_get_feature_bits(net), > features); > } I don't think we should do this part. With vdpa QEMU is in control of which features are exposed and that is intentional since features are often tied to other behaviour. > diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c > index 3726ee5d67..51334fcfe2 100644 > --- a/net/vhost-vdpa.c > +++ b/net/vhost-vdpa.c > @@ -57,7 +57,9 @@ typedef struct VhostVDPAState { > */ > const int vdpa_feature_bits[] = { > VIRTIO_F_ANY_LAYOUT, > + VIRTIO_F_IN_ORDER, > VIRTIO_F_IOMMU_PLATFORM, > + VIRTIO_F_NOTIFICATION_DATA, > VIRTIO_F_NOTIFY_ON_EMPTY, > VIRTIO_F_RING_PACKED, > VIRTIO_F_RING_RESET, > -- > 2.25.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* RE: [EXT] Re: [PATCH] vhost_net: add NOTIFICATION_DATA and IN_ORDER feature bits to vdpa_feature_bits 2024-02-19 9:45 ` Michael S. Tsirkin @ 2024-02-19 11:43 ` Srujana Challa 2024-02-22 7:23 ` Srujana Challa 0 siblings, 1 reply; 10+ messages in thread From: Srujana Challa @ 2024-02-19 11:43 UTC (permalink / raw) To: Michael S. Tsirkin Cc: qemu-devel@nongnu.org, Vamsi Krishna Attunuru, Jerin Jacob, Jason Wang > -----Original Message----- > From: Michael S. Tsirkin <mst@redhat.com> > Sent: Monday, February 19, 2024 3:15 PM > To: Srujana Challa <schalla@marvell.com> > Cc: qemu-devel@nongnu.org; Vamsi Krishna Attunuru > <vattunuru@marvell.com>; Jerin Jacob <jerinj@marvell.com>; Jason Wang > <jasowang@redhat.com> > Subject: [EXT] Re: [PATCH] vhost_net: add NOTIFICATION_DATA and > IN_ORDER feature bits to vdpa_feature_bits > > External Email > > ---------------------------------------------------------------------- > On Tue, Jan 02, 2024 at 04:44:32PM +0530, Srujana Challa wrote: > > Enables VIRTIO_F_NOTIFICATION_DATA and VIRTIO_F_IN_ORDER feature > bits > > for vhost vdpa backend. Also adds code to consider all feature bits > > supported by vhost net client type for feature negotiation, so that > > vhost backend device supported features can be negotiated with guest. > > > > Signed-off-by: Srujana Challa <schalla@marvell.com> > > --- > > hw/net/vhost_net.c | 10 ++++++++++ > > net/vhost-vdpa.c | 2 ++ > > 2 files changed, 12 insertions(+) > > > > diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c index > > e8e1661646..65ae8bcece 100644 > > --- a/hw/net/vhost_net.c > > +++ b/hw/net/vhost_net.c > > @@ -117,6 +117,16 @@ static const int > > *vhost_net_get_feature_bits(struct vhost_net *net) > > > > uint64_t vhost_net_get_features(struct vhost_net *net, uint64_t > > features) { > > + const int *bit = vhost_net_get_feature_bits(net); > > + > > + /* > > + * Consider all feature bits for feature negotiation with vhost backend, > > + * so that all backend device supported features can be negotiated. > > + */ > > + while (*bit != VHOST_INVALID_FEATURE_BIT) { > > + features |= (1ULL << *bit); > > + bit++; > > + } > > return vhost_get_features(&net->dev, vhost_net_get_feature_bits(net), > > features); > > } > > I don't think we should do this part. With vdpa QEMU is in control of which > features are exposed and that is intentional since features are often tied to > other behaviour. Vdpa Qemu can negotiate all the features which vdpa backend device supports with the guest right? Guest drivers (it could be userspace or kernel drivers) will negotiate their own features, so that frontend supported features will get the precedence. > > > diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index > > 3726ee5d67..51334fcfe2 100644 > > --- a/net/vhost-vdpa.c > > +++ b/net/vhost-vdpa.c > > @@ -57,7 +57,9 @@ typedef struct VhostVDPAState { > > */ > > const int vdpa_feature_bits[] = { > > VIRTIO_F_ANY_LAYOUT, > > + VIRTIO_F_IN_ORDER, > > VIRTIO_F_IOMMU_PLATFORM, > > + VIRTIO_F_NOTIFICATION_DATA, > > VIRTIO_F_NOTIFY_ON_EMPTY, > > VIRTIO_F_RING_PACKED, > > VIRTIO_F_RING_RESET, > > -- > > 2.25.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* RE: [EXT] Re: [PATCH] vhost_net: add NOTIFICATION_DATA and IN_ORDER feature bits to vdpa_feature_bits 2024-02-19 11:43 ` [EXT] " Srujana Challa @ 2024-02-22 7:23 ` Srujana Challa 2024-03-08 13:37 ` Srujana Challa 0 siblings, 1 reply; 10+ messages in thread From: Srujana Challa @ 2024-02-22 7:23 UTC (permalink / raw) To: Michael S. Tsirkin Cc: qemu-devel@nongnu.org, Vamsi Krishna Attunuru, Jerin Jacob, Jason Wang Ping. > Subject: RE: [EXT] Re: [PATCH] vhost_net: add NOTIFICATION_DATA and > IN_ORDER feature bits to vdpa_feature_bits > > > > > -----Original Message----- > > From: Michael S. Tsirkin <mst@redhat.com> > > Sent: Monday, February 19, 2024 3:15 PM > > To: Srujana Challa <schalla@marvell.com> > > Cc: qemu-devel@nongnu.org; Vamsi Krishna Attunuru > > <vattunuru@marvell.com>; Jerin Jacob <jerinj@marvell.com>; Jason Wang > > <jasowang@redhat.com> > > Subject: [EXT] Re: [PATCH] vhost_net: add NOTIFICATION_DATA and > > IN_ORDER feature bits to vdpa_feature_bits > > > > External Email > > > > ---------------------------------------------------------------------- > > On Tue, Jan 02, 2024 at 04:44:32PM +0530, Srujana Challa wrote: > > > Enables VIRTIO_F_NOTIFICATION_DATA and VIRTIO_F_IN_ORDER feature > > bits > > > for vhost vdpa backend. Also adds code to consider all feature bits > > > supported by vhost net client type for feature negotiation, so that > > > vhost backend device supported features can be negotiated with guest. > > > > > > Signed-off-by: Srujana Challa <schalla@marvell.com> > > > --- > > > hw/net/vhost_net.c | 10 ++++++++++ > > > net/vhost-vdpa.c | 2 ++ > > > 2 files changed, 12 insertions(+) > > > > > > diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c index > > > e8e1661646..65ae8bcece 100644 > > > --- a/hw/net/vhost_net.c > > > +++ b/hw/net/vhost_net.c > > > @@ -117,6 +117,16 @@ static const int > > > *vhost_net_get_feature_bits(struct vhost_net *net) > > > > > > uint64_t vhost_net_get_features(struct vhost_net *net, uint64_t > > > features) { > > > + const int *bit = vhost_net_get_feature_bits(net); > > > + > > > + /* > > > + * Consider all feature bits for feature negotiation with vhost backend, > > > + * so that all backend device supported features can be negotiated. > > > + */ > > > + while (*bit != VHOST_INVALID_FEATURE_BIT) { > > > + features |= (1ULL << *bit); > > > + bit++; > > > + } > > > return vhost_get_features(&net->dev, vhost_net_get_feature_bits(net), > > > features); > > > } > > > > I don't think we should do this part. With vdpa QEMU is in control of > > which features are exposed and that is intentional since features are > > often tied to other behaviour. > > Vdpa Qemu can negotiate all the features which vdpa backend device supports > with the guest right? > Guest drivers (it could be userspace or kernel drivers) will negotiate their own > features, so that > frontend supported features will get the precedence. > > > > > > diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index > > > 3726ee5d67..51334fcfe2 100644 > > > --- a/net/vhost-vdpa.c > > > +++ b/net/vhost-vdpa.c > > > @@ -57,7 +57,9 @@ typedef struct VhostVDPAState { > > > */ > > > const int vdpa_feature_bits[] = { > > > VIRTIO_F_ANY_LAYOUT, > > > + VIRTIO_F_IN_ORDER, > > > VIRTIO_F_IOMMU_PLATFORM, > > > + VIRTIO_F_NOTIFICATION_DATA, > > > VIRTIO_F_NOTIFY_ON_EMPTY, > > > VIRTIO_F_RING_PACKED, > > > VIRTIO_F_RING_RESET, > > > -- > > > 2.25.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* RE: [EXT] Re: [PATCH] vhost_net: add NOTIFICATION_DATA and IN_ORDER feature bits to vdpa_feature_bits 2024-02-22 7:23 ` Srujana Challa @ 2024-03-08 13:37 ` Srujana Challa 2024-03-11 8:32 ` Eugenio Perez Martin 0 siblings, 1 reply; 10+ messages in thread From: Srujana Challa @ 2024-03-08 13:37 UTC (permalink / raw) To: Michael S. Tsirkin Cc: qemu-devel@nongnu.org, Vamsi Krishna Attunuru, Jerin Jacob, Jason Wang Hi Michael, VIRTIO_F_NOTIFICATION_DATA needs to be exposed to make Marvell's device works with Qemu. Any other better ways to expose VIRTIO_F_NOTIFICATION_DATA feature bit for vhost vdpa use case? Thanks, Srujana. > Subject: RE: [EXT] Re: [PATCH] vhost_net: add NOTIFICATION_DATA and > IN_ORDER feature bits to vdpa_feature_bits > > Ping. > > > Subject: RE: [EXT] Re: [PATCH] vhost_net: add NOTIFICATION_DATA and > > IN_ORDER feature bits to vdpa_feature_bits > > > > > > > > > -----Original Message----- > > > From: Michael S. Tsirkin <mst@redhat.com> > > > Sent: Monday, February 19, 2024 3:15 PM > > > To: Srujana Challa <schalla@marvell.com> > > > Cc: qemu-devel@nongnu.org; Vamsi Krishna Attunuru > > > <vattunuru@marvell.com>; Jerin Jacob <jerinj@marvell.com>; Jason > > > Wang <jasowang@redhat.com> > > > Subject: [EXT] Re: [PATCH] vhost_net: add NOTIFICATION_DATA and > > > IN_ORDER feature bits to vdpa_feature_bits > > > > > > External Email > > > > > > -------------------------------------------------------------------- > > > -- On Tue, Jan 02, 2024 at 04:44:32PM +0530, Srujana Challa wrote: > > > > Enables VIRTIO_F_NOTIFICATION_DATA and VIRTIO_F_IN_ORDER > feature > > > bits > > > > for vhost vdpa backend. Also adds code to consider all feature > > > > bits supported by vhost net client type for feature negotiation, > > > > so that vhost backend device supported features can be negotiated with > guest. > > > > > > > > Signed-off-by: Srujana Challa <schalla@marvell.com> > > > > --- > > > > hw/net/vhost_net.c | 10 ++++++++++ > > > > net/vhost-vdpa.c | 2 ++ > > > > 2 files changed, 12 insertions(+) > > > > > > > > diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c index > > > > e8e1661646..65ae8bcece 100644 > > > > --- a/hw/net/vhost_net.c > > > > +++ b/hw/net/vhost_net.c > > > > @@ -117,6 +117,16 @@ static const int > > > > *vhost_net_get_feature_bits(struct vhost_net *net) > > > > > > > > uint64_t vhost_net_get_features(struct vhost_net *net, uint64_t > > > > features) { > > > > + const int *bit = vhost_net_get_feature_bits(net); > > > > + > > > > + /* > > > > + * Consider all feature bits for feature negotiation with vhost backend, > > > > + * so that all backend device supported features can be negotiated. > > > > + */ > > > > + while (*bit != VHOST_INVALID_FEATURE_BIT) { > > > > + features |= (1ULL << *bit); > > > > + bit++; > > > > + } > > > > return vhost_get_features(&net->dev, > vhost_net_get_feature_bits(net), > > > > features); > > > > } > > > > > > I don't think we should do this part. With vdpa QEMU is in control > > > of which features are exposed and that is intentional since features > > > are often tied to other behaviour. > > > > Vdpa Qemu can negotiate all the features which vdpa backend device > > supports with the guest right? > > Guest drivers (it could be userspace or kernel drivers) will negotiate > > their own features, so that frontend supported features will get the > > precedence. > > > > > > > > > diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index > > > > 3726ee5d67..51334fcfe2 100644 > > > > --- a/net/vhost-vdpa.c > > > > +++ b/net/vhost-vdpa.c > > > > @@ -57,7 +57,9 @@ typedef struct VhostVDPAState { > > > > */ > > > > const int vdpa_feature_bits[] = { > > > > VIRTIO_F_ANY_LAYOUT, > > > > + VIRTIO_F_IN_ORDER, > > > > VIRTIO_F_IOMMU_PLATFORM, > > > > + VIRTIO_F_NOTIFICATION_DATA, > > > > VIRTIO_F_NOTIFY_ON_EMPTY, > > > > VIRTIO_F_RING_PACKED, > > > > VIRTIO_F_RING_RESET, > > > > -- > > > > 2.25.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [EXT] Re: [PATCH] vhost_net: add NOTIFICATION_DATA and IN_ORDER feature bits to vdpa_feature_bits 2024-03-08 13:37 ` Srujana Challa @ 2024-03-11 8:32 ` Eugenio Perez Martin 2024-03-12 15:51 ` Michael S. Tsirkin 0 siblings, 1 reply; 10+ messages in thread From: Eugenio Perez Martin @ 2024-03-11 8:32 UTC (permalink / raw) To: Srujana Challa Cc: Michael S. Tsirkin, qemu-devel@nongnu.org, Vamsi Krishna Attunuru, Jerin Jacob, Jason Wang, Jonah Palmer On Fri, Mar 8, 2024 at 2:39 PM Srujana Challa <schalla@marvell.com> wrote: > > Hi Michael, > > VIRTIO_F_NOTIFICATION_DATA needs to be exposed to make Marvell's device works > with Qemu. Any other better ways to expose VIRTIO_F_NOTIFICATION_DATA feature > bit for vhost vdpa use case? > Hi! Jonah Palmer is working on implementing notification_data [1]. He's implementing it on emulated devices first but the resulting QEMU should be able to enable it for vdpa devices too. Would it be possible for you to review it, and /or test the series against your devices? And checking that everything works on emulated devices too? Thanks! [1] https://lists.nongnu.org/archive/html/qemu-devel/2024-03/msg00755.html > Thanks, > Srujana. > > > Subject: RE: [EXT] Re: [PATCH] vhost_net: add NOTIFICATION_DATA and > > IN_ORDER feature bits to vdpa_feature_bits > > > > Ping. > > > > > Subject: RE: [EXT] Re: [PATCH] vhost_net: add NOTIFICATION_DATA and > > > IN_ORDER feature bits to vdpa_feature_bits > > > > > > > > > > > > > -----Original Message----- > > > > From: Michael S. Tsirkin <mst@redhat.com> > > > > Sent: Monday, February 19, 2024 3:15 PM > > > > To: Srujana Challa <schalla@marvell.com> > > > > Cc: qemu-devel@nongnu.org; Vamsi Krishna Attunuru > > > > <vattunuru@marvell.com>; Jerin Jacob <jerinj@marvell.com>; Jason > > > > Wang <jasowang@redhat.com> > > > > Subject: [EXT] Re: [PATCH] vhost_net: add NOTIFICATION_DATA and > > > > IN_ORDER feature bits to vdpa_feature_bits > > > > > > > > External Email > > > > > > > > -------------------------------------------------------------------- > > > > -- On Tue, Jan 02, 2024 at 04:44:32PM +0530, Srujana Challa wrote: > > > > > Enables VIRTIO_F_NOTIFICATION_DATA and VIRTIO_F_IN_ORDER > > feature > > > > bits > > > > > for vhost vdpa backend. Also adds code to consider all feature > > > > > bits supported by vhost net client type for feature negotiation, > > > > > so that vhost backend device supported features can be negotiated with > > guest. > > > > > > > > > > Signed-off-by: Srujana Challa <schalla@marvell.com> > > > > > --- > > > > > hw/net/vhost_net.c | 10 ++++++++++ > > > > > net/vhost-vdpa.c | 2 ++ > > > > > 2 files changed, 12 insertions(+) > > > > > > > > > > diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c index > > > > > e8e1661646..65ae8bcece 100644 > > > > > --- a/hw/net/vhost_net.c > > > > > +++ b/hw/net/vhost_net.c > > > > > @@ -117,6 +117,16 @@ static const int > > > > > *vhost_net_get_feature_bits(struct vhost_net *net) > > > > > > > > > > uint64_t vhost_net_get_features(struct vhost_net *net, uint64_t > > > > > features) { > > > > > + const int *bit = vhost_net_get_feature_bits(net); > > > > > + > > > > > + /* > > > > > + * Consider all feature bits for feature negotiation with vhost backend, > > > > > + * so that all backend device supported features can be negotiated. > > > > > + */ > > > > > + while (*bit != VHOST_INVALID_FEATURE_BIT) { > > > > > + features |= (1ULL << *bit); > > > > > + bit++; > > > > > + } > > > > > return vhost_get_features(&net->dev, > > vhost_net_get_feature_bits(net), > > > > > features); > > > > > } > > > > > > > > I don't think we should do this part. With vdpa QEMU is in control > > > > of which features are exposed and that is intentional since features > > > > are often tied to other behaviour. > > > > > > Vdpa Qemu can negotiate all the features which vdpa backend device > > > supports with the guest right? > > > Guest drivers (it could be userspace or kernel drivers) will negotiate > > > their own features, so that frontend supported features will get the > > > precedence. > > > > > > > > > > > > diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index > > > > > 3726ee5d67..51334fcfe2 100644 > > > > > --- a/net/vhost-vdpa.c > > > > > +++ b/net/vhost-vdpa.c > > > > > @@ -57,7 +57,9 @@ typedef struct VhostVDPAState { > > > > > */ > > > > > const int vdpa_feature_bits[] = { > > > > > VIRTIO_F_ANY_LAYOUT, > > > > > + VIRTIO_F_IN_ORDER, > > > > > VIRTIO_F_IOMMU_PLATFORM, > > > > > + VIRTIO_F_NOTIFICATION_DATA, > > > > > VIRTIO_F_NOTIFY_ON_EMPTY, > > > > > VIRTIO_F_RING_PACKED, > > > > > VIRTIO_F_RING_RESET, > > > > > -- > > > > > 2.25.1 > > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [EXT] Re: [PATCH] vhost_net: add NOTIFICATION_DATA and IN_ORDER feature bits to vdpa_feature_bits 2024-03-11 8:32 ` Eugenio Perez Martin @ 2024-03-12 15:51 ` Michael S. Tsirkin 0 siblings, 0 replies; 10+ messages in thread From: Michael S. Tsirkin @ 2024-03-12 15:51 UTC (permalink / raw) To: Eugenio Perez Martin Cc: Srujana Challa, qemu-devel@nongnu.org, Vamsi Krishna Attunuru, Jerin Jacob, Jason Wang, Jonah Palmer On Mon, Mar 11, 2024 at 09:32:53AM +0100, Eugenio Perez Martin wrote: > On Fri, Mar 8, 2024 at 2:39 PM Srujana Challa <schalla@marvell.com> wrote: > > > > Hi Michael, > > > > VIRTIO_F_NOTIFICATION_DATA needs to be exposed to make Marvell's device works > > with Qemu. Any other better ways to expose VIRTIO_F_NOTIFICATION_DATA feature > > bit for vhost vdpa use case? > > > > Hi! > > Jonah Palmer is working on implementing notification_data [1]. He's > implementing it on emulated devices first but the resulting QEMU > should be able to enable it for vdpa devices too. Would it be possible > for you to review it, and /or test the series against your devices? > And checking that everything works on emulated devices too? > > Thanks! > > [1] https://lists.nongnu.org/archive/html/qemu-devel/2024-03/msg00755.html Yes, please do. And if anything is missing in his patches you can post a patch on top. > > Thanks, > > Srujana. > > > > > Subject: RE: [EXT] Re: [PATCH] vhost_net: add NOTIFICATION_DATA and > > > IN_ORDER feature bits to vdpa_feature_bits > > > > > > Ping. > > > > > > > Subject: RE: [EXT] Re: [PATCH] vhost_net: add NOTIFICATION_DATA and > > > > IN_ORDER feature bits to vdpa_feature_bits > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > From: Michael S. Tsirkin <mst@redhat.com> > > > > > Sent: Monday, February 19, 2024 3:15 PM > > > > > To: Srujana Challa <schalla@marvell.com> > > > > > Cc: qemu-devel@nongnu.org; Vamsi Krishna Attunuru > > > > > <vattunuru@marvell.com>; Jerin Jacob <jerinj@marvell.com>; Jason > > > > > Wang <jasowang@redhat.com> > > > > > Subject: [EXT] Re: [PATCH] vhost_net: add NOTIFICATION_DATA and > > > > > IN_ORDER feature bits to vdpa_feature_bits > > > > > > > > > > External Email > > > > > > > > > > -------------------------------------------------------------------- > > > > > -- On Tue, Jan 02, 2024 at 04:44:32PM +0530, Srujana Challa wrote: > > > > > > Enables VIRTIO_F_NOTIFICATION_DATA and VIRTIO_F_IN_ORDER > > > feature > > > > > bits > > > > > > for vhost vdpa backend. Also adds code to consider all feature > > > > > > bits supported by vhost net client type for feature negotiation, > > > > > > so that vhost backend device supported features can be negotiated with > > > guest. > > > > > > > > > > > > Signed-off-by: Srujana Challa <schalla@marvell.com> > > > > > > --- > > > > > > hw/net/vhost_net.c | 10 ++++++++++ > > > > > > net/vhost-vdpa.c | 2 ++ > > > > > > 2 files changed, 12 insertions(+) > > > > > > > > > > > > diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c index > > > > > > e8e1661646..65ae8bcece 100644 > > > > > > --- a/hw/net/vhost_net.c > > > > > > +++ b/hw/net/vhost_net.c > > > > > > @@ -117,6 +117,16 @@ static const int > > > > > > *vhost_net_get_feature_bits(struct vhost_net *net) > > > > > > > > > > > > uint64_t vhost_net_get_features(struct vhost_net *net, uint64_t > > > > > > features) { > > > > > > + const int *bit = vhost_net_get_feature_bits(net); > > > > > > + > > > > > > + /* > > > > > > + * Consider all feature bits for feature negotiation with vhost backend, > > > > > > + * so that all backend device supported features can be negotiated. > > > > > > + */ > > > > > > + while (*bit != VHOST_INVALID_FEATURE_BIT) { > > > > > > + features |= (1ULL << *bit); > > > > > > + bit++; > > > > > > + } > > > > > > return vhost_get_features(&net->dev, > > > vhost_net_get_feature_bits(net), > > > > > > features); > > > > > > } > > > > > > > > > > I don't think we should do this part. With vdpa QEMU is in control > > > > > of which features are exposed and that is intentional since features > > > > > are often tied to other behaviour. > > > > > > > > Vdpa Qemu can negotiate all the features which vdpa backend device > > > > supports with the guest right? > > > > Guest drivers (it could be userspace or kernel drivers) will negotiate > > > > their own features, so that frontend supported features will get the > > > > precedence. > > > > > > > > > > > > > > > diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index > > > > > > 3726ee5d67..51334fcfe2 100644 > > > > > > --- a/net/vhost-vdpa.c > > > > > > +++ b/net/vhost-vdpa.c > > > > > > @@ -57,7 +57,9 @@ typedef struct VhostVDPAState { > > > > > > */ > > > > > > const int vdpa_feature_bits[] = { > > > > > > VIRTIO_F_ANY_LAYOUT, > > > > > > + VIRTIO_F_IN_ORDER, > > > > > > VIRTIO_F_IOMMU_PLATFORM, > > > > > > + VIRTIO_F_NOTIFICATION_DATA, > > > > > > VIRTIO_F_NOTIFY_ON_EMPTY, > > > > > > VIRTIO_F_RING_PACKED, > > > > > > VIRTIO_F_RING_RESET, > > > > > > -- > > > > > > 2.25.1 > > > > ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2024-03-12 15:52 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-01-02 11:14 [PATCH] vhost_net: add NOTIFICATION_DATA and IN_ORDER feature bits to vdpa_feature_bits Srujana Challa 2024-01-31 7:10 ` Vamsi Krishna Attunuru 2024-02-19 9:38 ` Srujana Challa 2024-02-19 9:46 ` Michael S. Tsirkin 2024-02-19 9:45 ` Michael S. Tsirkin 2024-02-19 11:43 ` [EXT] " Srujana Challa 2024-02-22 7:23 ` Srujana Challa 2024-03-08 13:37 ` Srujana Challa 2024-03-11 8:32 ` Eugenio Perez Martin 2024-03-12 15:51 ` Michael S. Tsirkin
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).