linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 1/3] i40e: use minimal tx and rx pairs for kdump
       [not found] <20210304025543.334912-1-coxu@redhat.com>
@ 2021-03-04  2:55 ` Coiby Xu
  2021-04-22 21:00   ` Switzer, David
  2021-03-04  2:55 ` [PATCH v1 2/3] i40e: use minimal rx and tx ring buffers " Coiby Xu
  2021-03-04  2:55 ` [PATCH v1 3/3] i40e: use minimal admin queue " Coiby Xu
  2 siblings, 1 reply; 6+ messages in thread
From: Coiby Xu @ 2021-03-04  2:55 UTC (permalink / raw)
  To: netdev
  Cc: kexec, intel-wired-lan, Jakub Kicinski, Jesse Brandeburg,
	Tony Nguyen, David S. Miller, open list

Set the number of the MSI-X vectors to 1. When MSI-X is enabled,
it's not allowed to use more TC queue pairs than MSI-X vectors
(pf->num_lan_msix) exist. Thus the number of tx and rx pairs
(vsi->num_queue_pairs) will be equal to the number of MSI-X vectors,
i.e., 1.

Signed-off-by: Coiby Xu <coxu@redhat.com>
---
 drivers/net/ethernet/intel/i40e/i40e_main.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 353deae139f9..77bf8c392750 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -6,6 +6,7 @@
 #include <linux/pci.h>
 #include <linux/bpf.h>
 #include <generated/utsrelease.h>
+#include <linux/crash_dump.h>
 
 /* Local includes */
 #include "i40e.h"
@@ -15485,6 +15486,14 @@ static int i40e_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	if (err)
 		goto err_switch_setup;
 
+	/* Reduce tx and rx pairs for kdump
+	 * When MSI-X is enabled, it's not allowed to use more TC queue
+	 * pairs than MSI-X vectors (pf->num_lan_msix) exist. Thus
+	 * vsi->num_queue_pairs will be equal to pf->num_lan_msix, i.e., 1.
+	 */
+	if (is_kdump_kernel())
+		pf->num_lan_msix = 1;
+
 	pf->udp_tunnel_nic.set_port = i40e_udp_tunnel_set_port;
 	pf->udp_tunnel_nic.unset_port = i40e_udp_tunnel_unset_port;
 	pf->udp_tunnel_nic.flags = UDP_TUNNEL_NIC_INFO_MAY_SLEEP;
-- 
2.30.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v1 2/3] i40e: use minimal rx and tx ring buffers for kdump
       [not found] <20210304025543.334912-1-coxu@redhat.com>
  2021-03-04  2:55 ` [PATCH v1 1/3] i40e: use minimal tx and rx pairs for kdump Coiby Xu
@ 2021-03-04  2:55 ` Coiby Xu
  2021-04-22 20:59   ` Switzer, David
  2021-03-04  2:55 ` [PATCH v1 3/3] i40e: use minimal admin queue " Coiby Xu
  2 siblings, 1 reply; 6+ messages in thread
From: Coiby Xu @ 2021-03-04  2:55 UTC (permalink / raw)
  To: netdev
  Cc: kexec, intel-wired-lan, Jakub Kicinski, Jesse Brandeburg,
	Tony Nguyen, David S. Miller, open list

Use the minimum of the number of descriptors thus we will allocate the
minimal ring buffers for kdump.

Signed-off-by: Coiby Xu <coxu@redhat.com>
---
 drivers/net/ethernet/intel/i40e/i40e_main.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 77bf8c392750..d6868c7aee05 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -11029,6 +11029,11 @@ static int i40e_set_num_rings_in_vsi(struct i40e_vsi *vsi)
 		return -ENODATA;
 	}
 
+	if (is_kdump_kernel()) {
+		vsi->num_tx_desc = I40E_MIN_NUM_DESCRIPTORS;
+		vsi->num_rx_desc = I40E_MIN_NUM_DESCRIPTORS;
+	}
+
 	return 0;
 }
 
-- 
2.30.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v1 3/3] i40e: use minimal admin queue for kdump
       [not found] <20210304025543.334912-1-coxu@redhat.com>
  2021-03-04  2:55 ` [PATCH v1 1/3] i40e: use minimal tx and rx pairs for kdump Coiby Xu
  2021-03-04  2:55 ` [PATCH v1 2/3] i40e: use minimal rx and tx ring buffers " Coiby Xu
