* [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-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: [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: [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).