From: kbuild test robot <lkp@intel.com>
To: Qian Cai <cai@lca.pw>
Cc: kbuild-all@lists.01.org,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
David Hildenbrand <david@redhat.com>,
Andrew Morton <akpm@linux-foundation.org>,
Linux Memory Management List <linux-mm@kvack.org>
Subject: [linux-stable-rc:linux-4.19.y 8055/9999] mm/page_owner.c:276:10: note: in expansion of macro 'pfn_to_online_page'
Date: Sat, 14 Dec 2019 06:08:55 +0800 [thread overview]
Message-ID: <201912140653.cnNEAubP%lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 6699 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.19.y
head: 312017a460d5ea31d646e7148e400e13db799ddc
commit: f712e3066f75996f49b60145f0329f9e078eeabd [8055/9999] mm/page_owner: don't access uninitialized memmaps when reading /proc/pagetypeinfo
config: ia64-randconfig-a001-20191213 (attached as .config)
compiler: ia64-linux-gcc (GCC) 7.5.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout f712e3066f75996f49b60145f0329f9e078eeabd
# save the attached .config to linux build tree
GCC_VERSION=7.5.0 make.cross ARCH=ia64
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
In file included from arch/ia64/include/asm/ptrace.h:46:0,
from arch/ia64/include/asm/processor.h:20,
from arch/ia64/include/asm/thread_info.h:12,
from include/linux/thread_info.h:38,
from include/asm-generic/preempt.h:5,
from ./arch/ia64/include/generated/asm/preempt.h:1,
from include/linux/preempt.h:81,
from include/linux/spinlock.h:51,
from include/linux/wait.h:9,
from include/linux/wait_bit.h:8,
from include/linux/fs.h:6,
from include/linux/debugfs.h:15,
from mm/page_owner.c:2:
mm/internal.h: In function 'mem_map_next':
arch/ia64/include/asm/page.h:118:36: error: 'max_mapnr' undeclared (first use in this function); did you mean 'dax_mapping'?
# define pfn_valid(pfn) (((pfn) < max_mapnr) && ia64_pfn_valid(pfn))
^
mm/internal.h:385:8: note: in expansion of macro 'pfn_valid'
if (!pfn_valid(pfn))
^~~~~~~~~
arch/ia64/include/asm/page.h:118:36: note: each undeclared identifier is reported only once for each function it appears in
# define pfn_valid(pfn) (((pfn) < max_mapnr) && ia64_pfn_valid(pfn))
^
mm/internal.h:385:8: note: in expansion of macro 'pfn_valid'
if (!pfn_valid(pfn))
^~~~~~~~~
mm/page_owner.c: In function 'pagetypeinfo_showmixedcount_print':
arch/ia64/include/asm/page.h:118:36: error: 'max_mapnr' undeclared (first use in this function); did you mean 'dax_mapping'?
# define pfn_valid(pfn) (((pfn) < max_mapnr) && ia64_pfn_valid(pfn))
^
include/linux/memory_hotplug.h:225:6: note: in expansion of macro 'pfn_valid'
if (pfn_valid(pfn)) \
^~~~~~~~~
>> mm/page_owner.c:276:10: note: in expansion of macro 'pfn_to_online_page'
page = pfn_to_online_page(pfn);
^~~~~~~~~~~~~~~~~~
mm/page_owner.c: In function 'read_page_owner':
arch/ia64/include/asm/page.h:118:36: error: 'max_mapnr' undeclared (first use in this function); did you mean 'dax_mapping'?
# define pfn_valid(pfn) (((pfn) < max_mapnr) && ia64_pfn_valid(pfn))
^
mm/page_owner.c:470:10: note: in expansion of macro 'pfn_valid'
while (!pfn_valid(pfn) && (pfn & (MAX_ORDER_NR_PAGES - 1)) != 0)
^~~~~~~~~
mm/page_owner.c: In function 'init_pages_in_zone':
arch/ia64/include/asm/page.h:118:36: error: 'max_mapnr' undeclared (first use in this function); did you mean 'dax_mapping'?
# define pfn_valid(pfn) (((pfn) < max_mapnr) && ia64_pfn_valid(pfn))
^
mm/page_owner.c:544:8: note: in expansion of macro 'pfn_valid'
if (!pfn_valid(pfn)) {
^~~~~~~~~
vim +/pfn_to_online_page +276 mm/page_owner.c
254
255 void pagetypeinfo_showmixedcount_print(struct seq_file *m,
256 pg_data_t *pgdat, struct zone *zone)
257 {
258 struct page *page;
259 struct page_ext *page_ext;
260 struct page_owner *page_owner;
261 unsigned long pfn = zone->zone_start_pfn, block_end_pfn;
262 unsigned long end_pfn = pfn + zone->spanned_pages;
263 unsigned long count[MIGRATE_TYPES] = { 0, };
264 int pageblock_mt, page_mt;
265 int i;
266
267 /* Scan block by block. First and last block may be incomplete */
268 pfn = zone->zone_start_pfn;
269
270 /*
271 * Walk the zone in pageblock_nr_pages steps. If a page block spans
272 * a zone boundary, it will be double counted between zones. This does
273 * not matter as the mixed block count will still be correct
274 */
275 for (; pfn < end_pfn; ) {
> 276 page = pfn_to_online_page(pfn);
277 if (!page) {
278 pfn = ALIGN(pfn + 1, MAX_ORDER_NR_PAGES);
279 continue;
280 }
281
282 block_end_pfn = ALIGN(pfn + 1, pageblock_nr_pages);
283 block_end_pfn = min(block_end_pfn, end_pfn);
284
285 pageblock_mt = get_pageblock_migratetype(page);
286
287 for (; pfn < block_end_pfn; pfn++) {
288 if (!pfn_valid_within(pfn))
289 continue;
290
291 /* The pageblock is online, no need to recheck. */
292 page = pfn_to_page(pfn);
293
294 if (page_zone(page) != zone)
295 continue;
296
297 if (PageBuddy(page)) {
298 unsigned long freepage_order;
299
300 freepage_order = page_order_unsafe(page);
301 if (freepage_order < MAX_ORDER)
302 pfn += (1UL << freepage_order) - 1;
303 continue;
304 }
305
306 if (PageReserved(page))
307 continue;
308
309 page_ext = lookup_page_ext(page);
310 if (unlikely(!page_ext))
311 continue;
312
313 if (!test_bit(PAGE_EXT_OWNER, &page_ext->flags))
314 continue;
315
316 page_owner = get_page_owner(page_ext);
317 page_mt = gfpflags_to_migratetype(
318 page_owner->gfp_mask);
319 if (pageblock_mt != page_mt) {
320 if (is_migrate_cma(pageblock_mt))
321 count[MIGRATE_MOVABLE]++;
322 else
323 count[pageblock_mt]++;
324
325 pfn = block_end_pfn;
326 break;
327 }
328 pfn += (1UL << page_owner->order) - 1;
329 }
330 }
331
332 /* Print counts */
333 seq_printf(m, "Node %d, zone %8s ", pgdat->node_id, zone->name);
334 for (i = 0; i < MIGRATE_TYPES; i++)
335 seq_printf(m, "%12lu ", count[i]);
336 seq_putc(m, '\n');
337 }
338
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 31073 bytes --]
next reply other threads:[~2019-12-13 22:09 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-13 22:08 kbuild test robot [this message]
2019-12-16 10:11 ` David Hildenbrand
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=201912140653.cnNEAubP%lkp@intel.com \
--to=lkp@intel.com \
--cc=akpm@linux-foundation.org \
--cc=cai@lca.pw \
--cc=david@redhat.com \
--cc=gregkh@linuxfoundation.org \
--cc=kbuild-all@lists.01.org \
--cc=linux-mm@kvack.org \
/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