From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D4E06470D5 for ; Tue, 23 Dec 2025 23:30:58 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CDFE94025A; Tue, 23 Dec 2025 23:30:58 +0100 (CET) Received: from mail-pf1-f202.google.com (mail-pf1-f202.google.com [209.85.210.202]) by mails.dpdk.org (Postfix) with ESMTP id 97A0F402E6 for ; Tue, 23 Dec 2025 23:30:57 +0100 (CET) Received: by mail-pf1-f202.google.com with SMTP id d2e1a72fcca58-7dd05696910so8171033b3a.2 for ; Tue, 23 Dec 2025 14:30:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1766529057; x=1767133857; darn=dpdk.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=1FTpzVsey7WmrDA/OhmNNDnEufKd6RAVy5+OT6jj3Lg=; b=J2+IBZNt1srZpCHXIJfoggyDvFFN/jWUrrxcB3XPyUs1lMbbRDAcz2Efbp6Y88OH4o M/D6cmsPYx6jGtltDB4gbdBlT7PYjMQ2JtTBimmNDuZeTFJBo2sVRYuCJ/WYZfP0AAHO KR7dwrHXm/6PNH1Gdb3iPxINiBEDwW8Xr6D6xK0sgSVfnNkby8f29RW3ud/NIGgkocU2 gBQEg//opt8wcMZpKwVkoruuw6UZmtFF6QKPI7gSZwnZ563dy7sUPkLFwI465N0ecqd8 2MlQ8lI3zPB7HPDwB2dKCSpNyby8gQmv3r0K7Ohpd2LFcDWeV8XzTVCyp5IGSxyLXe2Z gqAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766529057; x=1767133857; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=1FTpzVsey7WmrDA/OhmNNDnEufKd6RAVy5+OT6jj3Lg=; b=LJSj4bjOimBbSAQglTDRxkKK/aITrDJwjovlMIdiu0uPV9XKQafNUV7WH5zeU9635e ND0WtcymcMxWQ+3ZqrHu9YIrnleEQz//QqmrBkdzFiyvneQAoHK/C1eOnG30jmN4rD/3 LlmtcyIWk4iSEewMnehQK6pxj35K2OmGxopA2I7UxPvlhjzqUUfvx1kyapO8hKUYQ0yo vF68qWAAkcArbiNZV1qpx1uE1NRLBecJKGwrOdCg9yATHagCWbfy01aCoJNnYCga6wxH ftf7aJTDSgXFno4OqYaWPVWxIdqekXgvH1sC7QbvGa0aAt2CHGD55txneF9ax0AkCy07 ARAg== X-Gm-Message-State: AOJu0YwhKsfVb78Tb9SfAQVR0le/lx7DgEsweXFwjF4Qps1V9fxsH+Rk yYxmoL9QhqiWBgpZW08lrwvLAOYHN2bTnmqIhHUH1mRckeer71C9KD4iz+PQS5tNtVYAkwyyyY+ 53zpLV0MmgX/JKvBg+NuWtCqOyeWu/qzMhkVHYd65X9iPWtTA2F34FS5uIMGrLBvAcnDkKURD6b 8iKk0mdc6DUMg/UDMXYvsep7hL0FvQ1pRDBLUbBg== X-Google-Smtp-Source: AGHT+IE0H+nUU40p1Lv4MfkZGedRVjNbhUAFTikzH/1crsMlQ2nDJEX18hFIALhx05hWMozDA+H4aOa1o5iT4w== X-Received: from pjwt5.prod.google.com ([2002:a17:90a:d145:b0:34c:7437:183d]) (user=joshwash job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a20:394a:b0:35e:7605:56a4 with SMTP id adf61e73a8af0-376a9de58bfmr15414019637.51.1766529056612; Tue, 23 Dec 2025 14:30:56 -0800 (PST) Date: Tue, 23 Dec 2025 14:30:49 -0800 In-Reply-To: <20251223223050.3870080-1-joshwash@google.com> Mime-Version: 1.0 References: <20251223223050.3870080-1-joshwash@google.com> X-Mailer: git-send-email 2.52.0.351.gbe84eed79e-goog Message-ID: <20251223223050.3870080-3-joshwash@google.com> Subject: [PATCH 23.11 3/3] net/gve: add DQO Tx descriptor limit From: Joshua Washington To: stable@dpdk.org, Junfeng Guo , Jeroen de Borst , Rushil Gupta , Joshua Washington Cc: Ankit Garg Content-Type: text/plain; charset="UTF-8" X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org The hardware supports at most 10 data descriptors per MTU-sized segment. GVE_TX_MAX_DATA_DESCS was defined in the initial implmenentation, but the descriptor limit was never actually enforced. Fixes: 4022f9999f56 ("net/gve: support basic Tx data path for DQO") Cc: stable@dpdk.org Signed-off-by: Joshua Washington Reviewed-by: Ankit Garg --- drivers/net/gve/gve_ethdev.c | 1 + drivers/net/gve/gve_ethdev.h | 1 + drivers/net/gve/gve_tx_dqo.c | 6 ++++++ 3 files changed, 8 insertions(+) diff --git a/drivers/net/gve/gve_ethdev.c b/drivers/net/gve/gve_ethdev.c index 2dc47c1226..c0df116b1b 100644 --- a/drivers/net/gve/gve_ethdev.c +++ b/drivers/net/gve/gve_ethdev.c @@ -450,6 +450,7 @@ gve_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) .nb_max = gve_is_gqi(priv) ? priv->tx_desc_cnt : GVE_MAX_QUEUE_SIZE_DQO, .nb_min = priv->tx_desc_cnt, .nb_align = 1, + .nb_mtu_seg_max = GVE_TX_MAX_DATA_DESCS, }; return 0; diff --git a/drivers/net/gve/gve_ethdev.h b/drivers/net/gve/gve_ethdev.h index e145d6b639..2d916a40a2 100644 --- a/drivers/net/gve/gve_ethdev.h +++ b/drivers/net/gve/gve_ethdev.h @@ -82,6 +82,7 @@ struct gve_tx_stats { uint64_t packets; uint64_t bytes; uint64_t errors; + uint64_t too_many_descs; }; struct gve_rx_stats { diff --git a/drivers/net/gve/gve_tx_dqo.c b/drivers/net/gve/gve_tx_dqo.c index 8e75e4d570..96b4ef01bb 100644 --- a/drivers/net/gve/gve_tx_dqo.c +++ b/drivers/net/gve/gve_tx_dqo.c @@ -154,6 +154,12 @@ gve_tx_burst_dqo(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) break; } + /* Drop packet if it doesn't adhere to hardware limits. */ + if (nb_descs > GVE_TX_MAX_DATA_DESCS) { + txq->stats.too_many_descs++; + break; + } + do { if (sw_ring[sw_id] != NULL) PMD_DRV_LOG(DEBUG, "Overwriting an entry in sw_ring"); -- 2.52.0.351.gbe84eed79e-goog