Message ID | 1346837155-534-21-git-send-email-wency@cn.fujitsu.com (mailing list archive) |
---|---|
State | Awaiting Upstream |
Headers | show |
2012/9/5 <wency@cn.fujitsu.com> > > From: Wen Congyang <wency@cn.fujitsu.com> > > hwpoisoned may set when we offline a page by the sysfs interface > /sys/devices/system/memory/soft_offline_page or > /sys/devices/system/memory/hard_offline_page. If we don't clear > this flag when onlining pages, this page can't be freed, and will > not in free list. So we can't offline these pages again. So we > should clear this flag when onlining pages. > > CC: David Rientjes <rientjes@google.com> > CC: Jiang Liu <liuj97@gmail.com> > CC: Len Brown <len.brown@intel.com> > CC: Benjamin Herrenschmidt <benh@kernel.crashing.org> > CC: Paul Mackerras <paulus@samba.org> > CC: Christoph Lameter <cl@linux.com> > Cc: Minchan Kim <minchan.kim@gmail.com> > CC: Andrew Morton <akpm@linux-foundation.org> > CC: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> > CC: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com> > Signed-off-by: Wen Congyang <wency@cn.fujitsu.com> > --- > mm/memory_hotplug.c | 5 +++++ > 1 files changed, 5 insertions(+), 0 deletions(-) > > diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c > index 270c249..140c080 100644 > --- a/mm/memory_hotplug.c > +++ b/mm/memory_hotplug.c > @@ -661,6 +661,11 @@ EXPORT_SYMBOL_GPL(__online_page_increment_counters); > > void __online_page_free(struct page *page) > { > +#ifdef CONFIG_MEMORY_FAILURE > + /* The page may be marked HWPoisoned by soft/hard offline page */ > + ClearPageHWPoison(page); Hi Congyang, I think you should decrease mce_bad_pages counter her atomic_long_sub(1, &mce_bad_pages); > > +#endif > + > ClearPageReserved(page); > init_page_count(page); > __free_page(page); > -- > 1.7.1 > > -- > To unsubscribe, send a message with 'unsubscribe linux-mm' in > the body to majordomo@kvack.org. For more info on Linux MM, > see: http://www.linux-mm.org/ . > Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> -- To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
At 09/06/2012 03:27 PM, andywu106?? Wrote: > 2012/9/5 <wency@cn.fujitsu.com> >> >> From: Wen Congyang <wency@cn.fujitsu.com> >> >> hwpoisoned may set when we offline a page by the sysfs interface >> /sys/devices/system/memory/soft_offline_page or >> /sys/devices/system/memory/hard_offline_page. If we don't clear >> this flag when onlining pages, this page can't be freed, and will >> not in free list. So we can't offline these pages again. So we >> should clear this flag when onlining pages. >> >> CC: David Rientjes <rientjes@google.com> >> CC: Jiang Liu <liuj97@gmail.com> >> CC: Len Brown <len.brown@intel.com> >> CC: Benjamin Herrenschmidt <benh@kernel.crashing.org> >> CC: Paul Mackerras <paulus@samba.org> >> CC: Christoph Lameter <cl@linux.com> >> Cc: Minchan Kim <minchan.kim@gmail.com> >> CC: Andrew Morton <akpm@linux-foundation.org> >> CC: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> >> CC: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com> >> Signed-off-by: Wen Congyang <wency@cn.fujitsu.com> >> --- >> mm/memory_hotplug.c | 5 +++++ >> 1 files changed, 5 insertions(+), 0 deletions(-) >> >> diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c >> index 270c249..140c080 100644 >> --- a/mm/memory_hotplug.c >> +++ b/mm/memory_hotplug.c >> @@ -661,6 +661,11 @@ EXPORT_SYMBOL_GPL(__online_page_increment_counters); >> >> void __online_page_free(struct page *page) >> { >> +#ifdef CONFIG_MEMORY_FAILURE >> + /* The page may be marked HWPoisoned by soft/hard offline page */ >> + ClearPageHWPoison(page); > > Hi Congyang, > I think you should decrease mce_bad_pages counter her > atomic_long_sub(1, &mce_bad_pages); Yes, thanks for pointing it out. Thanks Wen Congyang > >> >> +#endif >> + >> ClearPageReserved(page); >> init_page_count(page); >> __free_page(page); >> -- >> 1.7.1 >> >> -- >> To unsubscribe, send a message with 'unsubscribe linux-mm' in >> the body to majordomo@kvack.org. For more info on Linux MM, >> see: http://www.linux-mm.org/ . >> Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> > -- To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index 270c249..140c080 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c @@ -661,6 +661,11 @@ EXPORT_SYMBOL_GPL(__online_page_increment_counters); void __online_page_free(struct page *page) { +#ifdef CONFIG_MEMORY_FAILURE + /* The page may be marked HWPoisoned by soft/hard offline page */ + ClearPageHWPoison(page); +#endif + ClearPageReserved(page); init_page_count(page); __free_page(page);