From nobody Fri Feb 14 15:10:59 2025 X-Original-To: dev-commits-src-all@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 4Yvb8z5MXSz5nDy1; Fri, 14 Feb 2025 15:10:59 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Yvb8z3L12z4KLv; Fri, 14 Feb 2025 15:10:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1739545859; 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=uG8NEUfPNmeilGoigJq6PgQ0QtBgxH+eETsdW7qEzGw=; b=XAn/al3NWqgry5bY3t90OyPmEqbXhPcA+93NVllL6aqOJp8wQEuyjrDzr5gNLqn3F0Ft/9 iEOLwQceD+FvxM54YEd3leQ1ELYWeY82TKdQlF8ZELZTjdWTxgrFDukVl76TqnVs3cVR/B xo5awjEh1WceUPLQ2B/37VgqnPnnCyVO4fjmc11UcQI1eLedRzlp9gs4ael8HLnpqyHQ7U r0b5vIiTrOia1Q78p3vQgB9N5AedPyKbkld1uqBGnnBsKhgsen9FRXlFsIdCeWwlSDo08Y 4M+x1KgOZpBZAgYiVkeFSWWNjlg8gWhrqjAPYSCnJ9+PG9Pw1YdJD6nFFLVnPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1739545859; 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=uG8NEUfPNmeilGoigJq6PgQ0QtBgxH+eETsdW7qEzGw=; b=aOnfAJeV+QxqrNYRiB6JkVLhGCVk/TZ3Q6HSCdDR5XPpTktfObuu9v7f230hxHQW2GlPV9 A1idE1h4SU/mLciFnD4h+NWdooyC6vi52J2BEcbBx+RuJTpjdiUtr8cSUvIGuxI7vfu0qw NhGqLsPvrLw1sm4HbJsSBUHMr2FeQuVkh/Kxzzlkq26l/mMc3ey9IAqxucOAkZsMA44+RX jYlgd8reNE/ipaL63nvOf+/SHUe4mLCegv4Iqe/XC9wnuST8GdqkfCmBSaw2262ydvjmLh AycjWqln0QIGA0Hf5E+mbPJdNOwYtlEvBEbJ+raTEc1aKO3P5+/Q/ihZ44H7+g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1739545859; a=rsa-sha256; cv=none; b=jJUu9+Y/AdPNvg4NgeDTueuPVp6B2Zv3B4f3OB2aQyM4c6OWPi/LgDicT5RDK3VQ3fNyYw rjvWtidC0cAwcAiU8rcQU4PPRmKeANzGaE6oveIrk1WKApA0qyuJ9+1/1INJ5NB3jL/obN MEtjfZczWWm3wN2EHlwcGfyW40myOYIr54hEH9xJ0ofSM0ryDiQIkUhZW5WfwJPT1xLSFq XpG+DwrZAFDCSM64v4FQeok7cRxM2ZCnKFyD9jz4eVhOjBUrvfQKbwCfV7tBGhmrLRMB0m GvThrW/bv4kVUSuqr3Lml+NA3OV3oH/0coIiS48uNQPwyorf+kcxGe4OmhZ8Hw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4Yvb8z2gYPzcYW; Fri, 14 Feb 2025 15:10:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 51EFAxZB063359; Fri, 14 Feb 2025 15:10:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 51EFAxE0063356; Fri, 14 Feb 2025 15:10:59 GMT (envelope-from git) Date: Fri, 14 Feb 2025 15:10:59 GMT Message-Id: <202502141510.51EFAxE0063356@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 031800c78682 - main - gve: Do minor cleanup and bump version List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 031800c786823a9ad4c4d2f79f217d42dad3f5d1 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=031800c786823a9ad4c4d2f79f217d42dad3f5d1 commit 031800c786823a9ad4c4d2f79f217d42dad3f5d1 Author: Jasper Tran O'Leary AuthorDate: 2025-02-14 15:04:16 +0000 Commit: Mark Johnston CommitDate: 2025-02-14 15:08:23 +0000 gve: Do minor cleanup and bump version This commit fixes several minor issues: - Removes an unnecessary function pointer parameter on gve_start_tx_ring - Adds a presubmit check against style(9) - Replaces mb() and rmb() macros with native atomic_thread_fence_seq_cst() and atomic_thread_fence_acq() respectively - Fixes various typos throughout - Increments the version number to 1.3.2 Co-authored-by: Vee Agarwal Signed-off-by: Vee Agarwal Signed-off-by: Jasper Tran O'Leary Reviewed by: delphij, markj MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D48969 --- sys/dev/gve/gve.h | 6 +++--- sys/dev/gve/gve_desc.h | 4 ++-- sys/dev/gve/gve_main.c | 6 +++--- sys/dev/gve/gve_rx.c | 2 +- sys/dev/gve/gve_rx_dqo.c | 2 +- sys/dev/gve/gve_sysctl.c | 4 ++-- sys/dev/gve/gve_tx.c | 16 +++++++--------- sys/dev/gve/gve_tx_dqo.c | 2 +- 8 files changed, 20 insertions(+), 22 deletions(-) diff --git a/sys/dev/gve/gve.h b/sys/dev/gve/gve.h index 92ab6838d5bb..39965c8669cf 100644 --- a/sys/dev/gve/gve.h +++ b/sys/dev/gve/gve.h @@ -303,7 +303,7 @@ struct gve_rx_ring { SLIST_HEAD(, gve_rx_buf_dqo) free_bufs; /* - * Only used in QPL mode. Pages refered to by if_input-ed mbufs + * Only used in QPL mode. Pages referred to by if_input-ed mbufs * stay parked here till their wire count comes back to 1. * Pages are moved here after there aren't any pending completions. */ @@ -450,7 +450,7 @@ struct gve_tx_ring { /* * The completion taskqueue moves pending-packet objects to this * list after freeing the mbuf. The "_prd" denotes that this is - * a producer list. The trasnmit taskqueue steals this list once + * a producer list. The transmit taskqueue steals this list once * its consumer list, with the "_csm" suffix, is depleted. */ int32_t free_pending_pkts_prd; @@ -458,7 +458,7 @@ struct gve_tx_ring { /* * The completion taskqueue moves the QPL pages corresponding to a * completed packet into this list. It is only used in QPL mode. - * The "_prd" denotes that this is a producer list. The trasnmit + * The "_prd" denotes that this is a producer list. The transmit * taskqueue steals this list once its consumer list, with the "_csm" * suffix, is depleted. * diff --git a/sys/dev/gve/gve_desc.h b/sys/dev/gve/gve_desc.h index 5f09cc8b77b8..48c4ac27596b 100644 --- a/sys/dev/gve/gve_desc.h +++ b/sys/dev/gve/gve_desc.h @@ -130,10 +130,10 @@ union gve_rx_data_slot { __be64 addr; }; -/* GVE Recive Packet Descriptor Seq No */ +/* GVE Receive Packet Descriptor Seq No */ #define GVE_SEQNO(x) (be16toh(x) & 0x7) -/* GVE Recive Packet Descriptor Flags */ +/* GVE Receive Packet Descriptor Flags */ #define GVE_RXFLG(x) htobe16(1 << (3 + (x))) #define GVE_RXF_FRAG GVE_RXFLG(3) /* IP Fragment */ #define GVE_RXF_IPV4 GVE_RXFLG(4) /* IPv4 */ diff --git a/sys/dev/gve/gve_main.c b/sys/dev/gve/gve_main.c index aa0866c5984b..8e764f9660d7 100644 --- a/sys/dev/gve/gve_main.c +++ b/sys/dev/gve/gve_main.c @@ -32,10 +32,10 @@ #include "gve_adminq.h" #include "gve_dqo.h" -#define GVE_DRIVER_VERSION "GVE-FBSD-1.3.1\n" +#define GVE_DRIVER_VERSION "GVE-FBSD-1.3.2\n" #define GVE_VERSION_MAJOR 1 #define GVE_VERSION_MINOR 3 -#define GVE_VERSION_SUB 1 +#define GVE_VERSION_SUB 2 #define GVE_DEFAULT_RX_COPYBREAK 256 @@ -391,7 +391,7 @@ gve_setup_ifnet(device_t dev, struct gve_priv *priv) /* * Set TSO limits, must match the arguments to bus_dma_tag_create * when creating tx->dqo.buf_dmatag. Only applies to the RDA mode - * because in QPL we copy the entire pakcet into the bounce buffer + * because in QPL we copy the entire packet into the bounce buffer * and thus it does not matter how fragmented the mbuf is. */ if (!gve_is_gqi(priv) && !gve_is_qpl(priv)) { diff --git a/sys/dev/gve/gve_rx.c b/sys/dev/gve/gve_rx.c index 35f22f2308f0..e540ad6f4c11 100644 --- a/sys/dev/gve/gve_rx.c +++ b/sys/dev/gve/gve_rx.c @@ -706,7 +706,7 @@ gve_rx_cleanup_tq(void *arg, int pending) * interrupt but they will still be handled by the enqueue below. * Fragments received after the barrier WILL trigger an interrupt. */ - mb(); + atomic_thread_fence_seq_cst(); if (gve_rx_work_pending(rx)) { gve_db_bar_write_4(priv, rx->com.irq_db_offset, GVE_IRQ_MASK); diff --git a/sys/dev/gve/gve_rx_dqo.c b/sys/dev/gve/gve_rx_dqo.c index 6c5d656aaa04..6ce9ddd887d0 100644 --- a/sys/dev/gve/gve_rx_dqo.c +++ b/sys/dev/gve/gve_rx_dqo.c @@ -972,7 +972,7 @@ gve_rx_cleanup_dqo(struct gve_priv *priv, struct gve_rx_ring *rx, int budget) * Prevent generation bit from being read after the rest of the * descriptor. */ - rmb(); + atomic_thread_fence_acq(); rx->cnt++; rx->dqo.tail = (rx->dqo.tail + 1) & rx->dqo.mask; diff --git a/sys/dev/gve/gve_sysctl.c b/sys/dev/gve/gve_sysctl.c index 7a091d9caa43..c96d082837a4 100644 --- a/sys/dev/gve/gve_sysctl.c +++ b/sys/dev/gve/gve_sysctl.c @@ -94,7 +94,7 @@ gve_setup_rxq_sysctl(struct sysctl_ctx_list *ctx, SYSCTL_ADD_COUNTER_U64(ctx, list, OID_AUTO, "rx_mbuf_dmamap_err", CTLFLAG_RD, &stats->rx_mbuf_dmamap_err, - "Number of rx mbufs which couldnt be dma mapped"); + "Number of rx mbufs which could not be dma mapped"); SYSCTL_ADD_COUNTER_U64(ctx, list, OID_AUTO, "rx_mbuf_mclget_null", CTLFLAG_RD, &stats->rx_mbuf_mclget_null, @@ -170,7 +170,7 @@ gve_setup_txq_sysctl(struct sysctl_ctx_list *ctx, SYSCTL_ADD_COUNTER_U64(ctx, tx_list, OID_AUTO, "tx_mbuf_collpase", CTLFLAG_RD, &stats->tx_mbuf_collapse, - "tx mbufs that had to be collpased"); + "tx mbufs that had to be collapsed"); SYSCTL_ADD_COUNTER_U64(ctx, tx_list, OID_AUTO, "tx_mbuf_defrag", CTLFLAG_RD, &stats->tx_mbuf_defrag, diff --git a/sys/dev/gve/gve_tx.c b/sys/dev/gve/gve_tx.c index e7e10e526cb9..04dde4f1a79b 100644 --- a/sys/dev/gve/gve_tx.c +++ b/sys/dev/gve/gve_tx.c @@ -240,15 +240,16 @@ gve_clear_tx_ring(struct gve_priv *priv, int i) } static void -gve_start_tx_ring(struct gve_priv *priv, int i, - void (cleanup) (void *arg, int pending)) +gve_start_tx_ring(struct gve_priv *priv, int i) { struct gve_tx_ring *tx = &priv->tx[i]; struct gve_ring_com *com = &tx->com; atomic_store_bool(&tx->stopped, false); - - NET_TASK_INIT(&com->cleanup_task, 0, cleanup, tx); + if (gve_is_gqi(priv)) + NET_TASK_INIT(&com->cleanup_task, 0, gve_tx_cleanup_tq, tx); + else + NET_TASK_INIT(&com->cleanup_task, 0, gve_tx_cleanup_tq_dqo, tx); com->cleanup_tq = taskqueue_create_fast("gve tx", M_WAITOK, taskqueue_thread_enqueue, &com->cleanup_tq); taskqueue_start_threads(&com->cleanup_tq, 1, PI_NET, "%s txq %d", @@ -297,10 +298,7 @@ gve_create_tx_rings(struct gve_priv *priv) com->db_offset = 4 * be32toh(com->q_resources->db_index); com->counter_idx = be32toh(com->q_resources->counter_index); - if (gve_is_gqi(priv)) - gve_start_tx_ring(priv, i, gve_tx_cleanup_tq); - else - gve_start_tx_ring(priv, i, gve_tx_cleanup_tq_dqo); + gve_start_tx_ring(priv, i); } gve_set_state_flag(priv, GVE_STATE_FLAG_TX_RINGS_OK); @@ -421,7 +419,7 @@ gve_tx_cleanup_tq(void *arg, int pending) * interrupt but they will still be handled by the enqueue below. * Completions born after the barrier WILL trigger an interrupt. */ - mb(); + atomic_thread_fence_seq_cst(); nic_done = gve_tx_load_event_counter(priv, tx); todo = nic_done - tx->done; diff --git a/sys/dev/gve/gve_tx_dqo.c b/sys/dev/gve/gve_tx_dqo.c index fab2d6d0f613..b4bcb1fd01c5 100644 --- a/sys/dev/gve/gve_tx_dqo.c +++ b/sys/dev/gve/gve_tx_dqo.c @@ -1031,7 +1031,7 @@ gve_tx_cleanup_dqo(struct gve_priv *priv, struct gve_tx_ring *tx, int budget) * Prevent generation bit from being read after the rest of the * descriptor. */ - rmb(); + atomic_thread_fence_acq(); type = compl_desc->type; if (type == GVE_COMPL_TYPE_DQO_DESC) {