@ 2021-03-04  2:55 ` Coiby Xu
  2021-04-22 21:00   ` Switzer, David
  2 siblings, 1 reply; 6+ messages in thread
From: Coiby Xu @ 2021-03-04  2:55 UTC (permalink / raw)
  To: netdev
  Cc: kexec, intel-wired-lan, Jakub Kicinski, Jesse Brandeburg,
	Tony Nguyen, David S. Miller, open list

The minimum size of admin send/receive queue is 1 and 2 respectively.
The admin send queue can't be set to 1 because in that case, the
firmware would fail to init.

Signed-off-by: Coiby Xu <coxu@redhat.com>
---
 drivers/net/ethernet/intel/i40e/i40e.h      | 2 ++
 drivers/net/ethernet/intel/i40e/i40e_main.c | 9 +++++++--
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h
index cd53981fa5e0..09217944baa4 100644
--- a/drivers/net/ethernet/intel/i40e/i40e.h
+++ b/drivers/net/ethernet/intel/i40e/i40e.h
@@ -66,6 +66,8 @@
 #define I40E_FDIR_RING_COUNT		32
 #define I40E_MAX_AQ_BUF_SIZE		4096
 #define I40E_AQ_LEN			256
+#define I40E_MIN_ARQ_LEN		1
+#define I40E_MIN_ASQ_LEN		2
 #define I40E_AQ_WORK_LIMIT		66 /* max number of VFs + a little */
 #define I40E_MAX_USER_PRIORITY		8
 #define I40E_DEFAULT_TRAFFIC_CLASS	BIT(0)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index d6868c7aee05..5d67fb12e576 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -15327,8 +15327,13 @@ static int i40e_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 
 	i40e_check_recovery_mode(pf);
 
-	hw->aq.num_arq_entries = I40E_AQ_LEN;
-	hw->aq.num_asq_entries = I40E_AQ_LEN;
+	if (is_kdump_kernel()) {
+		hw->aq.num_arq_entries = I40E_MIN_ARQ_LEN;
+		hw->aq.num_asq_entries = I40E_MIN_ASQ_LEN;
+	} else {
+		hw->aq.num_arq_entries = I40E_AQ_LEN;
+		hw->aq.num_asq_entries = I40E_AQ_LEN;
+	}
 	hw->aq.arq_buf_size = I40E_MAX_AQ_BUF_SIZE;
 	hw->aq.asq_buf_size = I40E_MAX_AQ_BUF_SIZE;
 	pf->adminq_work_limit = I40E_AQ_WORK_LIMIT;
-- 
2.30.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* RE: [PATCH v1 2/3] i40e: use minimal rx and tx ring buffers for kdump
  2021-03-04  2:55 ` [PATCH v1 2/3] i40e: use minimal rx and tx ring buffers " Coiby Xu
@ 2021-04-22 20:59   ` Switzer, David
  0 siblings, 0 replies; 6+ messages in thread
From: Switzer, David @ 2021-04-22 20:59 UTC (permalink / raw)
  To: Coiby Xu, netdev
  Cc: kexec, intel-wired-lan, Jakub Kicinski, Brandeburg, Jesse,
	Nguyen, Anthony L, David S. Miller, open list


>-----Original Message-----
>From: Coiby Xu <coxu@redhat.com>
>Sent: Wednesday, March 3, 2021 6:56 PM
>To: netdev@vger.kernel.org
>Cc: kexec@lists.infradead.org; intel-wired-lan@lists.osuosl.org; Jakub Kicinski
><kuba@kernel.org>; Brandeburg, Jesse <jesse.brandeburg@intel.com>; Nguyen,
>Anthony L <anthony.l.nguyen@intel.com>; David S. Miller
><davem@davemloft.net>; open list <linux-kernel@vger.kernel.org>
>Subject: [PATCH v1 2/3] i40e: use minimal rx and tx ring buffers for kdump
>
>Use the minimum of the number of descriptors thus we will allocate the minimal
>ring buffers for kdump.
>
>Signed-off-by: Coiby Xu <coxu@redhat.com>
>---
> drivers/net/ethernet/intel/i40e/i40e_main.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
Tested-by: Dave Switzer <david.switzer@intel.com>


