Re: [PATCH] mm: walk the zone in pageblock_nr_pages steps
From: zhong jiang <hidden>
Date: 2016-07-28 07:33:58
On 2016/7/28 14:57, Joonsoo Kim wrote:
On Tue, Jul 26, 2016 at 05:30:59PM +0800, zhong jiang wrote:quoted
On 2016/7/26 16:53, Vlastimil Babka wrote:quoted
On 07/26/2016 10:31 AM, zhong jiang wrote:quoted
On 2016/7/26 14:24, Vlastimil Babka wrote:quoted
On 07/26/2016 05:08 AM, zhongjiang wrote:quoted
From: zhong jiang <redacted> when walking the zone, we can happens to the holes. we should not align MAX_ORDER_NR_PAGES, so it can skip the normal memory.Do you have any system to trigger this problem? I'm not familiar with CONFIG_HOLES_IN_ZONE system, but, as Vlastimil saids, skip by pageblock size also has similar problem that skip the normal memory because hole's granularity would not be pageblock size. Anyway, if you want not to skip the normal memory, following code would work. I think that it is a better way since it doesn't depend on hole's granularity. Thanks.
you maybe get me wrong. page type is showed with block size as the unit. it is not skip the normal memory but we should align block. the following code will waste of time to skip the hole. because it maybe need to realign to pageblock. I just want to express that align with pageblock will consistence with the following code. and it maybe lead to skip the normal memory. Thanks
quoted hunk ↗ jump to hunk
--------->8-----------diff --git a/mm/vmstat.c b/mm/vmstat.c index e1a4690..4184db2 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c@@ -1276,6 +1276,11 @@ static void pagetypeinfo_showmixedcount_print(struct seq_file *m, * not matter as the mixed block count will still be correct */ for (; pfn < end_pfn; ) { + if (!pfn_valid_within(pfn)) { + pfn++; + continue; + } + if (!pfn_valid(pfn)) { pfn = ALIGN(pfn + 1, MAX_ORDER_NR_PAGES); continue;.
-- 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>