From patchwork Mon Dec 27 08:00:28 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 12699593 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 59CE2C433F5 for ; Mon, 27 Dec 2021 08:00:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231486AbhL0IAz (ORCPT ); Mon, 27 Dec 2021 03:00:55 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48470 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231469AbhL0IAy (ORCPT ); Mon, 27 Dec 2021 03:00:54 -0500 Received: from mail-vk1-xa36.google.com (mail-vk1-xa36.google.com [IPv6:2607:f8b0:4864:20::a36]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8A535C06173E for ; Mon, 27 Dec 2021 00:00:53 -0800 (PST) Received: by mail-vk1-xa36.google.com with SMTP id c10so8060368vkn.2 for ; Mon, 27 Dec 2021 00:00:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=dRxzgutPaQTL/WfU6FZJSbzbe7oatnNbXSwAWEml6M0=; b=XIGdCcxyYtkp8lpuyY66GolnpfLQDH/vMTK3SlmxLkLGUpPQ0oVPhuUSTkOKVY7osj 4Hz2bbHGTrWUHPE6f82SNJwe7u8CAZhbBTog5edvybbX/M5dTmDXSwY7WLtu4zE/18W9 S+fIkuL0JQEHY2EvxAKi5y4YcUCXOPAWeKvjI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=dRxzgutPaQTL/WfU6FZJSbzbe7oatnNbXSwAWEml6M0=; b=jl0wkJdUWWf9JeH6+cKNfl41Xvxh0+3nfdw8Tsncqmh5kZLifHFfSz61JITaw0/VOM QLGbNnKqJZeyF1xp5onAAVBTndBWvGu+JHdWW17ePkCwjgYajKn+4s5WpSuaf63QAQ3R PmHYoPrG+FgMUnIjdBS6DMNIgkp/PwTLfTss1MsyGHayG25oD0/vw2W7DSq8BmotWvuM XWUdjeq7cofiA+v3GGZmO3Khgx8V6MJoUZfXt8Uuq7q32VlbSpHOC3PNHI2/FvWug/ks ZQiuedyD226vP37mHr2UtQysLQZOnGnEj4pekNu5B58176WY6vCXEyPSmHfmhZ+rXcB0 htIQ== X-Gm-Message-State: AOAM531kxMXnt8+XuHQbbFnpCqMDtni+/3Z2jy+rjdKNS4i/n1E/N3bI KC/4JqcNwePh7nLHSmSKhze0LA== X-Google-Smtp-Source: ABdhPJx5/vcC7VFtDzhUXb+hKkVZ2uAwbXP2Ouo9D74ZjiHIo6ojwSEVA/+4wiCcmpEmduPkZb61Kg== X-Received: by 2002:a05:6122:a17:: with SMTP id 23mr4589064vkn.8.1640592052554; Mon, 27 Dec 2021 00:00:52 -0800 (PST) Received: from localhost.swdvt.lab.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id o1sm2907587vkc.35.2021.12.27.00.00.51 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 27 Dec 2021 00:00:52 -0800 (PST) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, kuba@kernel.org, gospo@broadcom.com Subject: [PATCH net-next 3/7] bnxt_en: enable interrupt sampling on 5750X for DIM Date: Mon, 27 Dec 2021 03:00:28 -0500 Message-Id: <1640592032-8927-4-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1640592032-8927-1-git-send-email-michael.chan@broadcom.com> References: <1640592032-8927-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 From: Andy Gospodarek 5750X (P5) chips handle receiving packets on the NQ rather than the main completion queue so we need to get and set stats from the correct spots for dynamic interrupt moderation. Signed-off-by: Andy Gospodarek Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 53101d00768c..11df2fc05f6a 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -2632,6 +2632,7 @@ static int bnxt_poll_p5(struct napi_struct *napi, int budget) { struct bnxt_napi *bnapi = container_of(napi, struct bnxt_napi, napi); struct bnxt_cp_ring_info *cpr = &bnapi->cp_ring; + struct bnxt_cp_ring_info *cpr_rx; u32 raw_cons = cpr->cp_raw_cons; struct bnxt *bp = bnapi->bp; struct nqe_cn *nqcmp; @@ -2659,7 +2660,7 @@ static int bnxt_poll_p5(struct napi_struct *napi, int budget) if (napi_complete_done(napi, work_done)) BNXT_DB_NQ_ARM_P5(&cpr->cp_db, cpr->cp_raw_cons); - return work_done; + goto poll_done; } /* The valid test of the entry must be done first before @@ -2685,6 +2686,17 @@ static int bnxt_poll_p5(struct napi_struct *napi, int budget) cpr->cp_raw_cons = raw_cons; BNXT_DB_NQ_P5(&cpr->cp_db, raw_cons); } +poll_done: + cpr_rx = cpr->cp_ring_arr[BNXT_RX_HDL]; + if (cpr_rx && (bp->flags & BNXT_FLAG_DIM)) { + struct dim_sample dim_sample = {}; + + dim_update_sample(cpr->event_ctr, + cpr_rx->rx_packets, + cpr_rx->rx_bytes, + &dim_sample); + net_dim(&cpr->dim, dim_sample); + } return work_done; }