All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gavin Li <gavinl@nvidia.com>
To: stephen@networkplumber.org, davem@davemloft.net,
	jesse.brandeburg@intel.com, alexander.h.duyck@intel.com,
	kuba@kernel.org, sridhar.samudrala@intel.com,
	jasowang@redhat.com, loseweigh@gmail.com, netdev@vger.kernel.org,
	virtualization@lists.linux-foundation.org,
	virtio-dev@lists.oasis-open.org, mst@redhat.com
Cc: gavi@nvidia.com, parav@nvidia.com,
	Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	Si-Wei Liu <si-wei.liu@oracle.com>
Subject: [virtio-dev] [PATCH v5 1/2] virtio-net: introduce and use helper function for guest gso support checks
Date: Thu, 1 Sep 2022 05:10:37 +0300	[thread overview]
Message-ID: <20220901021038.84751-2-gavinl@nvidia.com> (raw)
In-Reply-To: <20220901021038.84751-1-gavinl@nvidia.com>

Probe routine is already several hundred lines.
Use helper function for guest gso support check.

Signed-off-by: Gavin Li <gavinl@nvidia.com>
Reviewed-by: Gavi Teitz <gavi@nvidia.com>
Reviewed-by: Parav Pandit <parav@nvidia.com>
Reviewed-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Reviewed-by: Si-Wei Liu <si-wei.liu@oracle.com>
---
changelog:
v4->v5
- Addressed comments from Michael S. Tsirkin
- Remove unnecessary () in return clause
v1->v2
- Add new patch
---
 drivers/net/virtio_net.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index 9cce7dec7366..f831a0290998 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -3682,6 +3682,14 @@ static int virtnet_validate(struct virtio_device *vdev)
 	return 0;
 }
 
+static bool virtnet_check_guest_gso(const struct virtnet_info *vi)
+{
+	return virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_TSO4) ||
+		virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_TSO6) ||
+		virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_ECN) ||
+		virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_UFO);
+}
+
 static int virtnet_probe(struct virtio_device *vdev)
 {
 	int i, err = -ENOMEM;
@@ -3777,10 +3785,7 @@ static int virtnet_probe(struct virtio_device *vdev)
 	spin_lock_init(&vi->refill_lock);
 
 	/* If we can receive ANY GSO packets, we must allocate large ones. */
-	if (virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO4) ||
-	    virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO6) ||
-	    virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_ECN) ||
-	    virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_UFO))
+	if (virtnet_check_guest_gso(vi))
 		vi->big_packets = true;
 
 	if (virtio_has_feature(vdev, VIRTIO_NET_F_MRG_RXBUF))
-- 
2.31.1


---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


WARNING: multiple messages have this Message-ID (diff)
From: Gavin Li <gavinl@nvidia.com>
To: <stephen@networkplumber.org>, <davem@davemloft.net>,
	<jesse.brandeburg@intel.com>, <alexander.h.duyck@intel.com>,
	<kuba@kernel.org>, <sridhar.samudrala@intel.com>,
	<jasowang@redhat.com>, <loseweigh@gmail.com>,
	<netdev@vger.kernel.org>,
	<virtualization@lists.linux-foundation.org>,
	<virtio-dev@lists.oasis-open.org>, <mst@redhat.com>
Cc: <gavi@nvidia.com>, <parav@nvidia.com>,
	Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	Si-Wei Liu <si-wei.liu@oracle.com>
Subject: [PATCH v5 1/2] virtio-net: introduce and use helper function for guest gso support checks
Date: Thu, 1 Sep 2022 05:10:37 +0300	[thread overview]
Message-ID: <20220901021038.84751-2-gavinl@nvidia.com> (raw)
In-Reply-To: <20220901021038.84751-1-gavinl@nvidia.com>

Probe routine is already several hundred lines.
Use helper function for guest gso support check.

Signed-off-by: Gavin Li <gavinl@nvidia.com>
Reviewed-by: Gavi Teitz <gavi@nvidia.com>
Reviewed-by: Parav Pandit <parav@nvidia.com>
Reviewed-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Reviewed-by: Si-Wei Liu <si-wei.liu@oracle.com>
---
changelog:
v4->v5
- Addressed comments from Michael S. Tsirkin
- Remove unnecessary () in return clause
v1->v2
- Add new patch
---
 drivers/net/virtio_net.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index 9cce7dec7366..f831a0290998 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -3682,6 +3682,14 @@ static int virtnet_validate(struct virtio_device *vdev)
 	return 0;
 }
 
