Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755331Ab2KITS2 (ORCPT ); Fri, 9 Nov 2012 14:18:28 -0500 Received: from mx1.redhat.com ([209.132.183.28]:22668 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753526Ab2KITSY (ORCPT ); Fri, 9 Nov 2012 14:18:24 -0500 From: Jeff Moyer To: linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org Cc: Bart Van Assche Subject: [patch,v3 00/10] make I/O path allocations more numa-friendly Date: Fri, 9 Nov 2012 14:17:57 -0500 Message-Id: <1352488687-19935-1-git-send-email-jmoyer@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2475 Lines: 61 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(-) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/