From: kernel test robot <lkp@intel.com>
To: Hao Lee <haolee.swjtu@gmail.com>, akpm@linux-foundation.org
Cc: kbuild-all@lists.01.org, david@redhat.com,
yang.shi@linux.alibaba.com, hannes@cmpxchg.org,
haolee.swjtu@gmail.com, linux-kernel@vger.kernel.org,
linux-mm@kvack.org
Subject: Re: [PATCH] mm: add DEVICE_ZONE to FOR_ALL_ZONES
Date: Sun, 7 Aug 2022 16:29:04 +0800 [thread overview]
Message-ID: <202208071620.pju0F2pW-lkp@intel.com> (raw)
In-Reply-To: <20220804074730.GA3269@haolee.io>
Hi Hao,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on akpm-mm/mm-everything]
url: https://github.com/intel-lab-lkp/linux/commits/Hao-Lee/mm-add-DEVICE_ZONE-to-FOR_ALL_ZONES/20220804-154805
base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
config: ia64-tiger_defconfig (https://download.01.org/0day-ci/archive/20220807/202208071620.pju0F2pW-lkp@intel.com/config)
compiler: ia64-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/dba18359aee97f43008e19ffa78421e652b1b102
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Hao-Lee/mm-add-DEVICE_ZONE-to-FOR_ALL_ZONES/20220804-154805
git checkout dba18359aee97f43008e19ffa78421e652b1b102
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=ia64 SHELL=/bin/bash
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
In file included from include/linux/vmstat.h:8,
from include/linux/mm.h:1668,
from include/linux/dax.h:6,
from mm/filemap.c:15:
include/linux/vm_event_item.h:29:27: error: expected identifier before '(' token
29 | #define FOR_ALL_ZONES(xx) (DMA_ZONE(xx) DMA32_ZONE(xx) xx##_NORMAL, \
| ^
include/linux/vm_event_item.h:33:17: note: in expansion of macro 'FOR_ALL_ZONES'
33 | FOR_ALL_ZONES(PGALLOC),
| ^~~~~~~~~~~~~
include/linux/vmstat.h:55:29: error: 'NR_VM_EVENT_ITEMS' undeclared here (not in a function); did you mean 'NR_VM_NUMA_EVENT_ITEMS'?
55 | unsigned long event[NR_VM_EVENT_ITEMS];
| ^~~~~~~~~~~~~~~~~
| NR_VM_NUMA_EVENT_ITEMS
include/linux/vmstat.h: In function '__count_vm_event':
include/linux/vmstat.h:64:56: warning: parameter 'item' set but not used [-Wunused-but-set-parameter]
64 | static inline void __count_vm_event(enum vm_event_item item)
| ~~~~~~~~~~~~~~~~~~~^~~~
include/linux/vmstat.h: In function 'count_vm_event':
include/linux/vmstat.h:69:54: warning: parameter 'item' set but not used [-Wunused-but-set-parameter]
69 | static inline void count_vm_event(enum vm_event_item item)
| ~~~~~~~~~~~~~~~~~~~^~~~
include/linux/vmstat.h: In function '__count_vm_events':
include/linux/vmstat.h:74:57: warning: parameter 'item' set but not used [-Wunused-but-set-parameter]
74 | static inline void __count_vm_events(enum vm_event_item item, long delta)
| ~~~~~~~~~~~~~~~~~~~^~~~
include/linux/vmstat.h: In function 'count_vm_events':
include/linux/vmstat.h:79:55: warning: parameter 'item' set but not used [-Wunused-but-set-parameter]
79 | static inline void count_vm_events(enum vm_event_item item, long delta)
| ~~~~~~~~~~~~~~~~~~~^~~~
mm/filemap.c: In function 'filemap_fault':
>> mm/filemap.c:3139:32: error: 'PGMAJFAULT' undeclared (first use in this function)
3139 | count_vm_event(PGMAJFAULT);
| ^~~~~~~~~~
mm/filemap.c:3139:32: note: each undeclared identifier is reported only once for each function it appears in
--
In file included from include/linux/vmstat.h:8,
from include/linux/mm.h:1668,
from include/linux/oom.h:11,
from mm/oom_kill.c:21:
include/linux/vm_event_item.h:29:27: error: expected identifier before '(' token
29 | #define FOR_ALL_ZONES(xx) (DMA_ZONE(xx) DMA32_ZONE(xx) xx##_NORMAL, \
| ^
include/linux/vm_event_item.h:33:17: note: in expansion of macro 'FOR_ALL_ZONES'
33 | FOR_ALL_ZONES(PGALLOC),
| ^~~~~~~~~~~~~
include/linux/vmstat.h:55:29: error: 'NR_VM_EVENT_ITEMS' undeclared here (not in a function); did you mean 'NR_VM_NUMA_EVENT_ITEMS'?
55 | unsigned long event[NR_VM_EVENT_ITEMS];
| ^~~~~~~~~~~~~~~~~
| NR_VM_NUMA_EVENT_ITEMS
include/linux/vmstat.h: In function '__count_vm_event':
include/linux/vmstat.h:64:56: warning: parameter 'item' set but not used [-Wunused-but-set-parameter]
64 | static inline void __count_vm_event(enum vm_event_item item)
| ~~~~~~~~~~~~~~~~~~~^~~~
include/linux/vmstat.h: In function 'count_vm_event':
include/linux/vmstat.h:69:54: warning: parameter 'item' set but not used [-Wunused-but-set-parameter]
69 | static inline void count_vm_event(enum vm_event_item item)
| ~~~~~~~~~~~~~~~~~~~^~~~
include/linux/vmstat.h: In function '__count_vm_events':
include/linux/vmstat.h:74:57: warning: parameter 'item' set but not used [-Wunused-but-set-parameter]
74 | static inline void __count_vm_events(enum vm_event_item item, long delta)
| ~~~~~~~~~~~~~~~~~~~^~~~
include/linux/vmstat.h: In function 'count_vm_events':
include/linux/vmstat.h:79:55: warning: parameter 'item' set but not used [-Wunused-but-set-parameter]
79 | static inline void count_vm_events(enum vm_event_item item, long delta)
| ~~~~~~~~~~~~~~~~~~~^~~~
mm/oom_kill.c: In function '__oom_kill_process':
>> mm/oom_kill.c:940:24: error: 'OOM_KILL' undeclared (first use in this function)
940 | count_vm_event(OOM_KILL);
| ^~~~~~~~
mm/oom_kill.c:940:24: note: each undeclared identifier is reported only once for each function it appears in
--
In file included from include/linux/vmstat.h:8,
from include/linux/mm.h:1668,
from mm/swap.c:17:
include/linux/vm_event_item.h:29:27: error: expected identifier before '(' token
29 | #define FOR_ALL_ZONES(xx) (DMA_ZONE(xx) DMA32_ZONE(xx) xx##_NORMAL, \
| ^
include/linux/vm_event_item.h:33:17: note: in expansion of macro 'FOR_ALL_ZONES'
33 | FOR_ALL_ZONES(PGALLOC),
| ^~~~~~~~~~~~~
include/linux/vmstat.h:55:29: error: 'NR_VM_EVENT_ITEMS' undeclared here (not in a function); did you mean 'NR_VM_NUMA_EVENT_ITEMS'?
55 | unsigned long event[NR_VM_EVENT_ITEMS];
| ^~~~~~~~~~~~~~~~~
| NR_VM_NUMA_EVENT_ITEMS
include/linux/vmstat.h: In function '__count_vm_event':
include/linux/vmstat.h:64:56: warning: parameter 'item' set but not used [-Wunused-but-set-parameter]
64 | static inline void __count_vm_event(enum vm_event_item item)
| ~~~~~~~~~~~~~~~~~~~^~~~
include/linux/vmstat.h: In function 'count_vm_event':
include/linux/vmstat.h:69:54: warning: parameter 'item' set but not used [-Wunused-but-set-parameter]
69 | static inline void count_vm_event(enum vm_event_item item)
| ~~~~~~~~~~~~~~~~~~~^~~~
include/linux/vmstat.h: In function '__count_vm_events':
include/linux/vmstat.h:74:57: warning: parameter 'item' set but not used [-Wunused-but-set-parameter]
74 | static inline void __count_vm_events(enum vm_event_item item, long delta)
| ~~~~~~~~~~~~~~~~~~~^~~~
include/linux/vmstat.h: In function 'count_vm_events':
include/linux/vmstat.h:79:55: warning: parameter 'item' set but not used [-Wunused-but-set-parameter]
79 | static inline void count_vm_events(enum vm_event_item item, long delta)
| ~~~~~~~~~~~~~~~~~~~^~~~
mm/swap.c: In function '__page_cache_release':
>> mm/swap.c:97:33: error: 'UNEVICTABLE_PGCLEARED' undeclared (first use in this function)
97 | count_vm_events(UNEVICTABLE_PGCLEARED, nr_pages);
| ^~~~~~~~~~~~~~~~~~~~~
mm/swap.c:97:33: note: each undeclared identifier is reported only once for each function it appears in
mm/swap.c: In function 'lru_add_fn':
>> mm/swap.c:212:43: error: 'UNEVICTABLE_PGRESCUED' undeclared (first use in this function)
212 | __count_vm_events(UNEVICTABLE_PGRESCUED, nr_pages);
| ^~~~~~~~~~~~~~~~~~~~~
>> mm/swap.c:225:43: error: 'UNEVICTABLE_PGCULLED' undeclared (first use in this function)
225 | __count_vm_events(UNEVICTABLE_PGCULLED, nr_pages);
| ^~~~~~~~~~~~~~~~~~~~
mm/swap.c: In function 'lru_move_tail_fn':
>> mm/swap.c:272:35: error: 'PGROTATED' undeclared (first use in this function)
272 | __count_vm_events(PGROTATED, folio_nr_pages(folio));
| ^~~~~~~~~
mm/swap.c: In function 'folio_activate_fn':
>> mm/swap.c:354:35: error: 'PGACTIVATE' undeclared (first use in this function); did you mean 'SWP_ACTIVATED'?
354 | __count_vm_events(PGACTIVATE, nr_pages);
| ^~~~~~~~~~
| SWP_ACTIVATED
mm/swap.c: In function 'lru_deactivate_file_fn':
mm/swap.c:566:35: error: 'PGROTATED' undeclared (first use in this function)
566 | __count_vm_events(PGROTATED, nr_pages);
| ^~~~~~~~~
>> mm/swap.c:570:35: error: 'PGDEACTIVATE' undeclared (first use in this function)
570 | __count_vm_events(PGDEACTIVATE, nr_pages);
| ^~~~~~~~~~~~
mm/swap.c: In function 'lru_deactivate_fn':
mm/swap.c:586:35: error: 'PGDEACTIVATE' undeclared (first use in this function)
586 | __count_vm_events(PGDEACTIVATE, nr_pages);
| ^~~~~~~~~~~~
mm/swap.c: In function 'lru_lazyfree_fn':
>> mm/swap.c:609:35: error: 'PGLAZYFREE' undeclared (first use in this function)
609 | __count_vm_events(PGLAZYFREE, nr_pages);
| ^~~~~~~~~~
mm/swap.c: In function 'release_pages':
mm/swap.c:1003:40: error: 'UNEVICTABLE_PGCLEARED' undeclared (first use in this function)
1003 | count_vm_event(UNEVICTABLE_PGCLEARED);
| ^~~~~~~~~~~~~~~~~~~~~
--
In file included from include/linux/vmstat.h:8,
from include/linux/mm.h:1668,
from mm/vmscan.c:15:
include/linux/vm_event_item.h:29:27: error: expected identifier before '(' token
29 | #define FOR_ALL_ZONES(xx) (DMA_ZONE(xx) DMA32_ZONE(xx) xx##_NORMAL, \
| ^
include/linux/vm_event_item.h:33:17: note: in expansion of macro 'FOR_ALL_ZONES'
33 | FOR_ALL_ZONES(PGALLOC),
| ^~~~~~~~~~~~~
include/linux/vmstat.h:55:29: error: 'NR_VM_EVENT_ITEMS' undeclared here (not in a function); did you mean 'NR_VM_NUMA_EVENT_ITEMS'?
55 | unsigned long event[NR_VM_EVENT_ITEMS];
| ^~~~~~~~~~~~~~~~~
| NR_VM_NUMA_EVENT_ITEMS
include/linux/vmstat.h: In function '__count_vm_event':
include/linux/vmstat.h:64:56: warning: parameter 'item' set but not used [-Wunused-but-set-parameter]
64 | static inline void __count_vm_event(enum vm_event_item item)
| ~~~~~~~~~~~~~~~~~~~^~~~
include/linux/vmstat.h: In function 'count_vm_event':
include/linux/vmstat.h:69:54: warning: parameter 'item' set but not used [-Wunused-but-set-parameter]
69 | static inline void count_vm_event(enum vm_event_item item)
| ~~~~~~~~~~~~~~~~~~~^~~~
include/linux/vmstat.h: In function '__count_vm_events':
include/linux/vmstat.h:74:57: warning: parameter 'item' set but not used [-Wunused-but-set-parameter]
74 | static inline void __count_vm_events(enum vm_event_item item, long delta)
| ~~~~~~~~~~~~~~~~~~~^~~~
include/linux/vmstat.h: In function 'count_vm_events':
include/linux/vmstat.h:79:55: warning: parameter 'item' set but not used [-Wunused-but-set-parameter]
79 | static inline void count_vm_events(enum vm_event_item item, long delta)
| ~~~~~~~~~~~~~~~~~~~^~~~
mm/vmscan.c: In function 'do_shrink_slab':
>> mm/vmscan.c:836:33: error: 'SLABS_SCANNED' undeclared (first use in this function)
836 | count_vm_events(SLABS_SCANNED, shrinkctl->nr_scanned);
| ^~~~~~~~~~~~~
mm/vmscan.c:836:33: note: each undeclared identifier is reported only once for each function it appears in
mm/vmscan.c: In function 'demote_page_list':
>> mm/vmscan.c:1563:35: error: 'PGDEMOTE_KSWAPD' undeclared (first use in this function)
1563 | __count_vm_events(PGDEMOTE_KSWAPD, nr_succeeded);
| ^~~~~~~~~~~~~~~
>> mm/vmscan.c:1565:35: error: 'PGDEMOTE_DIRECT' undeclared (first use in this function)
1565 | __count_vm_events(PGDEMOTE_DIRECT, nr_succeeded);
| ^~~~~~~~~~~~~~~
mm/vmscan.c: In function 'shrink_page_list':
>> mm/vmscan.c:1971:41: error: 'PGLAZYFREED' undeclared (first use in this function)
1971 | count_vm_events(PGLAZYFREED, nr_pages);
| ^~~~~~~~~~~
>> mm/vmscan.c:2015:57: error: 'PGACTIVATE' undeclared (first use in this function); did you mean 'PAGE_ACTIVATE'?
2015 | count_memcg_folio_events(folio, PGACTIVATE, nr_pages);
| ^~~~~~~~~~
| PAGE_ACTIVATE
mm/vmscan.c: In function 'isolate_lru_pages':
>> mm/vmscan.c:2219:47: error: 'PGSCAN_SKIP_NORMAL' undeclared (first use in this function)
2219 | __count_zid_vm_events(PGSCAN_SKIP, zid, nr_skipped[zid]);
| ^~~~~~~~~~~
include/linux/vmstat.h:135:27: note: in definition of macro '__count_zid_vm_events'
135 | __count_vm_events(item##_NORMAL - ZONE_NORMAL + zid, delta)
| ^~~~
mm/vmscan.c: In function 'shrink_inactive_list':
>> mm/vmscan.c:2436:38: error: 'PGSCAN_KSWAPD' undeclared (first use in this function); did you mean 'PF_KSWAPD'?
2436 | item = current_is_kswapd() ? PGSCAN_KSWAPD : PGSCAN_DIRECT;
| ^~~~~~~~~~~~~
| PF_KSWAPD
>> mm/vmscan.c:2436:54: error: 'PGSCAN_DIRECT' undeclared (first use in this function); did you mean 'IOCB_DIRECT'?
2436 | item = current_is_kswapd() ? PGSCAN_KSWAPD : PGSCAN_DIRECT;
| ^~~~~~~~~~~~~
| IOCB_DIRECT
>> mm/vmscan.c:2440:27: error: 'PGSCAN_ANON' undeclared (first use in this function)
2440 | __count_vm_events(PGSCAN_ANON + file, nr_scanned);
| ^~~~~~~~~~~
>> mm/vmscan.c:2453:38: error: 'PGSTEAL_KSWAPD' undeclared (first use in this function)
2453 | item = current_is_kswapd() ? PGSTEAL_KSWAPD : PGSTEAL_DIRECT;
| ^~~~~~~~~~~~~~
>> mm/vmscan.c:2453:55: error: 'PGSTEAL_DIRECT' undeclared (first use in this function)
2453 | item = current_is_kswapd() ? PGSTEAL_KSWAPD : PGSTEAL_DIRECT;
| ^~~~~~~~~~~~~~
>> mm/vmscan.c:2457:27: error: 'PGSTEAL_ANON' undeclared (first use in this function)
2457 | __count_vm_events(PGSTEAL_ANON + file, nr_reclaimed);
| ^~~~~~~~~~~~
mm/vmscan.c: In function 'shrink_active_list':
>> mm/vmscan.c:2535:35: error: 'PGREFILL' undeclared (first use in this function)
2535 | __count_vm_events(PGREFILL, nr_scanned);
| ^~~~~~~~
>> mm/vmscan.c:2594:27: error: 'PGDEACTIVATE' undeclared (first use in this function); did you mean 'PAGE_ACTIVATE'?
2594 | __count_vm_events(PGDEACTIVATE, nr_deactivate);
| ^~~~~~~~~~~~
| PAGE_ACTIVATE
mm/vmscan.c: In function 'do_try_to_free_pages':
>> mm/vmscan.c:3592:39: error: 'ALLOCSTALL_NORMAL' undeclared (first use in this function)
3592 | __count_zid_vm_events(ALLOCSTALL, sc->reclaim_idx, 1);
| ^~~~~~~~~~
include/linux/vmstat.h:135:27: note: in definition of macro '__count_zid_vm_events'
135 | __count_vm_events(item##_NORMAL - ZONE_NORMAL + zid, delta)
| ^~~~
mm/vmscan.c: In function 'throttle_direct_reclaim':
>> mm/vmscan.c:3774:24: error: 'PGSCAN_DIRECT_THROTTLE' undeclared (first use in this function)
3774 | count_vm_event(PGSCAN_DIRECT_THROTTLE);
| ^~~~~~~~~~~~~~~~~~~~~~
mm/vmscan.c: In function 'balance_pgdat':
>> mm/vmscan.c:4164:24: error: 'PAGEOUTRUN' undeclared (first use in this function)
4164 | count_vm_event(PAGEOUTRUN);
| ^~~~~~~~~~
mm/vmscan.c: In function 'kswapd_try_to_sleep':
>> mm/vmscan.c:4447:40: error: 'KSWAPD_LOW_WMARK_HIT_QUICKLY' undeclared (first use in this function)
4447 | count_vm_event(KSWAPD_LOW_WMARK_HIT_QUICKLY);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> mm/vmscan.c:4449:40: error: 'KSWAPD_HIGH_WMARK_HIT_QUICKLY' undeclared (first use in this function)
4449 | count_vm_event(KSWAPD_HIGH_WMARK_HIT_QUICKLY);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mm/vmscan.c: In function 'node_reclaim':
>> mm/vmscan.c:4847:32: error: 'PGSCAN_ZONE_RECLAIM_FAILED' undeclared (first use in this function)
4847 | count_vm_event(PGSCAN_ZONE_RECLAIM_FAILED);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
mm/vmscan.c: In function 'check_move_unevictable_pages':
mm/vmscan.c:4895:35: error: 'UNEVICTABLE_PGRESCUED' undeclared (first use in this function)
4895 | __count_vm_events(UNEVICTABLE_PGRESCUED, pgrescued);
| ^~~~~~~~~~~~~~~~~~~~~
mm/vmscan.c:4896:35: error: 'UNEVICTABLE_PGSCANNED' undeclared (first use in this function)
4896 | __count_vm_events(UNEVICTABLE_PGSCANNED, pgscanned);
| ^~~~~~~~~~~~~~~~~~~~~
--
In file included from include/linux/vmstat.h:8,
from include/linux/mm.h:1668,
from include/linux/security.h:33,
from include/linux/fs_context.h:14,
from include/linux/fs_parser.h:11,
from include/linux/ramfs.h:5,
from mm/shmem.c:28:
include/linux/vm_event_item.h:29:27: error: expected identifier before '(' token
29 | #define FOR_ALL_ZONES(xx) (DMA_ZONE(xx) DMA32_ZONE(xx) xx##_NORMAL, \
| ^
include/linux/vm_event_item.h:33:17: note: in expansion of macro 'FOR_ALL_ZONES'
33 | FOR_ALL_ZONES(PGALLOC),
| ^~~~~~~~~~~~~
include/linux/vmstat.h:55:29: error: 'NR_VM_EVENT_ITEMS' undeclared here (not in a function); did you mean 'NR_VM_NUMA_EVENT_ITEMS'?
55 | unsigned long event[NR_VM_EVENT_ITEMS];
| ^~~~~~~~~~~~~~~~~
| NR_VM_NUMA_EVENT_ITEMS
include/linux/vmstat.h: In function '__count_vm_event':
include/linux/vmstat.h:64:56: warning: parameter 'item' set but not used [-Wunused-but-set-parameter]
64 | static inline void __count_vm_event(enum vm_event_item item)
| ~~~~~~~~~~~~~~~~~~~^~~~
include/linux/vmstat.h: In function 'count_vm_event':
include/linux/vmstat.h:69:54: warning: parameter 'item' set but not used [-Wunused-but-set-parameter]
69 | static inline void count_vm_event(enum vm_event_item item)
| ~~~~~~~~~~~~~~~~~~~^~~~
include/linux/vmstat.h: In function '__count_vm_events':
include/linux/vmstat.h:74:57: warning: parameter 'item' set but not used [-Wunused-but-set-parameter]
74 | static inline void __count_vm_events(enum vm_event_item item, long delta)
| ~~~~~~~~~~~~~~~~~~~^~~~
include/linux/vmstat.h: In function 'count_vm_events':
include/linux/vmstat.h:79:55: warning: parameter 'item' set but not used [-Wunused-but-set-parameter]
79 | static inline void count_vm_events(enum vm_event_item item, long delta)
| ~~~~~~~~~~~~~~~~~~~^~~~
mm/shmem.c: In function 'shmem_swapin_folio':
>> mm/shmem.c:1750:40: error: 'PGMAJFAULT' undeclared (first use in this function)
1750 | count_vm_event(PGMAJFAULT);
| ^~~~~~~~~~
mm/shmem.c:1750:40: note: each undeclared identifier is reported only once for each function it appears in
--
In file included from include/linux/memcontrol.h:14,
from include/linux/swap.h:9,
from mm/compaction.c:12:
include/linux/vm_event_item.h:29:27: error: expected identifier before '(' token
29 | #define FOR_ALL_ZONES(xx) (DMA_ZONE(xx) DMA32_ZONE(xx) xx##_NORMAL, \
| ^
include/linux/vm_event_item.h:33:17: note: in expansion of macro 'FOR_ALL_ZONES'
33 | FOR_ALL_ZONES(PGALLOC),
| ^~~~~~~~~~~~~
In file included from include/linux/mm.h:1668,
from include/linux/memcontrol.h:20:
include/linux/vmstat.h:55:29: error: 'NR_VM_EVENT_ITEMS' undeclared here (not in a function); did you mean 'NR_VM_NUMA_EVENT_ITEMS'?
55 | unsigned long event[NR_VM_EVENT_ITEMS];
| ^~~~~~~~~~~~~~~~~
| NR_VM_NUMA_EVENT_ITEMS
include/linux/vmstat.h: In function '__count_vm_event':
include/linux/vmstat.h:64:56: warning: parameter 'item' set but not used [-Wunused-but-set-parameter]
64 | static inline void __count_vm_event(enum vm_event_item item)
| ~~~~~~~~~~~~~~~~~~~^~~~
include/linux/vmstat.h: In function 'count_vm_event':
include/linux/vmstat.h:69:54: warning: parameter 'item' set but not used [-Wunused-but-set-parameter]
69 | static inline void count_vm_event(enum vm_event_item item)
| ~~~~~~~~~~~~~~~~~~~^~~~
include/linux/vmstat.h: In function '__count_vm_events':
include/linux/vmstat.h:74:57: warning: parameter 'item' set but not used [-Wunused-but-set-parameter]
74 | static inline void __count_vm_events(enum vm_event_item item, long delta)
| ~~~~~~~~~~~~~~~~~~~^~~~
include/linux/vmstat.h: In function 'count_vm_events':
include/linux/vmstat.h:79:55: warning: parameter 'item' set but not used [-Wunused-but-set-parameter]
79 | static inline void count_vm_events(enum vm_event_item item, long delta)
| ~~~~~~~~~~~~~~~~~~~^~~~
mm/compaction.c: In function 'isolate_freepages_block':
>> mm/compaction.c:667:38: error: 'COMPACTISOLATED' undeclared (first use in this function); did you mean 'COMPACT_SKIPPED'?
667 | count_compact_events(COMPACTISOLATED, total_isolated);
| ^~~~~~~~~~~~~~~
| COMPACT_SKIPPED
mm/compaction.c:667:38: note: each undeclared identifier is reported only once for each function it appears in
mm/compaction.c: In function 'isolate_migratepages_block':
mm/compaction.c:1198:38: error: 'COMPACTISOLATED' undeclared (first use in this function); did you mean 'COMPACT_SKIPPED'?
1198 | count_compact_events(COMPACTISOLATED, nr_isolated);
| ^~~~~~~~~~~~~~~
| COMPACT_SKIPPED
mm/compaction.c: In function 'fast_isolate_freepages':
mm/compaction.c:1512:54: error: 'COMPACTISOLATED' undeclared (first use in this function); did you mean 'COMPACT_SKIPPED'?
1512 | count_compact_events(COMPACTISOLATED, nr_isolated);
| ^~~~~~~~~~~~~~~
| COMPACT_SKIPPED
mm/compaction.c: In function 'compact_zone':
>> mm/compaction.c:2495:30: error: 'COMPACTMIGRATE_SCANNED' undeclared (first use in this function)
2495 | count_compact_events(COMPACTMIGRATE_SCANNED, cc->total_migrate_scanned);
| ^~~~~~~~~~~~~~~~~~~~~~
>> mm/compaction.c:2496:30: error: 'COMPACTFREE_SCANNED' undeclared (first use in this function)
2496 | count_compact_events(COMPACTFREE_SCANNED, cc->total_free_scanned);
| ^~~~~~~~~~~~~~~~~~~
mm/compaction.c: In function 'kcompactd_do_work':
>> mm/compaction.c:2836:29: error: 'KCOMPACTD_WAKE' undeclared (first use in this function)
2836 | count_compact_event(KCOMPACTD_WAKE);
| ^~~~~~~~~~~~~~
>> mm/compaction.c:2876:38: error: 'KCOMPACTD_MIGRATE_SCANNED' undeclared (first use in this function)
2876 | count_compact_events(KCOMPACTD_MIGRATE_SCANNED,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> mm/compaction.c:2878:38: error: 'KCOMPACTD_FREE_SCANNED' undeclared (first use in this function)
2878 | count_compact_events(KCOMPACTD_FREE_SCANNED,
| ^~~~~~~~~~~~~~~~~~~~~~
..
vim +/PGMAJFAULT +3139 mm/filemap.c
ef00e08e26dd5d Linus Torvalds 2009-06-16 3082
485bb99b49a173 Randy Dunlap 2006-06-23 3083 /**
54cb8821de07f2 Nicholas Piggin 2007-07-19 3084 * filemap_fault - read in file data for page fault handling
d0217ac04ca659 Nicholas Piggin 2007-07-19 3085 * @vmf: struct vm_fault containing details of the fault
485bb99b49a173 Randy Dunlap 2006-06-23 3086 *
54cb8821de07f2 Nicholas Piggin 2007-07-19 3087 * filemap_fault() is invoked via the vma operations vector for a
^1da177e4c3f41 Linus Torvalds 2005-04-16 3088 * mapped memory region to read in file data during a page fault.
^1da177e4c3f41 Linus Torvalds 2005-04-16 3089 *
^1da177e4c3f41 Linus Torvalds 2005-04-16 3090 * The goto's are kind of ugly, but this streamlines the normal case of having
^1da177e4c3f41 Linus Torvalds 2005-04-16 3091 * it in the page cache, and handles the special cases reasonably without
^1da177e4c3f41 Linus Torvalds 2005-04-16 3092 * having a lot of duplicated code.
9a95f3cf7b33d6 Paul Cassella 2014-08-06 3093 *
c1e8d7c6a7a682 Michel Lespinasse 2020-06-08 3094 * vma->vm_mm->mmap_lock must be held on entry.
9a95f3cf7b33d6 Paul Cassella 2014-08-06 3095 *
c1e8d7c6a7a682 Michel Lespinasse 2020-06-08 3096 * If our return value has VM_FAULT_RETRY set, it's because the mmap_lock
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3097) * may be dropped before doing I/O or by lock_folio_maybe_drop_mmap().
9a95f3cf7b33d6 Paul Cassella 2014-08-06 3098 *
c1e8d7c6a7a682 Michel Lespinasse 2020-06-08 3099 * If our return value does not have VM_FAULT_RETRY set, the mmap_lock
9a95f3cf7b33d6 Paul Cassella 2014-08-06 3100 * has not been released.
9a95f3cf7b33d6 Paul Cassella 2014-08-06 3101 *
9a95f3cf7b33d6 Paul Cassella 2014-08-06 3102 * We never return with VM_FAULT_RETRY and a bit from VM_FAULT_ERROR set.
a862f68a8b3600 Mike Rapoport 2019-03-05 3103 *
a862f68a8b3600 Mike Rapoport 2019-03-05 3104 * Return: bitwise-OR of %VM_FAULT_ codes.
^1da177e4c3f41 Linus Torvalds 2005-04-16 3105 */
2bcd6454bae787 Souptick Joarder 2018-06-07 3106 vm_fault_t filemap_fault(struct vm_fault *vmf)
^1da177e4c3f41 Linus Torvalds 2005-04-16 3107 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 3108 int error;
11bac80004499e Dave Jiang 2017-02-24 3109 struct file *file = vmf->vma->vm_file;
6b4c9f4469819a Josef Bacik 2019-03-13 3110 struct file *fpin = NULL;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3111 struct address_space *mapping = file->f_mapping;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3112 struct inode *inode = mapping->host;
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3113) pgoff_t max_idx, index = vmf->pgoff;
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3114) struct folio *folio;
2bcd6454bae787 Souptick Joarder 2018-06-07 3115 vm_fault_t ret = 0;
730633f0b7f951 Jan Kara 2021-01-28 3116 bool mapping_locked = false;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3117
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3118) max_idx = DIV_ROUND_UP(i_size_read(inode), PAGE_SIZE);
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3119) if (unlikely(index >= max_idx))
5307cc1aa53850 Linus Torvalds 2007-10-31 3120 return VM_FAULT_SIGBUS;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3121
^1da177e4c3f41 Linus Torvalds 2005-04-16 3122 /*
4942642080ea82 Johannes Weiner 2013-10-16 3123 * Do we have something in the page cache already?
^1da177e4c3f41 Linus Torvalds 2005-04-16 3124 */
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3125) folio = filemap_get_folio(mapping, index);
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3126) if (likely(folio)) {
3ea89ee86a82e9 Fengguang Wu 2007-07-19 3127 /*
730633f0b7f951 Jan Kara 2021-01-28 3128 * We found the page, so try async readahead before waiting for
730633f0b7f951 Jan Kara 2021-01-28 3129 * the lock.
3ea89ee86a82e9 Fengguang Wu 2007-07-19 3130 */
730633f0b7f951 Jan Kara 2021-01-28 3131 if (!(vmf->flags & FAULT_FLAG_TRIED))
79598cedad85d1 Matthew Wilcox (Oracle 2021-07-29 3132) fpin = do_async_mmap_readahead(vmf, folio);
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3133) if (unlikely(!folio_test_uptodate(folio))) {
730633f0b7f951 Jan Kara 2021-01-28 3134 filemap_invalidate_lock_shared(mapping);
730633f0b7f951 Jan Kara 2021-01-28 3135 mapping_locked = true;
730633f0b7f951 Jan Kara 2021-01-28 3136 }
730633f0b7f951 Jan Kara 2021-01-28 3137 } else {
ef00e08e26dd5d Linus Torvalds 2009-06-16 3138 /* No page in the page cache at all */
ef00e08e26dd5d Linus Torvalds 2009-06-16 @3139 count_vm_event(PGMAJFAULT);
2262185c5b287f Roman Gushchin 2017-07-06 3140 count_memcg_event_mm(vmf->vma->vm_mm, PGMAJFAULT);
ef00e08e26dd5d Linus Torvalds 2009-06-16 3141 ret = VM_FAULT_MAJOR;
6b4c9f4469819a Josef Bacik 2019-03-13 3142 fpin = do_sync_mmap_readahead(vmf);
ef00e08e26dd5d Linus Torvalds 2009-06-16 3143 retry_find:
730633f0b7f951 Jan Kara 2021-01-28 3144 /*
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3145) * See comment in filemap_create_folio() why we need
730633f0b7f951 Jan Kara 2021-01-28 3146 * invalidate_lock
730633f0b7f951 Jan Kara 2021-01-28 3147 */
730633f0b7f951 Jan Kara 2021-01-28 3148 if (!mapping_locked) {
730633f0b7f951 Jan Kara 2021-01-28 3149 filemap_invalidate_lock_shared(mapping);
730633f0b7f951 Jan Kara 2021-01-28 3150 mapping_locked = true;
730633f0b7f951 Jan Kara 2021-01-28 3151 }
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3152) folio = __filemap_get_folio(mapping, index,
a75d4c33377277 Josef Bacik 2019-03-13 3153 FGP_CREAT|FGP_FOR_MMAP,
a75d4c33377277 Josef Bacik 2019-03-13 3154 vmf->gfp_mask);
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3155) if (!folio) {
6b4c9f4469819a Josef Bacik 2019-03-13 3156 if (fpin)
6b4c9f4469819a Josef Bacik 2019-03-13 3157 goto out_retry;
730633f0b7f951 Jan Kara 2021-01-28 3158 filemap_invalidate_unlock_shared(mapping);
e520e932dcc607 Matthew Wilcox (Oracle 2020-04-01 3159) return VM_FAULT_OOM;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3160 }
d88c0922fa0e2c Michel Lespinasse 2010-11-02 3161 }
b522c94da5d9cb Michel Lespinasse 2010-10-26 3162
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3163) if (!lock_folio_maybe_drop_mmap(vmf, folio, &fpin))
6b4c9f4469819a Josef Bacik 2019-03-13 3164 goto out_retry;
6b4c9f4469819a Josef Bacik 2019-03-13 3165
b522c94da5d9cb Michel Lespinasse 2010-10-26 3166 /* Did it get truncated? */
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3167) if (unlikely(folio->mapping != mapping)) {
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3168) folio_unlock(folio);
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3169) folio_put(folio);
b522c94da5d9cb Michel Lespinasse 2010-10-26 3170 goto retry_find;
b522c94da5d9cb Michel Lespinasse 2010-10-26 3171 }
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3172) VM_BUG_ON_FOLIO(!folio_contains(folio, index), folio);
b522c94da5d9cb Michel Lespinasse 2010-10-26 3173
^1da177e4c3f41 Linus Torvalds 2005-04-16 3174 /*
d00806b183152a Nicholas Piggin 2007-07-19 3175 * We have a locked page in the page cache, now we need to check
d00806b183152a Nicholas Piggin 2007-07-19 3176 * that it's up-to-date. If not, it is going to be due to an error.
^1da177e4c3f41 Linus Torvalds 2005-04-16 3177 */
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3178) if (unlikely(!folio_test_uptodate(folio))) {
730633f0b7f951 Jan Kara 2021-01-28 3179 /*
730633f0b7f951 Jan Kara 2021-01-28 3180 * The page was in cache and uptodate and now it is not.
730633f0b7f951 Jan Kara 2021-01-28 3181 * Strange but possible since we didn't hold the page lock all
730633f0b7f951 Jan Kara 2021-01-28 3182 * the time. Let's drop everything get the invalidate lock and
730633f0b7f951 Jan Kara 2021-01-28 3183 * try again.
730633f0b7f951 Jan Kara 2021-01-28 3184 */
730633f0b7f951 Jan Kara 2021-01-28 3185 if (!mapping_locked) {
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3186) folio_unlock(folio);
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3187) folio_put(folio);
730633f0b7f951 Jan Kara 2021-01-28 3188 goto retry_find;
730633f0b7f951 Jan Kara 2021-01-28 3189 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 3190 goto page_not_uptodate;
730633f0b7f951 Jan Kara 2021-01-28 3191 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 3192
6b4c9f4469819a Josef Bacik 2019-03-13 3193 /*
c1e8d7c6a7a682 Michel Lespinasse 2020-06-08 3194 * We've made it this far and we had to drop our mmap_lock, now is the
6b4c9f4469819a Josef Bacik 2019-03-13 3195 * time to return to the upper layer and have it re-find the vma and
6b4c9f4469819a Josef Bacik 2019-03-13 3196 * redo the fault.
6b4c9f4469819a Josef Bacik 2019-03-13 3197 */
6b4c9f4469819a Josef Bacik 2019-03-13 3198 if (fpin) {
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3199) folio_unlock(folio);
6b4c9f4469819a Josef Bacik 2019-03-13 3200 goto out_retry;
6b4c9f4469819a Josef Bacik 2019-03-13 3201 }
730633f0b7f951 Jan Kara 2021-01-28 3202 if (mapping_locked)
730633f0b7f951 Jan Kara 2021-01-28 3203 filemap_invalidate_unlock_shared(mapping);
6b4c9f4469819a Josef Bacik 2019-03-13 3204
ef00e08e26dd5d Linus Torvalds 2009-06-16 3205 /*
ef00e08e26dd5d Linus Torvalds 2009-06-16 3206 * Found the page and have a reference on it.
ef00e08e26dd5d Linus Torvalds 2009-06-16 3207 * We must recheck i_size under page lock.
ef00e08e26dd5d Linus Torvalds 2009-06-16 3208 */
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3209) max_idx = DIV_ROUND_UP(i_size_read(inode), PAGE_SIZE);
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3210) if (unlikely(index >= max_idx)) {
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3211) folio_unlock(folio);
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3212) folio_put(folio);
5307cc1aa53850 Linus Torvalds 2007-10-31 3213 return VM_FAULT_SIGBUS;
d00806b183152a Nicholas Piggin 2007-07-19 3214 }
d00806b183152a Nicholas Piggin 2007-07-19 3215
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3216) vmf->page = folio_file_page(folio, index);
83c54070ee1a2d Nicholas Piggin 2007-07-19 3217 return ret | VM_FAULT_LOCKED;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3218
^1da177e4c3f41 Linus Torvalds 2005-04-16 3219 page_not_uptodate:
^1da177e4c3f41 Linus Torvalds 2005-04-16 3220 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 3221 * Umm, take care of errors if the page isn't up-to-date.
^1da177e4c3f41 Linus Torvalds 2005-04-16 3222 * Try to re-read it _once_. We do this synchronously,
^1da177e4c3f41 Linus Torvalds 2005-04-16 3223 * because there really aren't any performance issues here
^1da177e4c3f41 Linus Torvalds 2005-04-16 3224 * and we need to check for errors.
^1da177e4c3f41 Linus Torvalds 2005-04-16 3225 */
6b4c9f4469819a Josef Bacik 2019-03-13 3226 fpin = maybe_unlock_mmap_for_io(vmf, fpin);
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3227) error = filemap_read_folio(file, mapping, folio);
6b4c9f4469819a Josef Bacik 2019-03-13 3228 if (fpin)
6b4c9f4469819a Josef Bacik 2019-03-13 3229 goto out_retry;
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3230) folio_put(folio);
d00806b183152a Nicholas Piggin 2007-07-19 3231
d00806b183152a Nicholas Piggin 2007-07-19 3232 if (!error || error == AOP_TRUNCATED_PAGE)
994fc28c7b1e69 Zach Brown 2005-12-15 3233 goto retry_find;
730633f0b7f951 Jan Kara 2021-01-28 3234 filemap_invalidate_unlock_shared(mapping);
^1da177e4c3f41 Linus Torvalds 2005-04-16 3235
d0217ac04ca659 Nicholas Piggin 2007-07-19 3236 return VM_FAULT_SIGBUS;
6b4c9f4469819a Josef Bacik 2019-03-13 3237
6b4c9f4469819a Josef Bacik 2019-03-13 3238 out_retry:
6b4c9f4469819a Josef Bacik 2019-03-13 3239 /*
c1e8d7c6a7a682 Michel Lespinasse 2020-06-08 3240 * We dropped the mmap_lock, we need to return to the fault handler to
6b4c9f4469819a Josef Bacik 2019-03-13 3241 * re-find the vma and come back and find our hopefully still populated
6b4c9f4469819a Josef Bacik 2019-03-13 3242 * page.
6b4c9f4469819a Josef Bacik 2019-03-13 3243 */
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3244) if (folio)
e292e6d644ce7b Matthew Wilcox (Oracle 2021-03-10 3245) folio_put(folio);
730633f0b7f951 Jan Kara 2021-01-28 3246 if (mapping_locked)
730633f0b7f951 Jan Kara 2021-01-28 3247 filemap_invalidate_unlock_shared(mapping);
6b4c9f4469819a Josef Bacik 2019-03-13 3248 if (fpin)
6b4c9f4469819a Josef Bacik 2019-03-13 3249 fput(fpin);
6b4c9f4469819a Josef Bacik 2019-03-13 3250 return ret | VM_FAULT_RETRY;
54cb8821de07f2 Nicholas Piggin 2007-07-19 3251 }
54cb8821de07f2 Nicholas Piggin 2007-07-19 3252 EXPORT_SYMBOL(filemap_fault);
54cb8821de07f2 Nicholas Piggin 2007-07-19 3253
--
0-DAY CI Kernel Test Service
https://01.org/lkp
next prev parent reply other threads:[~2022-08-07 8:29 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-04 7:47 [PATCH] mm: add DEVICE_ZONE to FOR_ALL_ZONES Hao Lee
2022-08-07 8:29 ` kernel test robot [this message]
2022-08-07 8:39 ` kernel test robot
2022-08-07 15:09 ` kernel test robot
2022-08-07 15:33 ` Hao Lee
2022-08-07 15:33 ` Hao Lee
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=202208071620.pju0F2pW-lkp@intel.com \
--to=lkp@intel.com \
--cc=akpm@linux-foundation.org \
--cc=david@redhat.com \
--cc=hannes@cmpxchg.org \
--cc=haolee.swjtu@gmail.com \
--cc=kbuild-all@lists.01.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=yang.shi@linux.alibaba.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.