From patchwork Tue Dec 27 03:19:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 13082062 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id EFAB8C4708D for ; Tue, 27 Dec 2022 03:20:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231178AbiL0DUe (ORCPT ); Mon, 26 Dec 2022 22:20:34 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44012 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230512AbiL0DU3 (ORCPT ); Mon, 26 Dec 2022 22:20:29 -0500 Received: from mail-qt1-x836.google.com (mail-qt1-x836.google.com [IPv6:2607:f8b0:4864:20::836]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 85F93F6A for ; Mon, 26 Dec 2022 19:20:28 -0800 (PST) Received: by mail-qt1-x836.google.com with SMTP id v14so6903911qtq.3 for ; Mon, 26 Dec 2022 19:20:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=sJ/a96No5QaDsmitT56e83X7OpLXjFzHi/0tOWQg1yY=; b=ZA47Im6Jx0eEb9BmAG1iR34niIbu9lbkks64p9wtDToZLO+KaSnVu0lyfK8FdJwaxE BIySvmhk5ccuKaccDKkowPuzSILu7phLBg5l92XEaj1R2KdQCl944GR8TRJ7z3B1O47Y 5dds3Vdz8Sve6M3lIspz7WEZzsvSEQd9lT3nk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=sJ/a96No5QaDsmitT56e83X7OpLXjFzHi/0tOWQg1yY=; b=b+SKjcpvEz80jc38lWBc30r/V+UybwQRGMhc7n+k18KiMqyqREFvYY28hkKqrEMevH qpMJV9wlwuT6XUtOz6F9KoVaesgh5YO2P8tAOL+YbkYlAIai0NQqtu6i3rr4EhwEim45 F+SlObEmHA9DlRn9cuFMVOSmBn29f9W5LI6phhsLdEJbZsGec/76ydBuRKe7exaWjoNr IJrcCQZL/ReCkXD4YuL1CGD9T9qjVQARplNl3SIEEEveXCAwVu0/tTXH/Njb1uKaG4EE /g678c8zznjrvad3tct8EBLz+kzGC8dBP0CqX4UF/DPZLjbrG5MAgUrm9ssRYZI5EeZq kOGw== X-Gm-Message-State: AFqh2kqvDwQD1w+ZvEaryj/cTtFtT0PzZzjKlQFbfKiqS5+Xw9vy/j51 TCqWSxHNcIgY06zxw8WdDjW3XHJA2+ai0SDd X-Google-Smtp-Source: AMrXdXv4cIByeXKdcjdFXXnKxaxL+UYuBkmlLL2KaZwB3bqA1YORARiVby4r2N6o9oW/h1jKDHyKUw== X-Received: by 2002:ac8:65da:0:b0:3a6:6c0f:104e with SMTP id t26-20020ac865da000000b003a66c0f104emr26925978qto.19.1672111228020; Mon, 26 Dec 2022 19:20:28 -0800 (PST) Received: from localhost.swdvt.lab.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id fa11-20020a05622a4ccb00b003a68fe872a5sm7751262qtb.96.2022.12.26.19.20.26 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Dec 2022 19:20:27 -0800 (PST) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, kuba@kernel.org, edumazet@google.com, pabeni@redhat.com, bpf@vger.kernel.org, gospo@broadcom.com Subject: [PATCH net 5/5] bnxt_en: Fix HDS and jumbo thresholds for RX packets Date: Mon, 26 Dec 2022 22:19:40 -0500 Message-Id: <1672111180-19463-6-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1672111180-19463-1-git-send-email-michael.chan@broadcom.com> References: <1672111180-19463-1-git-send-email-michael.chan@broadcom.com> Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org The recent XDP multi-buffer feature has introduced regressions in the setting of HDS and jumbo thresholds. HDS was accidentally disabled in the nornmal mode without XDP. This patch restores jumbo HDS placement when not in XDP mode. In XDP multi-buffer mode, HDS should be disabled and the jumbo threshold should be set to the usable page size in the first page buffer. Fixes: 32861236190b ("bnxt: change receive ring space parameters") Reviewed-by: Mohammad Shuab Siddique Reviewed-by: Ajit Khaparde Reviewed-by: Andy Gospodarek Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index a21c6829e301..16ce7a90610c 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -5399,15 +5399,16 @@ static int bnxt_hwrm_vnic_set_hds(struct bnxt *bp, u16 vnic_id) req->flags = cpu_to_le32(VNIC_PLCMODES_CFG_REQ_FLAGS_JUMBO_PLACEMENT); req->enables = cpu_to_le32(VNIC_PLCMODES_CFG_REQ_ENABLES_JUMBO_THRESH_VALID); - if (BNXT_RX_PAGE_MODE(bp) && !BNXT_RX_JUMBO_MODE(bp)) { + if (BNXT_RX_PAGE_MODE(bp)) { + req->jumbo_thresh = cpu_to_le16(bp->rx_buf_use_size); + } else { req->flags |= cpu_to_le32(VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_IPV4 | VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_IPV6); req->enables |= cpu_to_le32(VNIC_PLCMODES_CFG_REQ_ENABLES_HDS_THRESHOLD_VALID); + req->jumbo_thresh = cpu_to_le16(bp->rx_copy_thresh); + req->hds_threshold = cpu_to_le16(bp->rx_copy_thresh); } - /* thresholds not implemented in firmware yet */ - req->jumbo_thresh = cpu_to_le16(bp->rx_copy_thresh); - req->hds_threshold = cpu_to_le16(bp->rx_copy_thresh); req->vnic_id = cpu_to_le32(vnic->fw_vnic_id); return hwrm_req_send(bp, req); }