From nobody Fri Sep 15 09:21:06 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Rn7wL6X41z4tSQg; Fri, 15 Sep 2023 09:21:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rn7wL65zPz4ZNl; Fri, 15 Sep 2023 09:21:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694769666; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YdVjw+y/zOUbNI4MOJaUKvZP3apcXQkfUCjZ3U/9S3A=; b=ngrJtOTU/lyGagKoFYT4Z9wxFsp99IO/7Y8D9GYwpTqdJW5R3YuehXnXO+VyLl0/UJKBAs Bw3bPeUOopQgLrG88Blk59/rB3RrkTq342c5HZY3tTk9xhz8FRSnvekxZ56N071LTXTlpi oKJ3+eWJPduylcg8RfjrAT4QMQVLW7DnYmxSeNlbBDT0pdTGpEWOnIhiqhmUw9D1GmSNxZ RMT5MJpUqwP8srFbAGq1AfJZMn2PvlzupjPR5ggDJXfErFigMPWArH9jma3unYMOa1qtGp ajigP04ErayfLiigP7/eFBT31VvQBanW1HJqm9zW3IsLTIVTcX5u8fZLQGTCTA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694769666; a=rsa-sha256; cv=none; b=STTRY8ZF0dhWDq3XEJvVQ8bRQS7QIuLseOwCV4YY8RwhKdKHjV9AmXCjGK0toqOR7fFAaR xcj0DaGoTuIJDJD76EMt1U8mFNCSmXuLAzQWcF4U2MjrbMA2XcSTkgOLA/ygXKKXFehsTs ovYLm9N6nEfS/vMxKO62k4pt1nojZmc0Yu3nk6Tj8jCN8ldIxLDst6Iu+E+LNTgcVln8pZ vE1vM5gStnENIAGDDG4aQJAlDbiBFYLUBkkRDN5OTd4FC+Mm0j3jmDrJ3wPAX9kvxJwHFL rOFDOwK1JL49Tfqyv3Euixsf6iqAxs7JSxXRdkUmOomdiu0YZV4BjQyYzbFrsw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694769666; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YdVjw+y/zOUbNI4MOJaUKvZP3apcXQkfUCjZ3U/9S3A=; b=NFqUOkbFxuAhBno7u0thpKtjO3betaQI/bA1jxN/n4JCTK0nsojm0V+eUN12sFzk/nCN1C dP9fHH2F/OH4Uk7BWBrki+z3IQxKZEtwuoSVn8PCRBqLmsfUYe/xCB478j0qqHUnbghK/e 5vqeVdvRYBxuGgGB83oB8/FCmhs04495qsNbmc+N6AefJQXz8FI3QddFabPzE1MOwoYJy1 zWz4cr48qaKw5PZ1JB2Q5H7YT+6+w0AeI60C3ajcvLeDLUj1VQzO113T9yfRkme7XuW6EX zoJTFmp/od9DR1xAUzy2a6VVt5NqUViE4D9LHxGgNgyZRv7ZdUXd9Ix68IXC6A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Rn7wL57Rdz3gj; Fri, 15 Sep 2023 09:21:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38F9L6MD018598; Fri, 15 Sep 2023 09:21:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38F9L6tx018595; Fri, 15 Sep 2023 09:21:06 GMT (envelope-from git) Date: Fri, 15 Sep 2023 09:21:06 GMT Message-Id: <202309150921.38F9L6tx018595@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Wei Hu Subject: git: 8d60ede293eb - releng/14.0 - mana: fix tso parameters and set hwassist bits List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: whu X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.0 X-Git-Reftype: branch X-Git-Commit: 8d60ede293eb4b7e64a67bc11bf1465e6b63ef89 Auto-Submitted: auto-generated The branch releng/14.0 has been updated by whu: URL: https://cgit.FreeBSD.org/src/commit/?id=8d60ede293eb4b7e64a67bc11bf1465e6b63ef89 commit 8d60ede293eb4b7e64a67bc11bf1465e6b63ef89 Author: Wei Hu AuthorDate: 2023-09-04 14:53:10 +0000 Commit: Wei Hu CommitDate: 2023-09-15 09:20:37 +0000 mana: fix tso parameters and set hwassist bits The parameters for tso on mana were not set correctly. Also the hwassist bits were not set. These two cause tso on mana not work. Fixed the issues and make tso working on mana. Approved by: re (gjb) Tested by: whu Sponsored by: Microsoft (cherry picked from commit 643fd7b4bc57de87ddfeb75a8f0bdb27dbb8c3ce) (cherry picked from commit 4b22565f8598f2890d41e179fd36a0845f781262) --- sys/dev/mana/mana.h | 1 + sys/dev/mana/mana_en.c | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/sys/dev/mana/mana.h b/sys/dev/mana/mana.h index df527df10296..9a22ea87baa3 100644 --- a/sys/dev/mana/mana.h +++ b/sys/dev/mana/mana.h @@ -186,6 +186,7 @@ struct mana_txq { */ #define MAX_MBUF_FRAGS 30 #define MANA_TSO_MAXSEG_SZ PAGE_SIZE +#define MANA_TSO_MAX_SZ IP_MAXPACKET /* mbuf data and frags dma mappings */ struct mana_mbuf_head { diff --git a/sys/dev/mana/mana_en.c b/sys/dev/mana/mana_en.c index fa49e06e4862..56fa4e51ba26 100644 --- a/sys/dev/mana/mana_en.c +++ b/sys/dev/mana/mana_en.c @@ -798,8 +798,7 @@ mana_init_port_context(struct mana_port_context *apc) uint32_t tso_maxsize; int err; - tso_maxsize = MAX_MBUF_FRAGS * MANA_TSO_MAXSEG_SZ - - (ETHER_HDR_LEN + ETHER_VLAN_ENCAP_LEN); + tso_maxsize = MANA_TSO_MAX_SZ; /* Create DMA tag for tx bufs */ err = bus_dma_tag_create(bus_get_dma_tag(dev), /* parent */ @@ -2712,6 +2711,7 @@ mana_probe_port(struct mana_context *ac, int port_idx, { struct gdma_context *gc = ac->gdma_dev->gdma_context; struct mana_port_context *apc; + uint32_t hwassist; if_t ndev; int err; @@ -2774,11 +2774,21 @@ mana_probe_port(struct mana_context *ac, int port_idx, if_setcapenable(ndev, if_getcapabilities(ndev)); /* TSO parameters */ - if_sethwtsomax(ndev, MAX_MBUF_FRAGS * MANA_TSO_MAXSEG_SZ - + if_sethwtsomax(ndev, MANA_TSO_MAX_SZ - (ETHER_HDR_LEN + ETHER_VLAN_ENCAP_LEN)); if_sethwtsomaxsegcount(ndev, MAX_MBUF_FRAGS); if_sethwtsomaxsegsize(ndev, PAGE_SIZE); + hwassist = 0; + if (if_getcapenable(ndev) & (IFCAP_TSO4 | IFCAP_TSO6)) + hwassist |= CSUM_TSO; + if (if_getcapenable(ndev) & IFCAP_TXCSUM) + hwassist |= (CSUM_TCP | CSUM_UDP | CSUM_IP); + if (if_getcapenable(ndev) & IFCAP_TXCSUM_IPV6) + hwassist |= (CSUM_UDP_IPV6 | CSUM_TCP_IPV6); + mana_dbg(NULL, "set hwassist 0x%x\n", hwassist); + if_sethwassist(ndev, hwassist); + ifmedia_init(&apc->media, IFM_IMASK, mana_ifmedia_change, mana_ifmedia_status); ifmedia_add(&apc->media, IFM_ETHER | IFM_AUTO, 0, NULL);