On Fri, 2012-05-25 at 19:02 +0200, Andrea Arcangeli wrote: > When pages are freed abort any pending migration. If knuma_migrated > arrives first it will notice because get_page_unless_zero would fail. But knuma_migrated can run on a different cpu than this free is happening, ACCESS_ONCE() won't cure that. What's that ACCESS_ONCE() good for? Also, you already have an autonuma_ hook right there, why add more #ifdeffery ? > Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx> > --- > mm/page_alloc.c | 4 ++++ > 1 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index 3d1ee70..1d3163f 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -614,6 +614,10 @@ static inline int free_pages_check(struct page *page) > bad_page(page); > return 1; > } > + autonuma_migrate_page_remove(page); > +#ifdef CONFIG_AUTONUMA > + ACCESS_ONCE(page->autonuma_last_nid) = -1; > +#endif > if (page->flags & PAGE_FLAGS_CHECK_AT_PREP) > page->flags &= ~PAGE_FLAGS_CHECK_AT_PREP; > return 0; -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href