login
Login
/
Register
Search
Search this site:
Forums
News
Blogs
Features
Site
Home
»
Mailing list archives
»
linux-kernel
»
2008
»
August
»
18
Re: [BUG] __GFP_THISNODE is not always honored
view
thread
Previous message: [
thread
] [
date
] [
author
]
Next message: [
thread
] [
date
] [
author
]
[view in full thread]
From: Adam Litke
Subject:
Re: [BUG] __GFP_THISNODE is not always honored
Date: Monday, August 18, 2008 - 11:16 am
On Mon, 2008-08-18 at 11:59 +0100, Mel Gorman wrote:
quoted text
> On (15/08/08 17:01), Adam Litke didst pronounce: > > While running the libhugetlbfs test suite on a NUMA machine with 2.6.27-rc3, I > > discovered some strange behavior with __GFP_THISNODE. The hugetlb function > > alloc_fresh_huge_page_node() calls alloc_pages_node() with __GFP_THISNODE but > > occasionally a page that is not on the requested node is returned. > > That's bad in itself and has wider reaching consequences than hugetlb > getting its counters wrong. I believe SLUB depends on __GFP_THISNODE > being obeyed for example. Can you boot the machine in question with > mminit_loglevel=4 and loglevel=8 set on the command line and send me the > dmesg please? It should output the zonelists and I might be able to > figure out what's going wrong. Thanks
dmesg output is attached.
quoted text
> > Since the > > hugetlb code assumes that the page will be on the requested node, badness follows > > when the page is added to the wrong node's free_list. > > > > There is clearly something wrong with the buddy allocator since __GFP_THISNODE > > cannot be trusted. Until that is fixed, the hugetlb code should not assume > > that the newly allocated page is on the node asked for. This patch prevents > > the hugetlb pool counters from being corrupted and allows the code to cope with > > unbalanced numa allocations. > > > > So far my debugging has led me to get_page_from_freelist() inside the > > for_each_zone_zonelist() loop. When buffered_rmqueue() returns a page I > > compare the value of page_to_nid(page), zone->node and the node that the > > hugetlb code requested with __GFP_THISNODE. These all match -- except when the > > problem triggers. In that case, zone->node matches the node we asked for but > > page_to_nid() does not. > > > > Feels like the wrong zonelist is being used. The dmesg with > mminit_loglevel may tell. > > > Workaround patch: > > diff --git a/mm/hugetlb.c b/mm/hugetlb.c > > index 67a7119..7a30a61 100644 > > --- a/mm/hugetlb.c > > +++ b/mm/hugetlb.c > > @@ -568,7 +568,7 @@ static struct page *alloc_fresh_huge_page_node(struct hstate *h, int nid) > > __free_pages(page, huge_page_order(h)); > > return NULL; > > } > > - prep_new_huge_page(h, page, nid); > > + prep_new_huge_page(h, page, page_to_nid(page)); > > } > > This will mask the bug for hugetlb but I wonder if this should be a > VM_BUG_ON(page_to_nid(page) != nid) ?
Yeah, the patch was provided for illustrative purposes only. -- Adam Litke - (agl at us.ibm.com) IBM Linux Technology Center
Previous message: [
thread
] [
date
] [
author
]
Next message: [
thread
] [
date
] [
author
]
Messages in current thread:
[BUG] __GFP_THISNODE is not always honored
, Adam Litke
, (Fri Aug 15, 3:01 pm)
Re: [BUG] __GFP_THISNODE is not always honored
, Mel Gorman
, (Mon Aug 18, 3:59 am)
Re: [BUG] __GFP_THISNODE is not always honored
, Adam Litke
, (Mon Aug 18, 11:16 am)
Re: [BUG] __GFP_THISNODE is not always honored
, Christoph Lameter
, (Mon Aug 18, 12:14 pm)
Re: [BUG] __GFP_THISNODE is not always honored
, Christoph Lameter
, (Mon Aug 18, 12:21 pm)
Re: [BUG] __GFP_THISNODE is not always honored
, Mel Gorman
, (Mon Aug 18, 12:52 pm)
Re: [BUG] __GFP_THISNODE is not always honored
, Mel Gorman
, (Mon Aug 18, 12:57 pm)
[BUG] Make setup_zone_migrate_reserve() aware of overlappi ...
, Adam Litke
, (Wed Aug 20, 10:08 am)
Re: [BUG] Make setup_zone_migrate_reserve() aware of overl ...
, Dave Hansen
, (Wed Aug 20, 11:11 am)
[BUG] [PATCH v2] Make setup_zone_migrate_reserve() aware o ...
, Adam Litke
, (Wed Aug 20, 12:55 pm)
Re: [BUG] [PATCH v2] Make setup_zone_migrate_reserve() awa ...
, Mel Gorman
, (Thu Aug 21, 4:33 am)
Re: [BUG] [PATCH v2] Make setup_zone_migrate_reserve() awa ...
, Andy Whitcroft
, (Tue Aug 26, 2:29 am)
Navigation
Mailing list archives
Recent posts
Popular discussions
linux-kernel
:
Mel Gorman
Re: [PATCH 1/4] vmstat: remove zone->lock from walk_zones_in_node
Guenter Roeck
Re: [lm-sensors] Location for thermal drivers
David Woodhouse
Re: RFC: Moving firmware blobs out of the kernel.
Siddha, Suresh B
Re: [PATCH 2.6.21 review I] [11/25] x86: default to physical mode on hotplug CPU k...
Peter Zijlstra
Re: [patch 4/6] mm: merge populate and nopage into fault (fixes nonlinear)
git-commits-head
:
Linux Kernel Mailing List
[MIPS] Fix potential latency problem due to non-atomic cpu_wait.
Linux Kernel Mailing List
USB: rename USB_SPEED_VARIABLE to USB_SPEED_WIRELESS
Linux Kernel Mailing List
lib/vsprintf.c: fix bug omitting minus sign of numbers (module_param)
Linux Kernel Mailing List
[Bluetooth] Initiate authentication during connection establishment
Linux Kernel Mailing List
[POWERPC] 4xx: Add ppc40x_defconfig
linux-netdev
:
MERCEDES
Your mail id has won 950,000.00 in the MERCEDES Benz Online Promo.for claims send:
David Miller
Re: [PATCH] xen/netfront: do not mark packets of length < MSS as GSO
David Miller
Re: skb_segment() questions
Shan Wei
[RFC PATCH net-next 2/5]IPv6:netfilter: Send an ICMPv6 "Fragment Reassembly Timeou...
Stanislaw Gruszka
[PATCH 1/4] bnx2x: use smp_mb() to keep ordering of read write operations
git
:
Nicolas Sebrecht
git-svn died of signal 11 (was "3 failures on test t9100 (svn)")
Junio C Hamano
Re: [PATCH 2/2] Add url.<base>.pushInsteadOf: URL rewriting for push only
Martin Langhoff
Re: [PATCH] GIT commit statistics.
Alexandre Julliard
[PATCH] gitweb: Put back shortlog instead of graphiclog in the project list.
Josh Triplett
[PATCH 2/2] Add url.<base>.pushInsteadOf: URL rewriting for push only
openbsd-misc
:
Taisto Qvist XX
Re: AMD GEODE LX-800 just works with kernel from install42.iso and kernelpanics wi...
Nico Meijer
Re: gOS Develop Kit with VIA pc-1 Processor Platform VIA C7-D
Andreas Bihlmaier
Re: jetway board sensors (Fintek F71805F)
admin
Drive a 2009 car from R799p/m
Antti Harri
Re: how to create a sha256 hash
Colocation donated by:
Syndicate