Message ID | 20201013144447.6706-5-osalvador@suse.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | HWpoison: further fixes and cleanups | expand |
On Tue, Oct 13, 2020 at 04:44:47PM +0200, Oscar Salvador wrote: > memory_failure and soft_offline_path paths now drain pcplists by calling > get_hwpoison_page. > > memory_failure flags the page as HWPoison before, so that page cannot > longer go into a pcplist, and soft_offline_page only flags a page as > HWPoison if 1) we took the page off a buddy freelist 2) the page was > in-use and we migrated it 3) was a clean pagecache. > > Because of that, a page cannot longer be poisoned and be in a pcplist. > > Signed-off-by: Oscar Salvador <osalvador@suse.de> Thank you! Acked-by: Naoya Horiguchi <naoya.horiguchi@nec.com>
On 10/13/20 4:44 PM, Oscar Salvador wrote: > memory_failure and soft_offline_path paths now drain pcplists by calling > get_hwpoison_page. > > memory_failure flags the page as HWPoison before, so that page cannot > longer go into a pcplist, and soft_offline_page only flags a page as > HWPoison if 1) we took the page off a buddy freelist 2) the page was > in-use and we migrated it 3) was a clean pagecache. > > Because of that, a page cannot longer be poisoned and be in a pcplist. > > Signed-off-by: Oscar Salvador <osalvador@suse.de> Acked-by: Vlastimil Babka <vbabka@suse.cz> > --- > mm/madvise.c | 5 ----- > 1 file changed, 5 deletions(-) > > diff --git a/mm/madvise.c b/mm/madvise.c > index 416a56b8e757..c6b5524add58 100644 > --- a/mm/madvise.c > +++ b/mm/madvise.c > @@ -877,7 +877,6 @@ static long madvise_remove(struct vm_area_struct *vma, > static int madvise_inject_error(int behavior, > unsigned long start, unsigned long end) > { > - struct zone *zone; > unsigned long size; > > if (!capable(CAP_SYS_ADMIN)) > @@ -922,10 +921,6 @@ static int madvise_inject_error(int behavior, > return ret; > } > > - /* Ensure that all poisoned pages are removed from per-cpu lists */ > - for_each_populated_zone(zone) > - drain_all_pages(zone); > - > return 0; > } > #endif >
diff --git a/mm/madvise.c b/mm/madvise.c index 416a56b8e757..c6b5524add58 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -877,7 +877,6 @@ static long madvise_remove(struct vm_area_struct *vma, static int madvise_inject_error(int behavior, unsigned long start, unsigned long end) { - struct zone *zone; unsigned long size; if (!capable(CAP_SYS_ADMIN)) @@ -922,10 +921,6 @@ static int madvise_inject_error(int behavior, return ret; } - /* Ensure that all poisoned pages are removed from per-cpu lists */ - for_each_populated_zone(zone) - drain_all_pages(zone); - return 0; } #endif
memory_failure and soft_offline_path paths now drain pcplists by calling get_hwpoison_page. memory_failure flags the page as HWPoison before, so that page cannot longer go into a pcplist, and soft_offline_page only flags a page as HWPoison if 1) we took the page off a buddy freelist 2) the page was in-use and we migrated it 3) was a clean pagecache. Because of that, a page cannot longer be poisoned and be in a pcplist. Signed-off-by: Oscar Salvador <osalvador@suse.de> --- mm/madvise.c | 5 ----- 1 file changed, 5 deletions(-)