On Thu, Sep 27, 2012 at 1:45 AM, <we...@cn.fujitsu.com> wrote: > From: Wen Congyang <we...@cn.fujitsu.com> > > When a memory block is onlined, we will try allocate memory on that node > to store page_cgroup. If onlining the memory block failed, we don't > offline the page cgroup, and we have no chance to offline this page cgroup > unless the memory block is onlined successfully again. It will cause > that we can't hot-remove the memory device on that node, because some > memory is used to store page cgroup. If onlining the memory block > is failed, there is no need to stort page cgroup for this memory. So > auto offline page_cgroup when onlining memory block failed. > > CC: David Rientjes <rient...@google.com> > CC: Jiang Liu <liu...@gmail.com> > CC: Len Brown <len.br...@intel.com> > CC: Benjamin Herrenschmidt <b...@kernel.crashing.org> > CC: Paul Mackerras <pau...@samba.org> > Cc: Minchan Kim <minchan....@gmail.com> > CC: Andrew Morton <a...@linux-foundation.org> > CC: KOSAKI Motohiro <kosaki.motoh...@jp.fujitsu.com> > CC: Yasuaki Ishimatsu <isimatu.yasu...@jp.fujitsu.com> > Signed-off-by: Wen Congyang <we...@cn.fujitsu.com> > --- > mm/page_cgroup.c | 3 +++ > 1 files changed, 3 insertions(+), 0 deletions(-) > > diff --git a/mm/page_cgroup.c b/mm/page_cgroup.c > index 5ddad0c..44db00e 100644 > --- a/mm/page_cgroup.c > +++ b/mm/page_cgroup.c > @@ -251,6 +251,9 @@ static int __meminit page_cgroup_callback(struct > notifier_block *self, > mn->nr_pages, mn->status_change_nid); > break; > case MEM_CANCEL_ONLINE: > + offline_page_cgroup(mn->start_pfn, > + mn->nr_pages, mn->status_change_nid); > + break; > case MEM_GOING_OFFLINE: > break; > case MEM_ONLINE:
Looks straight forward and reasonable. Acked-by: KOSAKI Motohiro <kosaki.motoh...@jp.fujitsu.com> -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/