x86, PCI, ACPI: Use kmalloc_node() to optimize for performance
authorJiang Liu <jiang.liu@linux.intel.com>
Mon, 9 Jun 2014 08:19:34 +0000 (16:19 +0800)
committerThomas Gleixner <tglx@linutronix.de>
Sat, 21 Jun 2014 21:05:40 +0000 (23:05 +0200)
Use kmalloc_node() instead of kmalloc() when possible to optimize
for performance on NUMA platforms.

Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: David Rientjes <rientjes@google.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Joerg Roedel <joro@8bytes.org>
Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Grant Likely <grant.likely@linaro.org>
Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Yinghai Lu <yinghai@kernel.org>
Link: http://lkml.kernel.org/r/1402302011-23642-6-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/x86/pci/acpi.c

index 5075371ab59395b37d9819c4af90ba5a0d4724e5..cfd1b132b8e3ed4023ceecf12dbb68fc35bb68a3 100644 (file)
@@ -448,7 +448,7 @@ static void probe_pci_root_info(struct pci_root_info *info,
                return;
 
        size = sizeof(*info->res) * info->res_num;
-       info->res = kzalloc(size, GFP_KERNEL);
+       info->res = kzalloc_node(size, GFP_KERNEL, info->sd.node);
        if (!info->res) {
                info->res_num = 0;
                return;
@@ -456,7 +456,7 @@ static void probe_pci_root_info(struct pci_root_info *info,
 
        size = sizeof(*info->res_offset) * info->res_num;
        info->res_num = 0;
-       info->res_offset = kzalloc(size, GFP_KERNEL);
+       info->res_offset = kzalloc_node(size, GFP_KERNEL, info->sd.node);
        if (!info->res_offset) {
                kfree(info->res);
                info->res = NULL;
@@ -499,7 +499,7 @@ struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root)
        if (node != NUMA_NO_NODE && !node_online(node))
                node = NUMA_NO_NODE;
 
-       info = kzalloc(sizeof(*info), GFP_KERNEL);
+       info = kzalloc_node(sizeof(*info), GFP_KERNEL, node);
        if (!info) {
                printk(KERN_WARNING "pci_bus %04x:%02x: "
                       "ignored (out of memory)\n", domain, busnum);