[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 2/4] scsi: host: allocate struct Scsi_Host on the NUMA node of the host adapter
- To: Sumit Saxena <sumit.saxena@xxxxxxxxxxxx>, "Martin K . Petersen" <martin.petersen@xxxxxxxxxx>, Jens Axboe <axboe@xxxxxxxxx>
- From: Hannes Reinecke <hare@xxxxxxxx>
- Date: Wed, 10 Jun 2026 07:59:57 +0200
- Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=google header.d=suse.com header.i="@suse.com" header.h="Content-Transfer-Encoding:In-Reply-To:From:Content-Language:References:Cc:To:Subject:User-Agent:MIME-Version:Date:Message-ID"
- Cc: "James E . J . Bottomley" <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx>, linux-scsi@xxxxxxxxxxxxxxx, linux-block@xxxxxxxxxxxxxxx, Adam Radford <aradford@xxxxxxxxx>, Khalid Aziz <khalid@xxxxxxxxxxxxxx>, Adaptec OEM Raid Solutions <aacraid@xxxxxxxxxxxxx>, Matthew Wilcox <willy@xxxxxxxxxxxxx>, "Juergen E . Fischer" <fischer@xxxxxxxxx>, Russell King <linux@xxxxxxxxxxxxxxx>, linux-arm-kernel@xxxxxxxxxxxxxxxxxxx, Finn Thain <fthain@xxxxxxxxxxxxxx>, Michael Schmitz <schmitzmic@xxxxxxxxx>, Anil Gurumurthy <anil.gurumurthy@xxxxxxxxxx>, Sudarsana Kalluru <sudarsana.kalluru@xxxxxxxxxx>, Oliver Neukum <oliver@xxxxxxxxxx>, Ali Akcaagac <aliakc@xxxxxx>, Jamie Lenehan <lenehan@xxxxxxxxxxx>, Ram Vegesna <ram.vegesna@xxxxxxxxxxxx>, target-devel@xxxxxxxxxxxxxxx, Bradley Grove <linuxdrivers@xxxxxxxxxxxx>, Satish Kharat <satishkh@xxxxxxxxx>, Sesidhar Baddela <sebaddel@xxxxxxxxx>, Karan Tilak Kumar <kartilak@xxxxxxxxx>, Yihang Li <liyihang9@xxxxxxxxxxxxxx>, Don Brace <don.brace@xxxxxxxxxxxxx>, storagedev@xxxxxxxxxxxxx, HighPoint Linux Team <linux@xxxxxxxxxxxxxxxxxx>, Tyrel Datwyler <tyreld@xxxxxxxxxxxxx>, Madhavan Srinivasan <maddy@xxxxxxxxxxxxx>, Michael Ellerman <mpe@xxxxxxxxxxxxxx>, Nicholas Piggin <npiggin@xxxxxxxxx>, Christophe Leroy <chleroy@xxxxxxxxxx>, linuxppc-dev@xxxxxxxxxxxxxxxx, Brian King <brking@xxxxxxxxxx>, Lee Duncan <lduncan@xxxxxxxx>, Chris Leech <cleech@xxxxxxxxxx>, Mike Christie <michael.christie@xxxxxxxxxx>, open-iscsi@xxxxxxxxxxxxxxxx, Justin Tee <justin.tee@xxxxxxxxxxxx>, Paul Ely <paul.ely@xxxxxxxxxxxx>, Kashyap Desai <kashyap.desai@xxxxxxxxxxxx>, Shivasharan S <shivasharan.srikanteshwara@xxxxxxxxxxxx>, Chandrakanth Patil <chandrakanth.patil@xxxxxxxxxxxx>, megaraidlinux.pdl@xxxxxxxxxxxx, Sathya Prakash Veerichetty <sathya.prakash@xxxxxxxxxxxx>, Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxx>, mpi3mr-linuxdrv.pdl@xxxxxxxxxxxx, Suganath Prabu Subramani <suganath-prabu.subramani@xxxxxxxxxxxx>, Ranjan Kumar <ranjan.kumar@xxxxxxxxxxxx>, MPT-FusionLinux.pdl@xxxxxxxxxxxx, Daniel Palmer <daniel@xxxxxxxxx>, GOTO Masanori <gotom@xxxxxxxxxxxx>, YOKOTA Hiroshi <yokota@xxxxxxxxxxxxxxxxxxxxxxx>, Jack Wang <jinpu.wang@xxxxxxxxxxxxxxx>, Geoff Levand <geoff@xxxxxxxxxxxxx>, Michael Reed <mdr@xxxxxxx>, Nilesh Javali <njavali@xxxxxxxxxxx>, GR-QLogic-Storage-Upstream@xxxxxxxxxxx, Narsimhulu Musini <nmusini@xxxxxxxxx>, "K . Y . Srinivasan" <kys@xxxxxxxxxxxxx>, Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>, Wei Liu <wei.liu@xxxxxxxxxx>, Dexuan Cui <decui@xxxxxxxxxxxxx>, Long Li <longli@xxxxxxxxxxxxx>, linux-hyperv@xxxxxxxxxxxxxxx, "Michael S . Tsirkin" <mst@xxxxxxxxxx>, Jason Wang <jasowang@xxxxxxxxxx>, Paolo Bonzini <pbonzini@xxxxxxxxxx>, Stefan Hajnoczi <stefanha@xxxxxxxxxx>, Eugenio Perez <eperezma@xxxxxxxxxx>, virtualization@xxxxxxxxxxxxxxx, Vishal Bhakta <vishal.bhakta@xxxxxxxxxxxx>, bcm-kernel-feedback-list@xxxxxxxxxxxx, Juergen Gross <jgross@xxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx, John Garry <john.g.garry@xxxxxxxxxx>
- Delivery-date: Wed, 10 Jun 2026 06:09:25 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
On 6/9/26 14:18, Sumit Saxena wrote:
scsi_host_alloc() used kzalloc(), which always picks an arbitrary node.
Extend the function to accept a 'struct device *dev' parameter and use
kzalloc_node() with dev_to_node(dev) so the Scsi_Host struct lands on
the same NUMA node as the HBA, mirroring the treatment already applied
to struct scsi_device, struct scsi_target, and shost_data.
When dev is NULL (legacy ISA/platform drivers without a dma_dev) the
allocation falls back to NUMA_NO_NODE, preserving existing behaviour.
Update all in-tree callers:
- PCI-based HBA drivers pass &pdev->dev (or the equivalent struct
member such as &phba->pcidev->dev, &h->pdev->dev, &ha->pdev->dev)
so their host struct is placed on the adapter's node.
- Non-PCI drivers (ISA, Amiga, ARM PCMCIA, virtio, Hyper-V, PS3, …)
pass NULL.
- libfc's libfc_host_alloc() inline helper passes NULL; FC drivers
that want NUMA awareness can open-code the call with their pdev.
Suggested-by: John Garry <john.g.garry@xxxxxxxxxx>
Signed-off-by: Sumit Saxena <sumit.saxena@xxxxxxxxxxxx>
---
drivers/scsi/3w-9xxx.c | 2 +-
drivers/scsi/3w-sas.c | 2 +-
drivers/scsi/3w-xxxx.c | 2 +-
drivers/scsi/53c700.c | 2 +-
drivers/scsi/BusLogic.c | 2 +-
drivers/scsi/a100u2w.c | 2 +-
drivers/scsi/a2091.c | 2 +-
drivers/scsi/a3000.c | 2 +-
drivers/scsi/aacraid/linit.c | 2 +-
drivers/scsi/advansys.c | 6 +++---
drivers/scsi/aha152x.c | 2 +-
drivers/scsi/aha1542.c | 2 +-
drivers/scsi/aha1740.c | 2 +-
drivers/scsi/aic7xxx/aic79xx_osm.c | 2 +-
drivers/scsi/aic7xxx/aic7xxx_osm.c | 2 +-
drivers/scsi/aic94xx/aic94xx_init.c | 2 +-
drivers/scsi/am53c974.c | 2 +-
drivers/scsi/arcmsr/arcmsr_hba.c | 3 ++-
drivers/scsi/arm/acornscsi.c | 2 +-
drivers/scsi/arm/arxescsi.c | 2 +-
drivers/scsi/arm/cumana_1.c | 2 +-
drivers/scsi/arm/cumana_2.c | 2 +-
drivers/scsi/arm/eesox.c | 2 +-
drivers/scsi/arm/oak.c | 2 +-
drivers/scsi/arm/powertec.c | 2 +-
drivers/scsi/atari_scsi.c | 2 +-
drivers/scsi/atp870u.c | 2 +-
drivers/scsi/bfa/bfad_im.c | 2 +-
drivers/scsi/csiostor/csio_init.c | 4 ++--
drivers/scsi/dc395x.c | 2 +-
drivers/scsi/dmx3191d.c | 2 +-
drivers/scsi/elx/efct/efct_xport.c | 4 ++--
drivers/scsi/esas2r/esas2r_main.c | 2 +-
drivers/scsi/fdomain.c | 2 +-
drivers/scsi/fnic/fnic_main.c | 2 +-
drivers/scsi/g_NCR5380.c | 2 +-
drivers/scsi/gvp11.c | 2 +-
drivers/scsi/hisi_sas/hisi_sas_main.c | 2 +-
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 2 +-
drivers/scsi/hosts.c | 6 ++++--
drivers/scsi/hpsa.c | 2 +-
drivers/scsi/hptiop.c | 2 +-
drivers/scsi/ibmvscsi/ibmvfc.c | 2 +-
drivers/scsi/ibmvscsi/ibmvscsi.c | 2 +-
drivers/scsi/imm.c | 2 +-
drivers/scsi/initio.c | 2 +-
drivers/scsi/ipr.c | 2 +-
drivers/scsi/ips.c | 2 +-
drivers/scsi/isci/init.c | 2 +-
drivers/scsi/jazz_esp.c | 2 +-
drivers/scsi/libiscsi.c | 2 +-
drivers/scsi/lpfc/lpfc_init.c | 2 +-
drivers/scsi/mac53c94.c | 2 +-
drivers/scsi/mac_esp.c | 2 +-
drivers/scsi/mac_scsi.c | 2 +-
drivers/scsi/megaraid.c | 2 +-
drivers/scsi/megaraid/megaraid_mbox.c | 2 +-
drivers/scsi/megaraid/megaraid_sas_base.c | 2 +-
drivers/scsi/mesh.c | 2 +-
drivers/scsi/mpi3mr/mpi3mr_os.c | 2 +-
drivers/scsi/mpt3sas/mpt3sas_scsih.c | 4 ++--
drivers/scsi/mvme147.c | 2 +-
drivers/scsi/mvsas/mv_init.c | 2 +-
drivers/scsi/mvumi.c | 2 +-
drivers/scsi/myrb.c | 2 +-
drivers/scsi/myrs.c | 2 +-
drivers/scsi/ncr53c8xx.c | 2 +-
drivers/scsi/nsp32.c | 2 +-
drivers/scsi/pcmcia/nsp_cs.c | 2 +-
drivers/scsi/pcmcia/qlogic_stub.c | 2 +-
drivers/scsi/pcmcia/sym53c500_cs.c | 2 +-
drivers/scsi/pm8001/pm8001_init.c | 2 +-
drivers/scsi/pmcraid.c | 2 +-
drivers/scsi/ppa.c | 2 +-
drivers/scsi/ps3rom.c | 2 +-
drivers/scsi/qla1280.c | 2 +-
drivers/scsi/qla2xxx/qla_mid.c | 2 +-
drivers/scsi/qla2xxx/qla_os.c | 2 +-
drivers/scsi/qlogicfas.c | 2 +-
drivers/scsi/qlogicpti.c | 2 +-
drivers/scsi/scsi_debug.c | 2 +-
drivers/scsi/sgiwd93.c | 2 +-
drivers/scsi/smartpqi/smartpqi_init.c | 2 +-
drivers/scsi/snic/snic_main.c | 2 +-
drivers/scsi/stex.c | 2 +-
drivers/scsi/storvsc_drv.c | 2 +-
drivers/scsi/sun3_scsi.c | 2 +-
drivers/scsi/sun3x_esp.c | 2 +-
drivers/scsi/sun_esp.c | 2 +-
drivers/scsi/sym53c8xx_2/sym_glue.c | 2 +-
drivers/scsi/virtio_scsi.c | 2 +-
drivers/scsi/vmw_pvscsi.c | 2 +-
drivers/scsi/wd719x.c | 2 +-
drivers/scsi/xen-scsifront.c | 2 +-
drivers/scsi/zorro_esp.c | 2 +-
include/scsi/libfc.h | 2 +-
include/scsi/scsi_host.h | 3 ++-
97 files changed, 107 insertions(+), 103 deletions(-)
Quite a lot of churn for such a (relatively) simple change.
I think it might be better to introduce a new function
(scsi_host_alloc_node() ?) with the additional parameter,
and make scsi_host_alloc() a wrapper around that.
That will reduce the size of this patch immensely.
Cheers,
Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare@xxxxxxxx +49 911 74053 688
SUSE Software Solutions GmbH, Frankenstr. 146, 90461 Nürnberg
HRB 36809 (AG Nürnberg), GF: I. Totev, A. McDonald, W. Knoblich
|