From patchwork Wed Mar 19 10:26:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kurt Kanzenbach X-Patchwork-Id: 14022412 X-Patchwork-Delegate: kuba@kernel.org Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3F6221F585C for ; Wed, 19 Mar 2025 10:26:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.142.43.55 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742380011; cv=none; b=uIZi6m4CdLLM+Nw7rA8euElBb5A3Rew8kRuMUpRtQBb360PH5JGAbRmPtJ36cCZQ0aSOnwTw7X4K6dyNDriGwjX0CTiyPGl7M0zjNuP6ZD99fMWGGsxPUrFpNuvqe6NRys+OTvymiDsIoO/2pb4fGifkrC7Wglaj57Wpx3p/a4E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742380011; c=relaxed/simple; bh=6TzlgHY+MARSPZ19oPq2VR/on8+SB2WKhJ2qBOrffwY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DdJKaY9vvc9VDu91EXI7tp2djJOGQVU5otEzUmgKLSX8QpgZyibsv8w9tMRl1cIrG0PEVOyD13Z9CqE/J2s4LZMu/9CIhq2QxhlMweYJTjgEsekDIwJ31S8/7QisCAm4egqs5DHx/afwBXV90MAZz5snthpCEcF83IkCOItWgKs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de; spf=pass smtp.mailfrom=linutronix.de; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=05BnybXx; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=PCzURz1U; arc=none smtp.client-ip=193.142.43.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linutronix.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="05BnybXx"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="PCzURz1U" From: Kurt Kanzenbach DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1742380008; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fL+/sdmqfiD/3QPUgzCMR39Mkz8HctLQSqLONQ0HXPw=; b=05BnybXx8UcYEZq2c2Fqj1jmweMzT8dXQWfj8ZE/YYR7WZlgU14e6NONufswBIMTOEiGsy xgD9h7HX/zbsHGs/nZnlbaDS9o9C8DU12BOP2Rr+HsD0VNhYn7/Y7xN5ArR2rRcgJDWlI2 oc+KzvTSxGSoyk6xE9qeqxOeT2GXmgYlfEqBog2FfabxCuUO8vgBpIncaJAKK4DN/k2fgZ yZpl1BDKVMfpPhSQSBQRm84UI0gxAcKdIsoCCa8Qvs4p3XtqHVHk/EsHjNkTwOR3xdamOB xgMlfc9q3/RfJ5HWJtHez+wUPUw+I+xgIfiJADmRppQJwmRQBGyOr8dpqUXuPw== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1742380008; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fL+/sdmqfiD/3QPUgzCMR39Mkz8HctLQSqLONQ0HXPw=; b=PCzURz1U5BuPd762fR1R73keKOwcACplnrIpBORBkXp2IV7ImUa427r7TCBc619/zd5e5d Tc57feOKxGF0iGCg== Date: Wed, 19 Mar 2025 11:26:39 +0100 Subject: [PATCH iwl-next v3 1/4] igb: Link IRQs to NAPI instances Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250319-igb_irq-v3-1-b9ee902143dd@linutronix.de> References: <20250319-igb_irq-v3-0-b9ee902143dd@linutronix.de> In-Reply-To: <20250319-igb_irq-v3-0-b9ee902143dd@linutronix.de> To: Tony Nguyen , Przemek Kitszel Cc: Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Sebastian Andrzej Siewior , Joe Damato , Gerhard Engleder , intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org, Kurt Kanzenbach , Rinitha S X-Developer-Signature: v=1; a=openpgp-sha256; l=2088; i=kurt@linutronix.de; h=from:subject:message-id; bh=6TzlgHY+MARSPZ19oPq2VR/on8+SB2WKhJ2qBOrffwY=; b=owEBbQKS/ZANAwAKAcGT0fKqRnOCAcsmYgBn2pvlPC00/+8lNaDwIeJJnwGTouW9qHVvam4nu jEWobjLEk+JAjMEAAEKAB0WIQS8ub+yyMN909/bWZLBk9HyqkZzggUCZ9qb5QAKCRDBk9HyqkZz gvi7EACCNfucR34zTvcPkVCIyYkeUWJ3iMQzqmIMcQMy6dmrzB7StjmxO6euGQ57yyeNqZrYfiu P/tDLwf7EGCr7zcSiAXQxe50rlreus70PrMziv0EAFPTzYENevRtxEig5o4BxNFeC2wI3nHUiz/ 2iokfnhGj5ngU9WaPHRe+LwqybKHrYrCt7nS0MrXl/VJH4iz4ymW3dPbiKuNWjNOnrxisS3xlIZ e3aCtr19RFMWzx7y1vZRTBAJwCtEzwxC41wf7Cik4xjRQAWzazN8AMEU3CJ9dmY/JIvH2+BDBCD bvQTxKXbaZDFuqb1ps2lhid34w+vDiPHc3AJ13l1NaV/IR7snp4td6EWB6PGaCdzKcjDeb7Fn6F j+puR8JIcUMVxLzlAxHWLAf/Gd0i5m4gc9c9VKOT28LaJUPhyGN7PD0GxVnunoSFOx0CjLFBD1t MlcaLhLFXBAgKaiXQQj22F+M8MfsQutSww9VjM3nlknnpcpWSo7253ckUFZKSepUBuOEe+B6moR kxuQt00RH8dnpP115rU7jLYTm/ORx1Ms/HRo5uPY6rzULssGmikYig+BhCfoqszet66qrZUHGt5 qcYjJgIpCOPLFARkFyYBQtKiL7mQGpJ5tkA/S9/5whzlA+ZtwKFsW08j0F8Vw2Om6jllaXopCLk 208Nx1VVB+pk5ig== X-Developer-Key: i=kurt@linutronix.de; a=openpgp; fpr=BCB9BFB2C8C37DD3DFDB5992C193D1F2AA467382 X-Patchwork-Delegate: kuba@kernel.org Link IRQs to NAPI instances via netdev-genl API. This allows users to query that information via netlink: |$ ./tools/net/ynl/pyynl/cli.py --spec Documentation/netlink/specs/netdev.yaml \ | --dump napi-get --json='{"ifindex": 2}' |[{'defer-hard-irqs': 0, | 'gro-flush-timeout': 0, | 'id': 8204, | 'ifindex': 2, | 'irq': 127, | 'irq-suspend-timeout': 0}, | {'defer-hard-irqs': 0, | 'gro-flush-timeout': 0, | 'id': 8203, | 'ifindex': 2, | 'irq': 126, | 'irq-suspend-timeout': 0}, | {'defer-hard-irqs': 0, | 'gro-flush-timeout': 0, | 'id': 8202, | 'ifindex': 2, | 'irq': 125, | 'irq-suspend-timeout': 0}, | {'defer-hard-irqs': 0, | 'gro-flush-timeout': 0, | 'id': 8201, | 'ifindex': 2, | 'irq': 124, | 'irq-suspend-timeout': 0}] |$ cat /proc/interrupts | grep enp2s0 |123: 0 1 IR-PCI-MSIX-0000:02:00.0 0-edge enp2s0 |124: 0 7 IR-PCI-MSIX-0000:02:00.0 1-edge enp2s0-TxRx-0 |125: 0 0 IR-PCI-MSIX-0000:02:00.0 2-edge enp2s0-TxRx-1 |126: 0 5 IR-PCI-MSIX-0000:02:00.0 3-edge enp2s0-TxRx-2 |127: 0 0 IR-PCI-MSIX-0000:02:00.0 4-edge enp2s0-TxRx-3 Reviewed-by: Joe Damato Tested-by: Rinitha S (A Contingent worker at Intel) Signed-off-by: Kurt Kanzenbach --- drivers/net/ethernet/intel/igb/igb_main.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index d368b753a4675d01b5dfa50dee4cd218e6a5e14b..d4128d19cc08f62f95682069bb5ed9b8bbbf10cb 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -947,6 +947,9 @@ static int igb_request_msix(struct igb_adapter *adapter) q_vector); if (err) goto err_free; + + netif_napi_set_irq(&q_vector->napi, + adapter->msix_entries[vector].vector); } igb_configure_msix(adapter); From patchwork Wed Mar 19 10:26:40 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kurt Kanzenbach X-Patchwork-Id: 14022413 X-Patchwork-Delegate: kuba@kernel.org Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A2B5920DD4B for ; Wed, 19 Mar 2025 10:26:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.142.43.55 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742380012; cv=none; b=TXCa7QBGVLWQJ5oKTUPBRjvfEGwuJUjVFoTtt448bEC4fLslm8O4GpfEYjwO4J2rkG6QALF0luMu0rWBXkxSq2WqNoWzATpdywv9/A/lKFOUR5FO16tdFOEjgOQV4U8M2LPPytiHc2LnZW6ty3jOTsH7F0ZS7tqRt6YAIROmCZ8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742380012; c=relaxed/simple; bh=1vqoQlywhZPsl+VmtbqoH2X1ya01NGSNUs3Vu/zAUY8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=OhpgfqL6Al+kItiecJARJbcOWTVQyNjhy2GTOdHZWKLcyWr03XanHFKbsM65qMfcY3+FsUjNuu74z5yiG7MwZidyH2+HvHlvN54MT5/wdp7PZFwvyjtUciQWEQTLGSxROc3jO+eGgtd3oykwTOsvqMeoEMpWhFKP3MXH96AVFos= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de; spf=pass smtp.mailfrom=linutronix.de; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=ErHZQB2S; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=EY3FibrA; arc=none smtp.client-ip=193.142.43.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linutronix.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="ErHZQB2S"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="EY3FibrA" From: Kurt Kanzenbach DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1742380008; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QwnxYQpo55bl7av0RxzWWNuI7xN+6Fs6sOckb0gHB3I=; b=ErHZQB2SEiqfJ92WptqrUYH3vxfhf5m+UmHoXXrG/3OjZzB85w2lY6GtwrIpsmXiamSRQN XytqTdaL+XD1ojeTAsPpQRUKP+roDehmto3kwc6D9TZoQME0wW7AjzKh8OCToiWLM1LR/u DiMmn3afgdA51sohe55Qdv/0hea1o7C8atqAHbhGHbvG0oOk+JY7R/Kv1xkq6Dm6wJLzH6 168zJgrE5kqJuT5Bg/NqQNjrqOqd5qkZaA02axvocqDg/egWnCEZVvFb88KqVbI4nE1Qk2 E3Bxvj66WAvroGvzTrrLh7xK0cxBFPP3OkvGDl++b+/lpEFvNYouF4cz4YZRwQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1742380008; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QwnxYQpo55bl7av0RxzWWNuI7xN+6Fs6sOckb0gHB3I=; b=EY3FibrAixlzfIA6nhLYqz5hUikXtw61bqSPgI/lcUAe55BkatKocJ9nzxTW7hC8lyGs2L W399qQQ0fpQ+r3Bw== Date: Wed, 19 Mar 2025 11:26:40 +0100 Subject: [PATCH iwl-next v3 2/4] igb: Link queues to NAPI instances Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250319-igb_irq-v3-2-b9ee902143dd@linutronix.de> References: <20250319-igb_irq-v3-0-b9ee902143dd@linutronix.de> In-Reply-To: <20250319-igb_irq-v3-0-b9ee902143dd@linutronix.de> To: Tony Nguyen , Przemek Kitszel Cc: Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Sebastian Andrzej Siewior , Joe Damato , Gerhard Engleder , intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org, Kurt Kanzenbach X-Developer-Signature: v=1; a=openpgp-sha256; l=5680; i=kurt@linutronix.de; h=from:subject:message-id; bh=1vqoQlywhZPsl+VmtbqoH2X1ya01NGSNUs3Vu/zAUY8=; b=owEBbQKS/ZANAwAKAcGT0fKqRnOCAcsmYgBn2pvlZPCzeUkFIZ4RYoE5JYwg+twe2mrh1qYnS uo2XCRfXHGJAjMEAAEKAB0WIQS8ub+yyMN909/bWZLBk9HyqkZzggUCZ9qb5QAKCRDBk9HyqkZz ggRSD/965rznYfw6mk+jxpYQg+kW8kGRWK99axdGBWTxKryYIhree7PDyl+Nf0NanMC+4IlrQlV soima/gmWUqS9wvjANGBnIlZxBXZpoThNU3dGyvOtVKqVpAFH12jtbzs+YAcj+shDmrk6s12bqa s3sveIfSzLsjr1sAT+dFvhXSlMmc2wXc/VAqi3pIST4cUA68SdLGQUdVIdWOk9ega5kaHBg7bE/ sMQgzCPQbUXuLR6NX8TclAmScCLJu5qpWfE75HYTOgpQloP3o482LdcTSuKoMAPQcBJc3i6Fory zXWTK1MLYpEvdledWqr8dhe68v2hP1c5yUcw4XTPprvf7ePsvh78RmVKFh7POqla/fB3vQq96DY 0fq9b3YSDbk82zD7HPXkazlayPG0ocHQ8m7LVY4sWj0gKo6eKQ4ygnzGgcupHd+uRuS/JmLxSaV RR54UjHLuo6iBmLsdXZ6aDshx2doMl03OG1PFFcJB9oWLIHEephQldckuy5xVt2b6rw1Ir98icX YGsWaLD+hPXH3bOMUJk1rWp/l6pd7OsTEOUVmSUDW6wt6/JdGHDjFeuNvR0ukL9kCbHjrOd1ysB qBm0iI2QeJ5u8zEhLNsihNzbbn6tqoIpd0NBvHOLAhdw6p8MbWzez9UF5JzqouYC6BzNx3ozHqO J8qO2A8Z7xmP5ug== X-Developer-Key: i=kurt@linutronix.de; a=openpgp; fpr=BCB9BFB2C8C37DD3DFDB5992C193D1F2AA467382 X-Patchwork-Delegate: kuba@kernel.org Link queues to NAPI instances via netdev-genl API. This is required to use XDP/ZC busy polling. See commit 5ef44b3cb43b ("xsk: Bring back busy polling support") for details. This also allows users to query the info with netlink: |$ ./tools/net/ynl/pyynl/cli.py --spec Documentation/netlink/specs/netdev.yaml \ | --dump queue-get --json='{"ifindex": 2}' |[{'id': 0, 'ifindex': 2, 'napi-id': 8201, 'type': 'rx'}, | {'id': 1, 'ifindex': 2, 'napi-id': 8202, 'type': 'rx'}, | {'id': 2, 'ifindex': 2, 'napi-id': 8203, 'type': 'rx'}, | {'id': 3, 'ifindex': 2, 'napi-id': 8204, 'type': 'rx'}, | {'id': 0, 'ifindex': 2, 'napi-id': 8201, 'type': 'tx'}, | {'id': 1, 'ifindex': 2, 'napi-id': 8202, 'type': 'tx'}, | {'id': 2, 'ifindex': 2, 'napi-id': 8203, 'type': 'tx'}, | {'id': 3, 'ifindex': 2, 'napi-id': 8204, 'type': 'tx'}] Add rtnl locking to PCI error handlers, because netif_queue_set_napi() requires the lock held. While at __igb_open() use RCT coding style. Signed-off-by: Kurt Kanzenbach Reviewed-by: Joe Damato --- drivers/net/ethernet/intel/igb/igb.h | 2 ++ drivers/net/ethernet/intel/igb/igb_main.c | 43 +++++++++++++++++++++++++++---- 2 files changed, 40 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/intel/igb/igb.h b/drivers/net/ethernet/intel/igb/igb.h index 02f340280d20a6f7e32bbd3dfcbb9c1c7b4c6662..79eca385a751bfdafdf384928b6cc1b350b22560 100644 --- a/drivers/net/ethernet/intel/igb/igb.h +++ b/drivers/net/ethernet/intel/igb/igb.h @@ -722,6 +722,8 @@ enum igb_boards { extern char igb_driver_name[]; +void igb_set_queue_napi(struct igb_adapter *adapter, int q_idx, + struct napi_struct *napi); int igb_xmit_xdp_ring(struct igb_adapter *adapter, struct igb_ring *ring, struct xdp_frame *xdpf); diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index d4128d19cc08f62f95682069bb5ed9b8bbbf10cb..6870803a42455aa1d31f39beb027cf282064388f 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -2099,6 +2099,22 @@ static void igb_check_swap_media(struct igb_adapter *adapter) wr32(E1000_CTRL_EXT, ctrl_ext); } +void igb_set_queue_napi(struct igb_adapter *adapter, int vector, + struct napi_struct *napi) +{ + struct igb_q_vector *q_vector = adapter->q_vector[vector]; + + if (q_vector->rx.ring) + netif_queue_set_napi(adapter->netdev, + q_vector->rx.ring->queue_index, + NETDEV_QUEUE_TYPE_RX, napi); + + if (q_vector->tx.ring) + netif_queue_set_napi(adapter->netdev, + q_vector->tx.ring->queue_index, + NETDEV_QUEUE_TYPE_TX, napi); +} + /** * igb_up - Open the interface and prepare it to handle traffic * @adapter: board private structure @@ -2106,6 +2122,7 @@ static void igb_check_swap_media(struct igb_adapter *adapter) int igb_up(struct igb_adapter *adapter) { struct e1000_hw *hw = &adapter->hw; + struct napi_struct *napi; int i; /* hardware has been reset, we need to reload some things */ @@ -2113,8 +2130,11 @@ int igb_up(struct igb_adapter *adapter) clear_bit(__IGB_DOWN, &adapter->state); - for (i = 0; i < adapter->num_q_vectors; i++) - napi_enable(&(adapter->q_vector[i]->napi)); + for (i = 0; i < adapter->num_q_vectors; i++) { + napi = &adapter->q_vector[i]->napi; + napi_enable(napi); + igb_set_queue_napi(adapter, i, napi); + } if (adapter->flags & IGB_FLAG_HAS_MSIX) igb_configure_msix(adapter); @@ -2184,6 +2204,7 @@ void igb_down(struct igb_adapter *adapter) for (i = 0; i < adapter->num_q_vectors; i++) { if (adapter->q_vector[i]) { napi_synchronize(&adapter->q_vector[i]->napi); + igb_set_queue_napi(adapter, i, NULL); napi_disable(&adapter->q_vector[i]->napi); } } @@ -4116,8 +4137,9 @@ static int igb_sw_init(struct igb_adapter *adapter) static int __igb_open(struct net_device *netdev, bool resuming) { struct igb_adapter *adapter = netdev_priv(netdev); - struct e1000_hw *hw = &adapter->hw; struct pci_dev *pdev = adapter->pdev; + struct e1000_hw *hw = &adapter->hw; + struct napi_struct *napi; int err; int i; @@ -4169,8 +4191,11 @@ static int __igb_open(struct net_device *netdev, bool resuming) /* From here on the code is the same as igb_up() */ clear_bit(__IGB_DOWN, &adapter->state); - for (i = 0; i < adapter->num_q_vectors; i++) - napi_enable(&(adapter->q_vector[i]->napi)); + for (i = 0; i < adapter->num_q_vectors; i++) { + napi = &adapter->q_vector[i]->napi; + napi_enable(napi); + igb_set_queue_napi(adapter, i, napi); + } /* Clear any pending interrupts. */ rd32(E1000_TSICR); @@ -9677,8 +9702,11 @@ static pci_ers_result_t igb_io_error_detected(struct pci_dev *pdev, if (state == pci_channel_io_perm_failure) return PCI_ERS_RESULT_DISCONNECT; + rtnl_lock(); if (netif_running(netdev)) igb_down(adapter); + rtnl_unlock(); + pci_disable_device(pdev); /* Request a slot reset. */ @@ -9737,16 +9765,21 @@ static void igb_io_resume(struct pci_dev *pdev) struct net_device *netdev = pci_get_drvdata(pdev); struct igb_adapter *adapter = netdev_priv(netdev); + rtnl_lock(); if (netif_running(netdev)) { if (!test_bit(__IGB_DOWN, &adapter->state)) { dev_dbg(&pdev->dev, "Resuming from non-fatal error, do nothing.\n"); + rtnl_unlock(); return; } + if (igb_up(adapter)) { dev_err(&pdev->dev, "igb_up failed after reset\n"); + rtnl_unlock(); return; } } + rtnl_unlock(); netif_device_attach(netdev); From patchwork Wed Mar 19 10:26:41 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kurt Kanzenbach X-Patchwork-Id: 14022414 X-Patchwork-Delegate: kuba@kernel.org Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3A5681F585C for ; Wed, 19 Mar 2025 10:26:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.142.43.55 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742380014; cv=none; b=A4mecIv/e5hRO8Oit4O+Nj9XhMPnMfjyb/ggfvj0x/luVIuQGlqPq8GwBrUiKz+kRzgD3/542dti/r4XtNeh7919wZXeqJJYestHjcU5phXGgORY0aPxV6WcKSUOwmoeNjXc8J4+fPbnG0kNFZfaUdPKbYuuHZEOXDtbot4kxvU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742380014; c=relaxed/simple; bh=xpJo7BniFeJ3qScURG1VqRE0BIITF7LM9GR7lZ/lQ20=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=n/BanoWaRUzTPmF0bbSe0f/CzHX+uhZSr+9/ISdOG3qa+Bkj1sgXWumJ+8OhmobnoEPUtrPq6/9uzN/NETc036F1X99HqImsY2B7zZ2w53QZ1x5TUr6w6SNCs+YftF3vV5DyEc/U9faEzjnbZMxOcWQg6jFRH3XRW4twAu1teUo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de; spf=pass smtp.mailfrom=linutronix.de; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=VRC3lGlv; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=t/rPAshR; arc=none smtp.client-ip=193.142.43.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linutronix.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="VRC3lGlv"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="t/rPAshR" From: Kurt Kanzenbach DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1742380009; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=bVqYEppXH5Ay8ZuM4WwVPsIdI6zdDIi+KShL59kFbbY=; b=VRC3lGlv37Y8RgWJR26Eoztiy5KVcUgjLKLKVmKImq1iGtGn9tJF8T4NbxTu9DS1dL8OpZ o+PA+lGxl6yZGdFCuRt+rnj618g7ShuLj3MxgFDIDfGbzqM7fHFQRoSoQ5oaK3i6pJkzoo kCd0qF5F1rCKsLpCT5pnw3YezlrqubOBDenQhM3parnBGJaJzda+HkNZwU/86XplGW8dBI O4HuP/mP2hDJM1Tha73FbHZBZoPArw360wEl6Nx7xqd+uBuoUTUfQjglob4/WqBoZUuoSe aBQGGvMaXYX41Hz1vl87ohxn5ODn3PZhY77nTocl3oBXCljsoEyjeFz5VCwVWg== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1742380009; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=bVqYEppXH5Ay8ZuM4WwVPsIdI6zdDIi+KShL59kFbbY=; b=t/rPAshR3XTT9hxQEo+sRIcAUD0B0FZjRZVblI3dGn72dwI1B5yFmM62h2B2sb9nz1O43I CmSlr0rhofmIIzDw== Date: Wed, 19 Mar 2025 11:26:41 +0100 Subject: [PATCH iwl-next v3 3/4] igb: Add support for persistent NAPI config Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250319-igb_irq-v3-3-b9ee902143dd@linutronix.de> References: <20250319-igb_irq-v3-0-b9ee902143dd@linutronix.de> In-Reply-To: <20250319-igb_irq-v3-0-b9ee902143dd@linutronix.de> To: Tony Nguyen , Przemek Kitszel Cc: Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Sebastian Andrzej Siewior , Joe Damato , Gerhard Engleder , intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org, Kurt Kanzenbach , Aleksandr Loktionov , Rinitha S X-Developer-Signature: v=1; a=openpgp-sha256; l=1224; i=kurt@linutronix.de; h=from:subject:message-id; bh=xpJo7BniFeJ3qScURG1VqRE0BIITF7LM9GR7lZ/lQ20=; b=owEBbQKS/ZANAwAKAcGT0fKqRnOCAcsmYgBn2pvlwE/G17ZGwoTPzdOYfKeLHidnmvgijXbf2 votplR2quaJAjMEAAEKAB0WIQS8ub+yyMN909/bWZLBk9HyqkZzggUCZ9qb5QAKCRDBk9HyqkZz gpA+D/4kOhRIgomm0Ihhn1CykXlP9YXhPZl2ltxqFBZRFZ4ENKMa5rQJeNbhV9mwhVew7yVYJzF 5WCHACvaOn9pA3OoAsIYpUlTaI5u8UE79xRxnTaW3WYxVjEnXNZCPFTnGA7ZyiM6/s+GVB1eIDC U11JQF89MGI2xpu91xaTfxwkTZ0Exr8TdOtR4ep9XS0QdnsIcivVbBt2onSvSYSF3v6ZaK+5VHW 2WFZjjbk8MtxnIubCio7LgMGfSgz7ZDu/0gAUtLqOlpADbzM4zMJucrZWPpae0+uzsTLD7HWvvx 3u1RkxeLWQuAEp1C6EQopr/6Xa/j/ljoUtG4F+a6GK1eIeNGN4CeOoS2BebMbV59LKm/JOFr0V9 /7MGAj1f6a0tXx1uze8N6opYbljdGoUjE+q3ETHUMJfqDQAnXV9W4h8gmVr2cWfOEF1QCSSGd3b bk5afaC1pboX60gk2PTpok3zNpcG8ZnCfq0ElHFbwWt1SY5zo4/9/y4a/71/VIcYNDaJUg1tn/i anqO+j0UolNrOiqMbWRgG3Vqqsn2+cxz3WyC9aIjxDF6lcDuDR22ysqhhjrGwVLKah06hYq4hog e/pBGFjLFceAcfqpnWL/Id3+07bmjIvutirHqlFK4fKd+kRlr60NJ6/MH1yrJqOaLxG2Au1GWbT rQ95mNxcGY9rkiw== X-Developer-Key: i=kurt@linutronix.de; a=openpgp; fpr=BCB9BFB2C8C37DD3DFDB5992C193D1F2AA467382 X-Patchwork-Delegate: kuba@kernel.org Use netif_napi_add_config() to assign persistent per-NAPI config. This is useful for preserving NAPI settings when changing queue counts or for user space programs using SO_INCOMING_NAPI_ID. Reviewed-by: Joe Damato Reviewed-by: Aleksandr Loktionov Tested-by: Rinitha S (A Contingent worker at Intel) Signed-off-by: Kurt Kanzenbach --- drivers/net/ethernet/intel/igb/igb_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index 6870803a42455aa1d31f39beb027cf282064388f..054376d648da883f35d1dee5f879487b8adfd540 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -1197,7 +1197,8 @@ static int igb_alloc_q_vector(struct igb_adapter *adapter, return -ENOMEM; /* initialize NAPI */ - netif_napi_add(adapter->netdev, &q_vector->napi, igb_poll); + netif_napi_add_config(adapter->netdev, &q_vector->napi, igb_poll, + v_idx); /* tie q_vector and adapter together */ adapter->q_vector[v_idx] = q_vector; From patchwork Wed Mar 19 10:26:42 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kurt Kanzenbach X-Patchwork-Id: 14022415 X-Patchwork-Delegate: kuba@kernel.org Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B838D253F31 for ; Wed, 19 Mar 2025 10:26:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.142.43.55 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742380015; cv=none; b=HDBMsiFOmGzIqrp+TZKm7eqYjP/ZQpfb+X8Rd5mIkgSOKo38JYxsIRBjO1yny215kBtCOMGata+run279rhuhAdDtrszDo604BBGbffiBGkuDsD9O1F6yC2LssXO9BMVbI9Az48vVxql2OBu3BoIwOQuOmD3yOqjybctIO2irVc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742380015; c=relaxed/simple; bh=btqMP/w6rrXtckllt55OLyagkPFpdPpWJVbl27jlvjg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=f5KtE2Ggb7u/L7mwoLspeNHSEDEc56EVT3nM63BTnIQzByLM65W1SEy6y9rekLRJRb4BZptnYO71BiUU7PcpbIVfg+mkE7eAF1//O0K6ULKznzPwoYMs2TJ1v6+igGAlODIW4uyuQttBar+CqWZkc1Q9QrCdaPSEudUdNB32xjg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de; spf=pass smtp.mailfrom=linutronix.de; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=QlIhqByU; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=17Pykt4j; arc=none smtp.client-ip=193.142.43.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linutronix.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="QlIhqByU"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="17Pykt4j" From: Kurt Kanzenbach DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1742380010; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=PHaRYejTDZcBr7viVmaCzXmrP3wnRXjux54mdUtJris=; b=QlIhqByUkmQU62mmW6WNottA82i6WeV3oYbxWs62UsO0uHRCuKRKpX/jtJhAKQHmNaktN0 702k8oatRYOdGMM0ZtL3x/LlCU5BcfBfGPs3S6Ox5VOYBrxsghQNZy2LBDwRv0cBy3HX6T UPF11aF6IVf6+p446kNNxWuXSXpFSdLPcPgf9Hfxf59vhczOb+UuYulUZowyg4J1ss07CW SlbsOhot9gZHvSTm5kjwi6yr+oM2mU0wqX8kXOfUYGW+mEt8DOrSh13wtcFxGQI7wzLGwT a6mTKzux+Aub4MvY7dwqq4aUQOPaSH4TgEIejCm2swEwy2uLew2lbgj6UNTTDQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1742380010; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=PHaRYejTDZcBr7viVmaCzXmrP3wnRXjux54mdUtJris=; b=17Pykt4j5f3NI33KDXFbuOzv0yvjeK5yQOSfZnHLFBH1jLXPlWoIczePI+GG/add4bqYiF sqhkVQKmcJwO4zDQ== Date: Wed, 19 Mar 2025 11:26:42 +0100 Subject: [PATCH iwl-next v3 4/4] igb: Get rid of spurious interrupts Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250319-igb_irq-v3-4-b9ee902143dd@linutronix.de> References: <20250319-igb_irq-v3-0-b9ee902143dd@linutronix.de> In-Reply-To: <20250319-igb_irq-v3-0-b9ee902143dd@linutronix.de> To: Tony Nguyen , Przemek Kitszel Cc: Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Sebastian Andrzej Siewior , Joe Damato , Gerhard Engleder , intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org, Kurt Kanzenbach , Aleksandr Loktionov , Sweta Kumari X-Developer-Signature: v=1; a=openpgp-sha256; l=4897; i=kurt@linutronix.de; h=from:subject:message-id; bh=btqMP/w6rrXtckllt55OLyagkPFpdPpWJVbl27jlvjg=; b=owEBbQKS/ZANAwAKAcGT0fKqRnOCAcsmYgBn2pvmQkDdiIsgVelIcAwvtj8KMtb2LQhhQeB2P 17agSWDhgaJAjMEAAEKAB0WIQS8ub+yyMN909/bWZLBk9HyqkZzggUCZ9qb5gAKCRDBk9HyqkZz ggcxEACrMy/jtY3Yq52mqapxFPKuj0QTCQThoftB0xHiSV4qX9HrvDuZYZGu+KxoKatiAZODMFI VSoRwhv3cUnwFV6E/OGYfSr5pn2FxShm2U8kpbadesIUtIzBdl3Gf6EG9I9NzttUs/CCJZGNTO4 /D77USfiz7Ykf+QSalT61BmYnasCQYmooc/qs30NVnrqfHj8ODai17Ss8WU0lYe0ZhJp5uAuZSd xOY9Pfb2iAOQP0K54l0sMVzZG7xnY5rEDSP/Ph9obPz67hDhbDwI5qEM4GwFkLR2Ujj2LlZJorX tyawf+G/nRUYRGUIa67FQmQ0cBAKT7Axcc5CQcC1ptMoUh/Fmf4zcrgCUAVfV1mz//DlKRQsnWJ taKvOICE7C11nYwJmEyNimfispdbhyRrjUWJPwyV3qun3neOD9xBEB8LLHGOqXM/5lSyJOMyj0E 0g5/1oDErVk7fI4fLNRsdlV5x9ziZ0u3Jpdfh8HK+YLQYJaL8Ie0/D1J/Kq2svGnLwW8NmkbNzN yTr8yy4dROC2YEDdLnkr6uQ3REUDL/wQoltpyWp6i4ax+RJ9kbyG9myum/dm8Swhx7qlaobkDFU bL4+BzrBY5PtA77+m6U0uNvSMCm5yxG5V6MboWhhZhZzYfBKlFZoS+d5I8yxDygzN1jPtJN+UIZ 7aR7+ToH7tNB+Hw== X-Developer-Key: i=kurt@linutronix.de; a=openpgp; fpr=BCB9BFB2C8C37DD3DFDB5992C193D1F2AA467382 X-Patchwork-Delegate: kuba@kernel.org When running the igc with XDP/ZC in busy polling mode with deferral of hard interrupts, interrupts still happen from time to time. That is caused by the igb task watchdog which triggers Rx interrupts periodically. That mechanism has been introduced to overcome skb/memory allocation failures [1]. So the Rx clean functions stop processing the Rx ring in case of such failure. The task watchdog triggers Rx interrupts periodically in the hope that memory became available in the mean time. The current behavior is undesirable for real time applications, because the driver induced Rx interrupts trigger also the softirq processing. However, all real time packets should be processed by the application which uses the busy polling method. Therefore, only trigger the Rx interrupts in case of real allocation failures. Introduce a new flag for signaling that condition. Follow the same logic as in commit 8dcf2c212078 ("igc: Get rid of spurious interrupts"). [1] - https://git.kernel.org/pub/scm/linux/kernel/git/tglx/history.git/commit/?id=3be507547e6177e5c808544bd6a2efa2c7f1d436 Reviewed-by: Joe Damato Reviewed-by: Aleksandr Loktionov Tested-by: Sweta Kumari Signed-off-by: Kurt Kanzenbach --- drivers/net/ethernet/intel/igb/igb.h | 3 ++- drivers/net/ethernet/intel/igb/igb_main.c | 29 +++++++++++++++++++++++++---- drivers/net/ethernet/intel/igb/igb_xsk.c | 1 + 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/intel/igb/igb.h b/drivers/net/ethernet/intel/igb/igb.h index 79eca385a751bfdafdf384928b6cc1b350b22560..f34ead8243e9f0176a068299138c5c16f7faab2e 100644 --- a/drivers/net/ethernet/intel/igb/igb.h +++ b/drivers/net/ethernet/intel/igb/igb.h @@ -391,7 +391,8 @@ enum e1000_ring_flags_t { IGB_RING_FLAG_RX_LB_VLAN_BSWAP, IGB_RING_FLAG_TX_CTX_IDX, IGB_RING_FLAG_TX_DETECT_HANG, - IGB_RING_FLAG_TX_DISABLED + IGB_RING_FLAG_TX_DISABLED, + IGB_RING_FLAG_RX_ALLOC_FAILED, }; #define ring_uses_large_buffer(ring) \ diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index 054376d648da883f35d1dee5f879487b8adfd540..25abe7d8ab400f63ca9b4e87c9b5f2c15316485a 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -5755,11 +5755,29 @@ static void igb_watchdog_task(struct work_struct *work) if (adapter->flags & IGB_FLAG_HAS_MSIX) { u32 eics = 0; - for (i = 0; i < adapter->num_q_vectors; i++) - eics |= adapter->q_vector[i]->eims_value; - wr32(E1000_EICS, eics); + for (i = 0; i < adapter->num_q_vectors; i++) { + struct igb_q_vector *q_vector = adapter->q_vector[i]; + struct igb_ring *rx_ring; + + if (!q_vector->rx.ring) + continue; + + rx_ring = adapter->rx_ring[q_vector->rx.ring->queue_index]; + + if (test_bit(IGB_RING_FLAG_RX_ALLOC_FAILED, &rx_ring->flags)) { + eics |= q_vector->eims_value; + clear_bit(IGB_RING_FLAG_RX_ALLOC_FAILED, &rx_ring->flags); + } + } + if (eics) + wr32(E1000_EICS, eics); } else { - wr32(E1000_ICS, E1000_ICS_RXDMT0); + struct igb_ring *rx_ring = adapter->rx_ring[0]; + + if (test_bit(IGB_RING_FLAG_RX_ALLOC_FAILED, &rx_ring->flags)) { + clear_bit(IGB_RING_FLAG_RX_ALLOC_FAILED, &rx_ring->flags); + wr32(E1000_ICS, E1000_ICS_RXDMT0); + } } igb_spoof_check(adapter); @@ -9090,6 +9108,7 @@ static int igb_clean_rx_irq(struct igb_q_vector *q_vector, const int budget) if (!xdp_res && !skb) { rx_ring->rx_stats.alloc_failed++; rx_buffer->pagecnt_bias++; + set_bit(IGB_RING_FLAG_RX_ALLOC_FAILED, &rx_ring->flags); break; } @@ -9149,6 +9168,7 @@ static bool igb_alloc_mapped_page(struct igb_ring *rx_ring, page = dev_alloc_pages(igb_rx_pg_order(rx_ring)); if (unlikely(!page)) { rx_ring->rx_stats.alloc_failed++; + set_bit(IGB_RING_FLAG_RX_ALLOC_FAILED, &rx_ring->flags); return false; } @@ -9165,6 +9185,7 @@ static bool igb_alloc_mapped_page(struct igb_ring *rx_ring, __free_pages(page, igb_rx_pg_order(rx_ring)); rx_ring->rx_stats.alloc_failed++; + set_bit(IGB_RING_FLAG_RX_ALLOC_FAILED, &rx_ring->flags); return false; } diff --git a/drivers/net/ethernet/intel/igb/igb_xsk.c b/drivers/net/ethernet/intel/igb/igb_xsk.c index 157d43787fa0b55a74714f69e9e7903b695fcf0a..5cf67ba292694f14822420a738ffb8f6b0f588cb 100644 --- a/drivers/net/ethernet/intel/igb/igb_xsk.c +++ b/drivers/net/ethernet/intel/igb/igb_xsk.c @@ -415,6 +415,7 @@ int igb_clean_rx_irq_zc(struct igb_q_vector *q_vector, /* exit if we failed to retrieve a buffer */ if (!skb) { rx_ring->rx_stats.alloc_failed++; + set_bit(IGB_RING_FLAG_RX_ALLOC_FAILED, &rx_ring->flags); break; }