|
@@ -309,13 +309,17 @@ static int __devinit profile_cpu_callback(struct notifier_block *info,
|
|
|
node = cpu_to_node(cpu);
|
|
|
per_cpu(cpu_profile_flip, cpu) = 0;
|
|
|
if (!per_cpu(cpu_profile_hits, cpu)[1]) {
|
|
|
- page = alloc_pages_node(node, GFP_KERNEL | __GFP_ZERO, 0);
|
|
|
+ page = alloc_pages_node(node,
|
|
|
+ GFP_KERNEL | __GFP_ZERO | GFP_THISNODE,
|
|
|
+ 0);
|
|
|
if (!page)
|
|
|
return NOTIFY_BAD;
|
|
|
per_cpu(cpu_profile_hits, cpu)[1] = page_address(page);
|
|
|
}
|
|
|
if (!per_cpu(cpu_profile_hits, cpu)[0]) {
|
|
|
- page = alloc_pages_node(node, GFP_KERNEL | __GFP_ZERO, 0);
|
|
|
+ page = alloc_pages_node(node,
|
|
|
+ GFP_KERNEL | __GFP_ZERO | GFP_THISNODE,
|
|
|
+ 0);
|
|
|
if (!page)
|
|
|
goto out_free;
|
|
|
per_cpu(cpu_profile_hits, cpu)[0] = page_address(page);
|
|
@@ -491,12 +495,16 @@ static int __init create_hash_tables(void)
|
|
|
int node = cpu_to_node(cpu);
|
|
|
struct page *page;
|
|
|
|
|
|
- page = alloc_pages_node(node, GFP_KERNEL | __GFP_ZERO, 0);
|
|
|
+ page = alloc_pages_node(node,
|
|
|
+ GFP_KERNEL | __GFP_ZERO | GFP_THISNODE,
|
|
|
+ 0);
|
|
|
if (!page)
|
|
|
goto out_cleanup;
|
|
|
per_cpu(cpu_profile_hits, cpu)[1]
|
|
|
= (struct profile_hit *)page_address(page);
|
|
|
- page = alloc_pages_node(node, GFP_KERNEL | __GFP_ZERO, 0);
|
|
|
+ page = alloc_pages_node(node,
|
|
|
+ GFP_KERNEL | __GFP_ZERO | GFP_THISNODE,
|
|
|
+ 0);
|
|
|
if (!page)
|
|
|
goto out_cleanup;
|
|
|
per_cpu(cpu_profile_hits, cpu)[0]
|