All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH v2 0/1] scsi: mpi3mr: Introduce smp_affinity_enable module parameter
@ 2025-06-01  1:40 Aaron Tomlin
  2025-06-01  1:40 ` [RFC PATCH v2 1/1] " Aaron Tomlin
  0 siblings, 1 reply; 14+ messages in thread
From: Aaron Tomlin @ 2025-06-01  1:40 UTC (permalink / raw)
  To: mpi3mr-linuxdrv.pdl
  Cc: kashyap.desai, sumit.saxena, sreekanth.reddy, James.Bottomley,
	martin.petersen, atomlin, linux-scsi, linux-kernel

I noticed that the Linux MegaRAID driver for SAS based RAID controllers has
the same aforementioned module parameter. Despite the potential performance
drawbacks, I suspect it would be useful with the Broadcom MPI3 Storage
Controller Driver too, to respect the default IRQ affinity.
Please let me know your thoughts.

Changes since v1 [1]
 - Addressed WARN_ON() in pci_alloc_irq_vectors_affinity()
   due to affd != NULL when smp_affinity_enable = 0
 - Avoid unnecessary complexity for a single queue

[1]: https://lore.kernel.org/lkml/20250428094141.1385188-2-atomlin@atomlin.com/

Aaron Tomlin (1):
  scsi: mpi3mr: Introduce smp_affinity_enable module parameter

 drivers/scsi/mpi3mr/mpi3mr.h    |  1 +
 drivers/scsi/mpi3mr/mpi3mr_fw.c | 14 ++++++++++++--
 drivers/scsi/mpi3mr/mpi3mr_os.c | 14 +++++++++++---
 3 files changed, 24 insertions(+), 5 deletions(-)

-- 
2.49.0


^ permalink raw reply	[flat|nested] 14+ messages in thread
* Re: [RFC PATCH v2 1/1] scsi: mpi3mr: Introduce smp_affinity_enable module parameter
@ 2025-06-17 16:34 Sean A.
  2025-06-18  6:49 ` John Garry
  0 siblings, 1 reply; 14+ messages in thread
From: Sean A. @ 2025-06-17 16:34 UTC (permalink / raw)
  To: john.g.garry@oracle.com
  Cc: James.Bottomley@hansenpartnership.com, atomlin@atomlin.com,
	kashyap.desai@broadcom.com, linux-kernel@vger.kernel.org,
	linux-scsi@vger.kernel.org, martin.petersen@oracle.com,
	mpi3mr-linuxdrv.pdl@broadcom.com, sreekanth.reddy@broadcom.com,
	sumit.saxena@broadcom.com


Le 17 Jun 2025, John Garry a écrit :
> You have given no substantial motivation for this change

From my perspective, workloads exist (defense, telecom, finance, RT etc) that prefer not to be interrupted and developers may opt to utilize CPU isolation and other mechanisms to reduce the likelihood of being pre-empted, evicted, etc. This includes steering interrupts away from an isolated set of cores. Also while this doesn't result from any actual benchmarking, it would seem that forcing your way on to every core in a 192 core system and refusing to move might be needlessly greedy or even detrimental to performance if most of the core set is NUMA-foreign to the storage controller. One should be able to make placement decisions to protect app threads from interruption and to ensure the interrupt handler has a sleepy, local core to play with without lighting up a bunch of interconnect paths on the way.

Generically, I believe interfaces like /proc/$pid/smp_affinity[_list] should be allowed to work as expected, and things like irqbalance should also be able to do their jobs unless there's a good (documented) reason they should not.
SA

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

end of thread, other threads:[~2025-07-02  0:30 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-01  1:40 [RFC PATCH v2 0/1] scsi: mpi3mr: Introduce smp_affinity_enable module parameter Aaron Tomlin
2025-06-01  1:40 ` [RFC PATCH v2 1/1] " Aaron Tomlin
2025-06-16 20:51   ` Martin K. Petersen
2025-06-17  7:18   ` John Garry
  -- strict thread matches above, loose matches on Subject: below --
2025-06-17 16:34 Sean A.
2025-06-18  6:49 ` John Garry
2025-06-18 15:53   ` Sean A.
2025-06-19 19:35   ` Aaron Tomlin
2025-06-20 10:43     ` John Garry
2025-06-23  5:17   ` Christoph Hellwig
2025-06-24 14:29     ` Daniel Wagner
2025-06-25 13:03       ` Aaron Tomlin
2025-07-01 13:54         ` Daniel Wagner
2025-07-02  0:30           ` Aaron Tomlin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.