Re: [PATCH] mm: walk the zone in pageblock_nr_pages steps

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jul 26, 2016 at 05:30:59PM +0800, zhong jiang wrote:
> On 2016/7/26 16:53, Vlastimil Babka wrote:
> > On 07/26/2016 10:31 AM, zhong jiang wrote:
> >> On 2016/7/26 14:24, Vlastimil Babka wrote:
> >>> On 07/26/2016 05:08 AM, zhongjiang wrote:
> >>>> From: zhong jiang <zhongjiang@xxxxxxxxxx>
> >>>>
> >>>> 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.

--------->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@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]