+static bool virtnet_check_guest_gso(const struct virtnet_info *vi)
+{
+	return virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_TSO4) ||
+		virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_TSO6) ||
+		virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_ECN) ||
+		virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_UFO);
+}
+
 static int virtnet_probe(struct virtio_device *vdev)
 {
 	int i, err = -ENOMEM;
@@ -3777,10 +3785,7 @@ static int virtnet_probe(struct virtio_device *vdev)
 	spin_lock_init(&vi->refill_lock);
 
 	/* If we can receive ANY GSO packets, we must allocate large ones. */
-	if (virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO4) ||
-	    virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO6) ||
-	    virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_ECN) ||
-	    virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_UFO))
+	if (virtnet_check_guest_gso(vi))
 		vi->big_packets = true;
 
 	if (virtio_has_feature(vdev, VIRTIO_NET_F_MRG_RXBUF))
-- 
2.31.1


  reply	other threads:[~2022-09-01  2:11 UTC|newest]

Thread overview: 108+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-01  2:10 [virtio-dev] [PATCH v5 0/2] Improve virtio performance for 9k mtu Gavin Li
2022-09-01  2:10 ` Gavin Li
2022-09-01  2:10 ` Gavin Li [this message]
2022-09-01  2:10   ` [PATCH v5 1/2] virtio-net: introduce and use helper function for guest gso support checks Gavin Li
2022-09-07  2:12   ` [virtio-dev] " Jason Wang
2022-09-01  2:10 ` [virtio-dev] [PATCH v5 2/2] virtio-net: use mtu size as buffer length for big packets Gavin Li
2022-09-01  2:10   ` Gavin Li
2022-09-07  2:17   ` [virtio-dev] " Jason Wang
2022-09-07  2:17     ` Jason Wang
2022-09-07  2:17     ` Jason Wang
2022-09-07  3:15     ` Gavin Li
2022-09-07  3:15       ` Gavin Li
2022-09-07  3:29       ` Gavin Li
2022-09-07  3:29         ` Gavin Li
2022-09-07  5:31   ` [virtio-dev] " Michael S. Tsirkin
2022-09-07  5:31     ` Michael S. Tsirkin
2022-09-07  5:31     ` Michael S. Tsirkin
2022-09-07  8:08     ` [virtio-dev] " Gavin Li
2022-09-07  8:08       ` Gavin Li
2022-09-07  9:26       ` [virtio-dev] " Michael S. Tsirkin
2022-09-07  9:26         ` Michael S. Tsirkin
2022-09-07  9:26         ` Michael S. Tsirkin
2022-09-07 14:08         ` [virtio-dev] " Parav Pandit
2022-09-07 14:08           ` Parav Pandit
2022-09-07 14:08           ` Parav Pandit via Virtualization
2022-09-07 14:29           ` [virtio-dev] " Michael S. Tsirkin
2022-09-07 14:29             ` Michael S. Tsirkin
2022-09-07 14:29             ` Michael S. Tsirkin
2022-09-07 14:33             ` [virtio-dev] " Parav Pandit
2022-09-07 14:33               ` Parav Pandit
2022-09-07 14:33               ` Parav Pandit via Virtualization
2022-09-07 14:40               ` [virtio-dev] " Michael S. Tsirkin
2022-09-07 14:40                 ` Michael S. Tsirkin
2022-09-07 14:40                 ` Michael S. Tsirkin
2022-09-07 16:12                 ` [virtio-dev] " Parav Pandit
2022-09-07 16:12                   ` Parav Pandit
2022-09-07 16:12                   ` Parav Pandit via Virtualization
2022-09-07 18:15                   ` [virtio-dev] " Michael S. Tsirkin
2022-09-07 18:15                     ` Michael S. Tsirkin
2022-09-07 18:15                     ` Michael S. Tsirkin
2022-09-07 19:06                     ` [virtio-dev] " Parav Pandit
2022-09-07 19:06                       ` Parav Pandit
2022-09-07 19:06                       ` Parav Pandit via Virtualization
2022-09-07 19:11                       ` [virtio-dev] " Michael S. Tsirkin
2022-09-07 19:11                         ` Michael S. Tsirkin
2022-09-07 19:11                         ` Michael S. Tsirkin
2022-09-07 19:18                         ` [virtio-dev] " Parav Pandit
2022-09-07 19:18                           ` Parav Pandit
2022-09-07 19:18                           ` Parav Pandit via Virtualization
2022-09-07 19:23                           ` [virtio-dev] " Michael S. Tsirkin
2022-09-07 19:23                             ` Michael S. Tsirkin
2022-09-07 19:23                             ` Michael S. Tsirkin
2022-09-07 19:27                             ` [virtio-dev] " Parav Pandit
2022-09-07 19:27                               ` Parav Pandit
2022-09-07 19:27                               ` Parav Pandit via Virtualization
2022-09-07 19:36                               ` [virtio-dev] " Michael S. Tsirkin
2022-09-07 19:36                                 ` Michael S. Tsirkin
2022-09-07 19:36                                 ` Michael S. Tsirkin
2022-09-07 19:37                                 ` [virtio-dev] " Michael S. Tsirkin
2022-09-07 19:37                                   ` Michael S. Tsirkin
2022-09-07 19:37                                   ` Michael S. Tsirkin
2022-09-07 19:54                                   ` [virtio-dev] " Parav Pandit
2022-09-07 19:54                                     ` Parav Pandit
2022-09-07 19:54                                     ` Parav Pandit via Virtualization
2022-09-07 19:51                                 ` [virtio-dev] " Parav Pandit
2022-09-07 19:51                                   ` Parav Pandit
2022-09-07 19:51                                   ` Parav Pandit via Virtualization
2022-09-07 21:39                                   ` [virtio-dev] " Si-Wei Liu
2022-09-07 21:39                                     ` Si-Wei Liu
2022-09-07 21:39                                     ` Si-Wei Liu
2022-09-07 22:11                                     ` Parav Pandit
2022-09-07 22:11                                       ` Parav Pandit via Virtualization
2022-09-07 22:57                                       ` Si-Wei Liu
2022-09-07 22:57                                         ` Si-Wei Liu
2022-09-07 22:57                                         ` Si-Wei Liu
2022-09-22  9:26                                   ` [virtio-dev] " Michael S. Tsirkin
2022-09-22  9:26                                     ` Michael S. Tsirkin
2022-09-22  9:26                                     ` Michael S. Tsirkin
2022-09-22 10:07                                     ` [virtio-dev] " Parav Pandit
2022-09-22 10:07                                       ` Parav Pandit
2022-09-22 10:07                                       ` Parav Pandit via Virtualization
2022-09-07 20:04                                 ` [virtio-dev] " Parav Pandit
2022-09-07 20:04                                   ` Parav Pandit
2022-09-07 20:04                                   ` Parav Pandit via Virtualization
2022-09-22  9:35   ` [virtio-dev] " Michael S. Tsirkin
2022-09-22  9:35     ` Michael S. Tsirkin
2022-09-22  9:35     ` Michael S. Tsirkin
2022-09-22 10:04     ` [virtio-dev] " Parav Pandit
2022-09-22 10:04       ` Parav Pandit
2022-09-22 10:04       ` Parav Pandit via Virtualization
2022-09-22 10:14       ` [virtio-dev] " Michael S. Tsirkin
2022-09-22 10:14         ` Michael S. Tsirkin
2022-09-22 10:14         ` Michael S. Tsirkin
2022-09-22 10:29         ` [virtio-dev] " Parav Pandit
2022-09-22 10:29           ` Parav Pandit
2022-09-22 10:29           ` Parav Pandit via Virtualization
2022-09-22 12:34         ` Jakub Kicinski
2022-10-05 10:29           ` [virtio-dev] " Parav Pandit
2022-10-05 10:29             ` Parav Pandit
2022-10-05 10:29             ` Parav Pandit via Virtualization
2022-09-06 13:50 ` [virtio-dev] [PATCH v5 0/2] Improve virtio performance for 9k mtu Gavin Li
2022-09-07  2:57 ` Gavin Li
2022-09-07  2:57   ` Gavin Li
2022-09-19 15:35   ` Jakub Kicinski
2022-09-20 13:40     ` Gavin Li
2022-09-20 13:45     ` Gavin Li
2022-09-20 13:45       ` Gavin Li
2022-09-22  0:25       ` Jakub Kicinski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220901021038.84751-2-gavinl@nvidia.com \
    --to=gavinl@nvidia.com \
    --cc=alexander.h.duyck@intel.com \
    --cc=davem@davemloft.net \
    --cc=gavi@nvidia.com \
    --cc=jasowang@redhat.com \
    --cc=jesse.brandeburg@intel.com \
    --cc=kuba@kernel.org \
    --cc=loseweigh@gmail.com \
    --cc=mst@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=parav@nvidia.com \
    --cc=si-wei.liu@oracle.com \
    --cc=sridhar.samudrala@intel.com \
    --cc=stephen@networkplumber.org \
    --cc=virtio-dev@lists.oasis-open.org \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=xuanzhuo@linux.alibaba.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.