All of lore.kernel.org
 help / color / mirror / Atom feed
* [patch,v3 00/10] make I/O path allocations more numa-friendly
@ 2012-11-09 19:17 Jeff Moyer
  2012-11-09 19:17 ` [patch,v3 01/10] scsi: add scsi_host_alloc_node Jeff Moyer
                   ` (10 more replies)
  0 siblings, 11 replies; 15+ messages in thread
From: Jeff Moyer @ 2012-11-09 19:17 UTC (permalink / raw)
  To: linux-kernel, linux-scsi; +Cc: Bart Van Assche

Hi,

This patch set makes memory allocations for data structures used in
the I/O path more numa friendly by allocating them from the same numa
node as the storage device.  I've only converted a handful of drivers
at this point.  My testing showed that, for workloads where the I/O
processes were not tied to the numa node housing the device, a speedup
of around 6% was observed.  When the I/O processes were tied to the
numa node of the device, there was no measurable difference in my test
setup.  Given my relatively low-end setup[1], I wouldn't be surprised
if others could show a more significant performance advantage.

Comments would be greatly appreciated.

Cheers,
Jeff

[1] LSI Megaraid SAS controller with 1GB battery-backed cache,
fronting a RAID 6 10+2.  The workload I used was tuned to not
have to hit disk.  Fio file attached.

--
changes from v2->v3:
- Made the numa_node Scsi_Host structure member dependent on CONFIG_NUMA
- Got rid of a GFP_ZERO I added accidentally
changes from v1->v2:
- got rid of the vfs patch, as Al pointed out some fundamental
  problems with it
- credited Bart van Assche properly


Jeff Moyer (10):
  scsi: add scsi_host_alloc_node
  scsi: make __scsi_alloc_queue numa-aware
  scsi: make scsi_alloc_sdev numa-aware
  scsi: allocate scsi_cmnd-s from the device's local numa node
  sd: use alloc_disk_node
  ata: use scsi_host_alloc_node
  megaraid_sas: use scsi_host_alloc_node
  mpt2sas: use scsi_host_alloc_node
  lpfc: use scsi_host_alloc_node
  cciss: use blk_init_queue_node

 drivers/ata/libata-scsi.c                 |    3 ++-
 drivers/block/cciss.c                     |    3 ++-
 drivers/scsi/hosts.c                      |   13 +++++++++++--
 drivers/scsi/lpfc/lpfc_init.c             |   10 ++++++----
 drivers/scsi/megaraid/megaraid_sas_base.c |    5 +++--
 drivers/scsi/mpt2sas/mpt2sas_scsih.c      |    4 ++--
 drivers/scsi/scsi.c                       |   16 ++++++++++------
 drivers/scsi/scsi_lib.c                   |    3 ++-
 drivers/scsi/scsi_scan.c                  |    4 ++--
 drivers/scsi/sd.c                         |    2 +-
 include/scsi/scsi_host.h                  |   28 ++++++++++++++++++++++++++++
 11 files changed, 69 insertions(+), 22 deletions(-)


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

end of thread, other threads:[~2012-11-16  8:08 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-09 19:17 [patch,v3 00/10] make I/O path allocations more numa-friendly Jeff Moyer
2012-11-09 19:17 ` [patch,v3 01/10] scsi: add scsi_host_alloc_node Jeff Moyer
2012-11-09 19:17 ` [patch,v3 02/10] scsi: make __scsi_alloc_queue numa-aware Jeff Moyer
2012-11-09 19:18 ` [patch,v3 03/10] scsi: make scsi_alloc_sdev numa-aware Jeff Moyer
2012-11-09 19:18 ` [patch,v3 04/10] scsi: allocate scsi_cmnd-s from the device's local numa node Jeff Moyer
2012-11-10  8:59   ` Bart Van Assche
2012-11-12 14:25     ` Jeff Moyer
2012-11-09 19:18 ` [patch,v3 05/10] sd: use alloc_disk_node Jeff Moyer
2012-11-09 19:18 ` [patch,v3 06/10] ata: use scsi_host_alloc_node Jeff Moyer
2012-11-16  4:33   ` Jeff Garzik
2012-11-09 19:18 ` [patch,v3 07/10] megaraid_sas: " Jeff Moyer
2012-11-09 19:18 ` [patch,v3 08/10] mpt2sas: " Jeff Moyer
2012-11-09 19:18 ` [patch,v3 09/10] lpfc: " Jeff Moyer
2012-11-09 19:18 ` [patch,v3 10/10] cciss: use blk_init_queue_node Jeff Moyer
2012-11-16  8:08 ` [patch,v3 00/10] make I/O path allocations more numa-friendly Bart Van Assche

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.