^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [PATCH v1 3/3] i40e: use minimal admin queue for kdump
  2021-03-04  2:55 ` [PATCH v1 3/3] i40e: use minimal admin queue " Coiby Xu
@ 2021-04-22 21:00   ` Switzer, David
  0 siblings, 0 replies; 6+ messages in thread
From: Switzer, David @ 2021-04-22 21:00 UTC (permalink / raw)
  To: Coiby Xu, netdev
  Cc: kexec, intel-wired-lan, Jakub Kicinski, Brandeburg, Jesse,
	Nguyen, Anthony L, David S. Miller, open list


>-----Original Message-----
>From: Coiby Xu <coxu@redhat.com>
>Sent: Wednesday, March 3, 2021 6:56 PM
>To: netdev@vger.kernel.org
>Cc: kexec@lists.infradead.org; intel-wired-lan@lists.osuosl.org; Jakub Kicinski
><kuba@kernel.org>; Brandeburg, Jesse <jesse.brandeburg@intel.com>; Nguyen,
>Anthony L <anthony.l.nguyen@intel.com>; David S. Miller
><davem@davemloft.net>; open list <linux-kernel@vger.kernel.org>
>Subject: [PATCH v1 3/3] i40e: use minimal admin queue for kdump
>
>The minimum size of admin send/receive queue is 1 and 2 respectively.
>The admin send queue can't be set to 1 because in that case, the firmware would
>fail to init.
>
>Signed-off-by: Coiby Xu <coxu@redhat.com>
>---
> drivers/net/ethernet/intel/i40e/i40e.h      | 2 ++
> drivers/net/ethernet/intel/i40e/i40e_main.c | 9 +++++++--
> 2 files changed, 9 insertions(+), 2 deletions(-)
>
Tested-by: Dave Switzer <david.switzer@intel.com


^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [PATCH v1 1/3] i40e: use minimal tx and rx pairs for kdump
  2021-03-04  2:55 ` [PATCH v1 1/3] i40e: use minimal tx and rx pairs for kdump Coiby Xu
@ 2021-04-22 21:00   ` Switzer, David
  0 siblings, 0 replies; 6+ messages in thread
From: Switzer, David @ 2021-04-22 21:00 UTC (permalink / raw)
  To: Coiby Xu, netdev
  Cc: kexec, intel-wired-lan, Jakub Kicinski, Brandeburg, Jesse,
	Nguyen, Anthony L, David S. Miller, open list


>-----Original Message-----
>From: Coiby Xu <coxu@redhat.com>
>Sent: Wednesday, March 3, 2021 6:56 PM
>To: netdev@vger.kernel.org
>Cc: kexec@lists.infradead.org; intel-wired-lan@lists.osuosl.org; Jakub Kicinski
><kuba@kernel.org>; Brandeburg, Jesse <jesse.brandeburg@intel.com>; Nguyen,
>Anthony L <anthony.l.nguyen@intel.com>; David S. Miller
><davem@davemloft.net>; open list <linux-kernel@vger.kernel.org>
>Subject: [PATCH v1 1/3] i40e: use minimal tx and rx pairs for kdump
>
>Set the number of the MSI-X vectors to 1. When MSI-X is enabled, it's not allowed
>to use more TC queue pairs than MSI-X vectors
>(pf->num_lan_msix) exist. Thus the number of tx and rx pairs
>(vsi->num_queue_pairs) will be equal to the number of MSI-X vectors, i.e., 1.
>
>Signed-off-by: Coiby Xu <coxu@redhat.com>
>---
> drivers/net/ethernet/intel/i40e/i40e_main.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
Tested-by: Dave Switzer <david.switzer@intel.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-04-22 21:01 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20210304025543.334912-1-coxu@redhat.com>
2021-03-04  2:55 ` [PATCH v1 1/3] i40e: use minimal tx and rx pairs for kdump Coiby Xu
2021-04-22 21:00   ` Switzer, David
2021-03-04  2:55 ` [PATCH v1 2/3] i40e: use minimal rx and tx ring buffers " Coiby Xu
2021-04-22 20:59   ` Switzer, David
2021-03-04  2:55 ` [PATCH v1 3/3] i40e: use minimal admin queue " Coiby Xu
2021-04-22 21:00   ` Switzer, David

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).