public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH for-rc] RDMA/irdma: Cap MSIX used to online CPUs + 1
@ 2023-02-02 18:12 Sindhu Devale
  2023-02-06 13:52 ` Leon Romanovsky
  0 siblings, 1 reply; 2+ messages in thread
From: Sindhu Devale @ 2023-02-02 18:12 UTC (permalink / raw)
  To: jgg, leon; +Cc: linux-rdma, shiraz.saleem, mustafa.ismail, Sindhu Devale

From: Mustafa Ismail <mustafa.ismail@intel.com>

The irdma driver can use a maximum number of msix
vectors equal to num_online_cpus() + 1 and the Kernel
warning stack below is shown if that number is exceeded.
The kernel throws a warning as the driver tries to update
the affinity hint with a CPU mask greater than the max CPU IDs.
Fix this by capping the MSIX vectors to num_online_cpus() + 1.

kernel: WARNING: CPU: 7 PID: 23655 at include/linux/cpumask.h:106 irdma_cfg_ceq_vector+0x34c/0x3f0 [irdma]
kernel: RIP: 0010:irdma_cfg_ceq_vector+0x34c/0x3f0 [irdma]
kernel: Call Trace:
kernel: irdma_rt_init_hw+0xa62/0x1290 [irdma]

Fixes: 44d9e52977a1 ("RDMA/irdma: Implement device initialization definitions")
Signed-off-by: Mustafa Ismail <mustafa.ismail@intel.com>
Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com>
Signed-off-by: Sindhu Devale <sindhu.devale@intel.com>
---
 drivers/infiniband/hw/irdma/hw.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/infiniband/hw/irdma/hw.c b/drivers/infiniband/hw/irdma/hw.c
index ab246447520b..2e1e2bad0401 100644
--- a/drivers/infiniband/hw/irdma/hw.c
+++ b/drivers/infiniband/hw/irdma/hw.c
@@ -483,6 +483,8 @@ static int irdma_save_msix_info(struct irdma_pci_f *rf)
 	iw_qvlist->num_vectors = rf->msix_count;
 	if (rf->msix_count <= num_online_cpus())
 		rf->msix_shared = true;
+	else if (rf->msix_count > num_online_cpus() + 1)
+		rf->msix_count = num_online_cpus() + 1;
 
 	pmsix = rf->msix_entries;
 	for (i = 0, ceq_idx = 0; i < rf->msix_count; i++, iw_qvinfo++) {
-- 
2.27.0


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

* Re: [PATCH for-rc] RDMA/irdma: Cap MSIX used to online CPUs + 1
  2023-02-02 18:12 [PATCH for-rc] RDMA/irdma: Cap MSIX used to online CPUs + 1 Sindhu Devale
@ 2023-02-06 13:52 ` Leon Romanovsky
  0 siblings, 0 replies; 2+ messages in thread
From: Leon Romanovsky @ 2023-02-06 13:52 UTC (permalink / raw)
  To: Sindhu Devale; +Cc: jgg, linux-rdma, shiraz.saleem, mustafa.ismail

On Thu, Feb 02, 2023 at 12:12:11PM -0600, Sindhu Devale wrote:
> From: Mustafa Ismail <mustafa.ismail@intel.com>
> 
> The irdma driver can use a maximum number of msix
> vectors equal to num_online_cpus() + 1 and the Kernel

kernel

> warning stack below is shown if that number is exceeded.
> The kernel throws a warning as the driver tries to update
> the affinity hint with a CPU mask greater than the max CPU IDs.
> Fix this by capping the MSIX vectors to num_online_cpus() + 1.

You shouldn't squeeze your commit message to 60 chars, please don't break
lines like this.

> 
> kernel: WARNING: CPU: 7 PID: 23655 at include/linux/cpumask.h:106 irdma_cfg_ceq_vector+0x34c/0x3f0 [irdma]
> kernel: RIP: 0010:irdma_cfg_ceq_vector+0x34c/0x3f0 [irdma]
> kernel: Call Trace:
> kernel: irdma_rt_init_hw+0xa62/0x1290 [irdma]

Please provide full kernel splat and not truncated version.

> 
> Fixes: 44d9e52977a1 ("RDMA/irdma: Implement device initialization definitions")
> Signed-off-by: Mustafa Ismail <mustafa.ismail@intel.com>
> Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com>
> Signed-off-by: Sindhu Devale <sindhu.devale@intel.com>
> ---
>  drivers/infiniband/hw/irdma/hw.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/infiniband/hw/irdma/hw.c b/drivers/infiniband/hw/irdma/hw.c
> index ab246447520b..2e1e2bad0401 100644
> --- a/drivers/infiniband/hw/irdma/hw.c
> +++ b/drivers/infiniband/hw/irdma/hw.c
> @@ -483,6 +483,8 @@ static int irdma_save_msix_info(struct irdma_pci_f *rf)
>  	iw_qvlist->num_vectors = rf->msix_count;
>  	if (rf->msix_count <= num_online_cpus())
>  		rf->msix_shared = true;
> +	else if (rf->msix_count > num_online_cpus() + 1)
> +		rf->msix_count = num_online_cpus() + 1;
>  
>  	pmsix = rf->msix_entries;
>  	for (i = 0, ceq_idx = 0; i < rf->msix_count; i++, iw_qvinfo++) {
> -- 
> 2.27.0
> 

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

end of thread, other threads:[~2023-02-06 13:55 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-02-02 18:12 [PATCH for-rc] RDMA/irdma: Cap MSIX used to online CPUs + 1 Sindhu Devale
2023-02-06 13:52 ` Leon Romanovsky

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox