From: kbuild test robot <lkp@intel.com>
To: Pavel Tatashin <pasha.tatashin@oracle.com>
Cc: kbuild-all@01.org, steven.sistare@oracle.com,
daniel.m.jordan@oracle.com, m.mizuma@jp.fujitsu.com,
akpm@linux-foundation.org, mhocko@suse.com,
catalin.marinas@arm.com, takahiro.akashi@linaro.org,
gi-oh.kim@profitbricks.com, heiko.carstens@de.ibm.com,
baiyaowei@cmss.chinamobile.com, richard.weiyang@gmail.com,
paul.burton@mips.com, miles.chen@mediatek.com, vbabka@suse.cz,
mgorman@suse.de, hannes@cmpxchg.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH v2 1/1] mm: initialize pages on demand during boot
Date: Sat, 10 Feb 2018 13:24:15 +0800 [thread overview]
Message-ID: <201802101304.GHscE0Zf%fengguang.wu@intel.com> (raw)
In-Reply-To: <20180208184555.5855-2-pasha.tatashin@oracle.com>
[-- Attachment #1: Type: text/plain, Size: 3802 bytes --]
Hi Pavel,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on mmotm/master]
[also build test ERROR on next-20180209]
[cannot apply to v4.15]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Pavel-Tatashin/mm-initialize-pages-on-demand-during-boot/20180210-125104
base: git://git.cmpxchg.org/linux-mmotm.git master
config: x86_64-randconfig-x017-201805 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64
All errors (new ones prefixed by >>):
mm/page_alloc.c: In function 'deferred_grow_zone':
>> mm/page_alloc.c:1590:18: error: 'struct zone' has no member named 'node'; did you mean 'name'?
int nid = zone->node;
^~~~
name
vim +1590 mm/page_alloc.c
1578
1579 /*
1580 * If this zone has deferred pages, try to grow it by initializing enough
1581 * deferred pages to satisfy the allocation specified by order, rounded up to
1582 * the nearest PAGES_PER_SECTION boundary. So we're adding memory in increments
1583 * of SECTION_SIZE bytes by initializing struct pages in increments of
1584 * PAGES_PER_SECTION * sizeof(struct page) bytes.
1585 */
1586 static noinline bool __init
1587 deferred_grow_zone(struct zone *zone, unsigned int order)
1588 {
1589 int zid = zone_idx(zone);
> 1590 int nid = zone->node;
1591 pg_data_t *pgdat = NODE_DATA(nid);
1592 unsigned long nr_pages_needed = ALIGN(1 << order, PAGES_PER_SECTION);
1593 unsigned long nr_pages = 0;
1594 unsigned long first_init_pfn, first_deferred_pfn, spfn, epfn, t;
1595 phys_addr_t spa, epa;
1596 u64 i;
1597
1598 /* Only the last zone may have deferred pages */
1599 if (zone_end_pfn(zone) != pgdat_end_pfn(pgdat))
1600 return false;
1601
1602 first_deferred_pfn = READ_ONCE(pgdat->first_deferred_pfn);
1603 first_init_pfn = max(zone->zone_start_pfn, first_deferred_pfn);
1604
1605 if (first_init_pfn >= pgdat_end_pfn(pgdat))
1606 return false;
1607
1608 spin_lock(&deferred_zone_grow_lock);
1609 /*
1610 * Bail if we raced with another thread that disabled on demand
1611 * initialization.
1612 */
1613 if (!static_branch_unlikely(&deferred_pages)) {
1614 spin_unlock(&deferred_zone_grow_lock);
1615 return false;
1616 }
1617
1618 for_each_free_mem_range(i, nid, MEMBLOCK_NONE, &spa, &epa, NULL) {
1619 spfn = max_t(unsigned long, first_init_pfn, PFN_UP(spa));
1620 epfn = min_t(unsigned long, zone_end_pfn(zone), PFN_DOWN(epa));
1621
1622 while (spfn < epfn && nr_pages < nr_pages_needed) {
1623 t = ALIGN(spfn + PAGES_PER_SECTION, PAGES_PER_SECTION);
1624 first_deferred_pfn = min(t, epfn);
1625 nr_pages += deferred_init_pages(nid, zid, spfn,
1626 first_deferred_pfn);
1627 spfn = first_deferred_pfn;
1628 }
1629
1630 if (nr_pages >= nr_pages_needed)
1631 break;
1632 }
1633
1634 for_each_free_mem_range(i, nid, MEMBLOCK_NONE, &spa, &epa, NULL) {
1635 spfn = max_t(unsigned long, first_init_pfn, PFN_UP(spa));
1636 epfn = min_t(unsigned long, first_deferred_pfn, PFN_DOWN(epa));
1637 deferred_free_pages(nid, zid, spfn, epfn);
1638
1639 if (first_deferred_pfn == epfn)
1640 break;
1641 }
1642 WRITE_ONCE(pgdat->first_deferred_pfn, first_deferred_pfn);
1643 spin_unlock(&deferred_zone_grow_lock);
1644
1645 return nr_pages >= nr_pages_needed;
1646 }
1647
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 30903 bytes --]
next prev parent reply other threads:[~2018-02-10 5:24 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-08 18:45 [PATCH v2 0/1] " Pavel Tatashin
2018-02-08 18:45 ` [PATCH v2 1/1] mm: " Pavel Tatashin
2018-02-08 20:03 ` Andrew Morton
2018-02-08 22:27 ` Pavel Tatashin
2018-02-09 0:58 ` Pavel Tatashin
2018-02-10 5:24 ` kbuild test robot [this message]
2018-02-10 5:37 ` kbuild test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201802101304.GHscE0Zf%fengguang.wu@intel.com \
--to=lkp@intel.com \
--cc=akpm@linux-foundation.org \
--cc=baiyaowei@cmss.chinamobile.com \
--cc=catalin.marinas@arm.com \
--cc=daniel.m.jordan@oracle.com \
--cc=gi-oh.kim@profitbricks.com \
--cc=hannes@cmpxchg.org \
--cc=heiko.carstens@de.ibm.com \
--cc=kbuild-all@01.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=m.mizuma@jp.fujitsu.com \
--cc=mgorman@suse.de \
--cc=mhocko@suse.com \
--cc=miles.chen@mediatek.com \
--cc=pasha.tatashin@oracle.com \
--cc=paul.burton@mips.com \
--cc=richard.weiyang@gmail.com \
--cc=steven.sistare@oracle.com \
--cc=takahiro.akashi@linaro.org \
--cc=vbabka@suse.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox