stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org,
	Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>,
	"David S. Miller" <davem@davemloft.net>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 4.19 38/66] cxgb4: avoid collecting SGE_QBASE regs during traffic
Date: Mon, 12 Apr 2021 10:40:44 +0200	[thread overview]
Message-ID: <20210412083959.346074477@linuxfoundation.org> (raw)
In-Reply-To: <20210412083958.129944265@linuxfoundation.org>

From: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>

[ Upstream commit 1bfb3dea965ff9f6226fd1709338f227363b6061 ]

Accessing SGE_QBASE_MAP[0-3] and SGE_QBASE_INDEX registers can lead
to SGE missing doorbells under heavy traffic. So, only collect them
when adapter is idle. Also update the regdump range to skip collecting
these registers.

Fixes: 80a95a80d358 ("cxgb4: collect SGE PF/VF queue map")
Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 .../net/ethernet/chelsio/cxgb4/cudbg_lib.c    | 23 +++++++++++++++----
 drivers/net/ethernet/chelsio/cxgb4/t4_hw.c    |  3 ++-
 2 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c b/drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c
index c91e155c147c..544c88f19f24 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c
@@ -1400,11 +1400,25 @@ int cudbg_collect_sge_indirect(struct cudbg_init *pdbg_init,
 	struct cudbg_buffer temp_buff = { 0 };
 	struct sge_qbase_reg_field *sge_qbase;
 	struct ireg_buf *ch_sge_dbg;
+	u8 padap_running = 0;
 	int i, rc;
+	u32 size;
 
-	rc = cudbg_get_buff(pdbg_init, dbg_buff,
-			    sizeof(*ch_sge_dbg) * 2 + sizeof(*sge_qbase),
-			    &temp_buff);
+	/* Accessing SGE_QBASE_MAP[0-3] and SGE_QBASE_INDEX regs can
+	 * lead to SGE missing doorbells under heavy traffic. So, only
+	 * collect them when adapter is idle.
+	 */
+	for_each_port(padap, i) {
+		padap_running = netif_running(padap->port[i]);
+		if (padap_running)
+			break;
+	}
+
+	size = sizeof(*ch_sge_dbg) * 2;
+	if (!padap_running)
+		size += sizeof(*sge_qbase);
+
+	rc = cudbg_get_buff(pdbg_init, dbg_buff, size, &temp_buff);
 	if (rc)
 		return rc;
 
@@ -1426,7 +1440,8 @@ int cudbg_collect_sge_indirect(struct cudbg_init *pdbg_init,
 		ch_sge_dbg++;
 	}
 
-	if (CHELSIO_CHIP_VERSION(padap->params.chip) > CHELSIO_T5) {
+	if (CHELSIO_CHIP_VERSION(padap->params.chip) > CHELSIO_T5 &&
+	    !padap_running) {
 		sge_qbase = (struct sge_qbase_reg_field *)ch_sge_dbg;
 		/* 1 addr reg SGE_QBASE_INDEX and 4 data reg
 		 * SGE_QBASE_MAP[0-3]
diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c b/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
index abc2a66754bd..812f4b743d97 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
@@ -2093,7 +2093,8 @@ void t4_get_regs(struct adapter *adap, void *buf, size_t buf_size)
 		0x1190, 0x1194,
 		0x11a0, 0x11a4,
 		0x11b0, 0x11b4,
-		0x11fc, 0x1274,
+		0x11fc, 0x123c,
+		0x1254, 0x1274,
 		0x1280, 0x133c,
 		0x1800, 0x18fc,
 		0x3000, 0x302c,
-- 
2.30.2




  parent reply	other threads:[~2021-04-12  8:45 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-12  8:40 [PATCH 4.19 00/66] 4.19.187-rc1 review Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 01/66] ALSA: aloop: Fix initialization of controls Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 02/66] ASoC: intel: atom: Stop advertising non working S24LE support Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 03/66] nfc: fix refcount leak in llcp_sock_bind() Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 04/66] nfc: fix refcount leak in llcp_sock_connect() Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 05/66] nfc: fix memory " Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 06/66] nfc: Avoid endless loops caused by repeated llcp_sock_connect() Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 07/66] xen/evtchn: Change irq_info lock to raw_spinlock_t Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 08/66] net: ipv6: check for validity before dereferencing cfg->fc_nlinfo.nlh Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 09/66] ia64: fix user_stack_pointer() for ptrace() Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 10/66] nds32: flush_dcache_page: use page_mapping_file to avoid races with swapoff Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 11/66] ocfs2: fix deadlock between setattr and dio_end_io_write Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 12/66] fs: direct-io: fix missing sdio->boundary Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 13/66] parisc: parisc-agp requires SBA IOMMU driver Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 14/66] parisc: avoid a warning on u8 cast for cmpxchg on u8 pointers Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 15/66] ARM: dts: turris-omnia: configure LED[2]/INTn pin as interrupt pin Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 16/66] batman-adv: initialize "struct batadv_tvlv_tt_vlan_data"->reserved field Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 17/66] ice: Increase control queue timeout Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 18/66] net: hso: fix null-ptr-deref during tty device unregistration Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 19/66] net: ensure mac header is set in virtio_net_hdr_to_skb() Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 20/66] net: sched: sch_teql: fix null-pointer dereference Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 21/66] net-ipv6: bugfix - raw & sctp - switch to ipv6_can_nonlocal_bind() Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 22/66] usbip: add sysfs_lock to synchronize sysfs code paths Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 23/66] usbip: stub-dev " Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 24/66] usbip: vudc " Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 25/66] usbip: synchronize event handler with " Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 26/66] i2c: turn recovery error on init to debug Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 27/66] virtio_net: Add XDP meta data support Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 28/66] virtio_net: Do not pull payload in skb->head Greg Kroah-Hartman
2021-04-12  9:12   ` Michael S. Tsirkin
2021-04-12  8:40 ` [PATCH 4.19 29/66] xfrm: interface: fix ipv4 pmtu check to honor ip header df Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 30/66] regulator: bd9571mwv: Fix AVS and DVFS voltage range Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 31/66] net: xfrm: Localize sequence counter per network namespace Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 32/66] ASoC: wm8960: Fix wrong bclk and lrclk with pll enabled for some chips Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 33/66] i40e: Added Asym_Pause to supported link modes Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 34/66] i40e: Fix kernel oops when i40e driver removes VFs Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 35/66] amd-xgbe: Update DMA coherency values Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 36/66] sch_red: fix off-by-one checks in red_check_params() Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 37/66] gianfar: Handle error code at MAC address change Greg Kroah-Hartman
2021-04-12  8:40 ` Greg Kroah-Hartman [this message]
2021-04-12  8:40 ` [PATCH 4.19 39/66] net:tipc: Fix a double free in tipc_sk_mcast_rcv Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 40/66] ARM: dts: imx6: pbab01: Set vmmc supply for both SD interfaces Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 41/66] net/ncsi: Avoid channel_monitor hrtimer deadlock Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 42/66] ASoC: sunxi: sun4i-codec: fill ASoC card owner Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 43/66] soc/fsl: qbman: fix conflicting alignment attributes Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 44/66] clk: fix invalid usage of list cursor in register Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 45/66] clk: fix invalid usage of list cursor in unregister Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 46/66] workqueue: Move the position of debug_work_activate() in __queue_work() Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 47/66] s390/cpcmd: fix inline assembly register clobbering Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 48/66] net/mlx5: Fix placement of log_max_flow_counter Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 49/66] net/mlx5: Fix PBMC register mapping Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 50/66] RDMA/cxgb4: check for ipv6 address properly while destroying listener Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 51/66] clk: socfpga: fix iomem pointer cast on 64-bit Greg Kroah-Hartman
2021-04-12  8:40 ` [PATCH 4.19 52/66] net: sched: bump refcount for new action in ACT replace mode Greg Kroah-Hartman
2021-04-13 10:37   ` Sudip Mukherjee
2021-04-12  8:40 ` [PATCH 4.19 53/66] cfg80211: remove WARN_ON() in cfg80211_sme_connect Greg Kroah-Hartman
2021-04-12  8:41 ` [PATCH 4.19 54/66] net: tun: set tun->dev->addr_len during TUNSETLINK processing Greg Kroah-Hartman
2021-04-12  8:41 ` [PATCH 4.19 55/66] drivers: net: fix memory leak in atusb_probe Greg Kroah-Hartman
2021-04-12  8:41 ` [PATCH 4.19 56/66] drivers: net: fix memory leak in peak_usb_create_dev Greg Kroah-Hartman
2021-04-12  8:41 ` [PATCH 4.19 57/66] net: mac802154: Fix general protection fault Greg Kroah-Hartman
2021-04-12  8:41 ` [PATCH 4.19 58/66] net: ieee802154: nl-mac: fix check on panid Greg Kroah-Hartman
2021-04-12  8:41 ` [PATCH 4.19 59/66] net: ieee802154: fix nl802154 del llsec key Greg Kroah-Hartman
2021-04-12  8:41 ` [PATCH 4.19 60/66] net: ieee802154: fix nl802154 del llsec dev Greg Kroah-Hartman
2021-04-12  8:41 ` [PATCH 4.19 61/66] net: ieee802154: fix nl802154 add llsec key Greg Kroah-Hartman
2021-04-12  8:41 ` [PATCH 4.19 62/66] net: ieee802154: fix nl802154 del llsec devkey Greg Kroah-Hartman
2021-04-12  8:41 ` [PATCH 4.19 63/66] net: ieee802154: forbid monitor for set llsec params Greg Kroah-Hartman
2021-04-12  8:41 ` [PATCH 4.19 64/66] net: ieee802154: forbid monitor for del llsec seclevel Greg Kroah-Hartman
2021-04-12  8:41 ` [PATCH 4.19 65/66] net: ieee802154: stop dump llsec params for monitors Greg Kroah-Hartman
2021-04-12  8:41 ` [PATCH 4.19 66/66] Revert "cifs: Set CIFS_MOUNT_USE_PREFIX_PATH flag on setting cifs_sb->prepath." Greg Kroah-Hartman
2021-04-12 13:12 ` [PATCH 4.19 00/66] 4.19.187-rc1 review Jon Hunter
2021-04-12 22:08 ` Guenter Roeck
2021-04-13  1:37 ` Shuah Khan
2021-04-13  5:41 ` Naresh Kamboju
2021-04-13  8:47 ` Pavel Machek
2021-04-13 10:40 ` Sudip Mukherjee
2021-04-14  2:50 ` Samuel Zou

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210412083959.346074477@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=davem@davemloft.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rahul.lakkireddy@chelsio.com \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).