On Tue 18-12-18 11:18:35, Oscar Salvador wrote: > On Tue, Dec 18, 2018 at 10:28:02AM +0100, Michal Hocko wrote: > > From: Michal Hocko <mhocko@xxxxxxxx> > > > > Heiko has complained that his log is swamped by warnings from has_unmovable_pages > > [ 20.536664] page dumped because: has_unmovable_pages > > [ 20.536792] page:000003d081ff4080 count:1 mapcount:0 mapping:000000008ff88600 index:0x0 compound_mapcount: 0 > > [ 20.536794] flags: 0x3fffe0000010200(slab|head) > > [ 20.536795] raw: 03fffe0000010200 0000000000000100 0000000000000200 000000008ff88600 > > [ 20.536796] raw: 0000000000000000 0020004100000000 ffffffff00000001 0000000000000000 > > [ 20.536797] page dumped because: has_unmovable_pages > > [ 20.536814] page:000003d0823b0000 count:1 mapcount:0 mapping:0000000000000000 index:0x0 > > [ 20.536815] flags: 0x7fffe0000000000() > > [ 20.536817] raw: 07fffe0000000000 0000000000000100 0000000000000200 0000000000000000 > > [ 20.536818] raw: 0000000000000000 0000000000000000 ffffffff00000001 0000000000000000 > > > > which are not triggered by the memory hotplug but rather CMA allocator. > > The original idea behind dumping the page state for all call paths was > > that these messages will be helpful debugging failures. From the above > > it seems that this is not the case for the CMA path because we are > > lacking much more context. E.g the second reported page might be a CMA > > allocated page. It is still interesting to see a slab page in the CMA > > area but it is hard to tell whether this is bug from the above output > > alone. > > > > Address this issue by dumping the page state only on request. Both > > start_isolate_page_range and has_unmovable_pages already have an > > argument to ignore hwpoison pages so make this argument more generic and > > turn it into flags and allow callers to combine non-default modes into a > > mask. While we are at it, has_unmovable_pages call from is_pageblock_removable_nolock > > (sysfs removable file) is questionable to report the failure so drop it > > from there as well. > > > > Reported-by: Heiko Carstens <heiko.carstens@xxxxxxxxxx> > > Signed-off-by: Michal Hocko <mhocko@xxxxxxxx> > > Looks good to me, and it makes sense to not spam other users. > > Just one thing: > > AFAICS alloc_contig_range() can also be called from hugetlb code. > Do we weant to specify that in the changelog too? > And possibly change the patch title to: Well, I haven't seen any reports about hugetlb pages so I didn't bother to mention it. Is this really important to note? > "Only report isolation failures from memhotplug code" ? only report isolation failures when offlining memory > Although is_pageblock_removable_nolock will not report the failures > now, so I am not sure. > > Reviewed-by: Oscar Salvador <osalvador@xxxxxxx> Thanks! -- Michal Hocko SUSE Labs