VIRTIO_F_IN_ORDER and VIRTIO_F_NOTIFICATION_DATA feature are important feature for dpdk vdpa packets transmitting performance, add the 2 features at vhost-user front-end to negotiation with backend.
Signed-off-by: Kyle Xu <zhenbing...@corigine.com> Signed-off-by: Wentao Jia <wentao....@corigine.com> Reviewed-by: Xinying Yu <xinying...@corigine.com> Reviewed-by: Shujing Dong <shujing.d...@corigine.com> Reviewed-by: Rick Zhong <zhaoyong.zh...@corigine.com> --- hw/core/machine.c | 2 ++ hw/net/vhost_net.c | 2 ++ hw/net/virtio-net.c | 4 ++++ 3 files changed, 8 insertions(+) diff --git a/hw/core/machine.c b/hw/core/machine.c index fb5afdcae4..e620f5e7d0 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -40,6 +40,7 @@ GlobalProperty hw_compat_8_1[] = { { "ramfb", "x-migrate", "off" }, { "vfio-pci-nohotplug", "x-ramfb-migrate", "off" }, { "igb", "x-pcie-flr-init", "off" }, + { TYPE_VIRTIO_NET, "notification_data", "off"}, }; const size_t hw_compat_8_1_len = G_N_ELEMENTS(hw_compat_8_1); @@ -65,6 +66,7 @@ GlobalProperty hw_compat_7_1[] = { { "virtio-rng-pci", "vectors", "0" }, { "virtio-rng-pci-transitional", "vectors", "0" }, { "virtio-rng-pci-non-transitional", "vectors", "0" }, + { TYPE_VIRTIO_NET, "in_order", "off"}, }; const size_t hw_compat_7_1_len = G_N_ELEMENTS(hw_compat_7_1); diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c index e8e1661646..211ca859a6 100644 --- a/hw/net/vhost_net.c +++ b/hw/net/vhost_net.c @@ -76,6 +76,8 @@ static const int user_feature_bits[] = { VIRTIO_F_IOMMU_PLATFORM, VIRTIO_F_RING_PACKED, VIRTIO_F_RING_RESET, + VIRTIO_F_IN_ORDER, + VIRTIO_F_NOTIFICATION_DATA, VIRTIO_NET_F_RSS, VIRTIO_NET_F_HASH_REPORT, VIRTIO_NET_F_GUEST_USO4, diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index 7a2846fa1c..dc0a028934 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -3949,6 +3949,10 @@ static Property virtio_net_properties[] = { VIRTIO_NET_F_GUEST_USO6, true), DEFINE_PROP_BIT64("host_uso", VirtIONet, host_features, VIRTIO_NET_F_HOST_USO, true), + DEFINE_PROP_BIT64("in_order", VirtIONet, host_features, + VIRTIO_F_IN_ORDER, true), + DEFINE_PROP_BIT64("notification_data", VirtIONet, host_features, + VIRTIO_F_NOTIFICATION_DATA, true), DEFINE_PROP_END_OF_LIST(), }; --