From: kernel test robot <lkp@intel.com>
To: "Barry Song (Xiaomi)" <baohua@kernel.org>
Cc: oe-kbuild-all@lists.linux.dev,
linux-arm-kernel@lists.infradead.org, barry.song@csr.com
Subject: [baohua:dev/kairui_scanbalance 9/9] mm/vmscan.c:1953:6: warning: variable 'zone' set but not used
Date: Thu, 10 Sep 2026 16:30:06 +0800 [thread overview]
Message-ID: <202609101609.c4jRncpS-lkp@intel.com> (raw)
tree: https://git.kernel.org/pub/scm/linux/kernel/git/baohua/linux.git dev/kairui_scanbalance
head: c96aacd4045a7a4c8d292e6c9ba6d169cdc0b570
commit: c96aacd4045a7a4c8d292e6c9ba6d169cdc0b570 [9/9] mm/mglru: avoid placing rejected folios below populated gen
config: arm64-randconfig-r072-20260910 (https://download.01.org/0day-ci/archive/20260910/202609101609.c4jRncpS-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 10.5.0
smatch: v0.5.0-9187-g5189e3fb
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260910/202609101609.c4jRncpS-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202609101609.c4jRncpS-lkp@intel.com/
All warnings (new ones prefixed by >>):
include/linux/compiler_types.h:702:2: note: in expansion of macro '_compiletime_assert'
702 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:2: note: in expansion of macro 'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:21: note: in expansion of macro '__native_word'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:2: note: in expansion of macro 'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mm/vmscan.c:1955:26: note: in expansion of macro 'READ_ONCE'
1955 | unsigned long max_seq = READ_ONCE((lruvec)->lrugen.max_seq);
| ^~~~~~~~~
mm/vmscan.c:1955:44: error: 'struct lruvec' has no member named 'lrugen'
1955 | unsigned long max_seq = READ_ONCE((lruvec)->lrugen.max_seq);
| ^~
include/linux/compiler_types.h:682:9: note: in definition of macro '__compiletime_assert'
682 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:702:2: note: in expansion of macro '_compiletime_assert'
702 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:2: note: in expansion of macro 'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:21: note: in expansion of macro '__native_word'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:2: note: in expansion of macro 'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mm/vmscan.c:1955:26: note: in expansion of macro 'READ_ONCE'
1955 | unsigned long max_seq = READ_ONCE((lruvec)->lrugen.max_seq);
| ^~~~~~~~~
mm/vmscan.c:1955:44: error: 'struct lruvec' has no member named 'lrugen'
1955 | unsigned long max_seq = READ_ONCE((lruvec)->lrugen.max_seq);
| ^~
include/linux/compiler_types.h:682:9: note: in definition of macro '__compiletime_assert'
682 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:702:2: note: in expansion of macro '_compiletime_assert'
702 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:2: note: in expansion of macro 'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:2: note: in expansion of macro 'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mm/vmscan.c:1955:26: note: in expansion of macro 'READ_ONCE'
1955 | unsigned long max_seq = READ_ONCE((lruvec)->lrugen.max_seq);
| ^~~~~~~~~
In file included from <command-line>:
mm/vmscan.c:1955:44: error: 'struct lruvec' has no member named 'lrugen'
1955 | unsigned long max_seq = READ_ONCE((lruvec)->lrugen.max_seq);
| ^~
include/linux/compiler_types.h:626:13: note: in definition of macro '__unqual_scalar_typeof'
626 | _Generic((x), \
| ^
include/asm-generic/rwonce.h:50:2: note: in expansion of macro '__READ_ONCE'
50 | __READ_ONCE(x); \
| ^~~~~~~~~~~
mm/vmscan.c:1955:26: note: in expansion of macro 'READ_ONCE'
1955 | unsigned long max_seq = READ_ONCE((lruvec)->lrugen.max_seq);
| ^~~~~~~~~
In file included from arch/arm64/include/asm/rwonce.h:81,
from include/linux/compiler.h:369,
from include/asm-generic/bug.h:5,
from arch/arm64/include/asm/bug.h:26,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/mm.h:7,
from mm/vmscan.c:15:
mm/vmscan.c:1955:44: error: 'struct lruvec' has no member named 'lrugen'
1955 | unsigned long max_seq = READ_ONCE((lruvec)->lrugen.max_seq);
| ^~
include/asm-generic/rwonce.h:44:72: note: in definition of macro '__READ_ONCE'
44 | #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
| ^
mm/vmscan.c:1955:26: note: in expansion of macro 'READ_ONCE'
1955 | unsigned long max_seq = READ_ONCE((lruvec)->lrugen.max_seq);
| ^~~~~~~~~
mm/vmscan.c:1957:46: error: invalid use of undefined type 'struct lru_gen_folio'
1957 | if (folio_test_unevictable(folio) || !lrugen->enabled)
| ^~
mm/vmscan.c:1960:8: error: implicit declaration of function 'lru_gen_folio_seq' [-Werror=implicit-function-declaration]
1960 | seq = lru_gen_folio_seq(lruvec, folio, false);
| ^~~~~~~~~~~~~~~~~
mm/vmscan.c:1962:8: error: implicit declaration of function 'lru_gen_from_seq' [-Werror=implicit-function-declaration]
1962 | gen = lru_gen_from_seq(seq);
| ^~~~~~~~~~~~~~~~
mm/vmscan.c:1967:2: error: implicit declaration of function 'lru_gen_update_size'; did you mean 'huge_page_size'? [-Werror=implicit-function-declaration]
1967 | lru_gen_update_size(lruvec, folio, -1, gen);
| ^~~~~~~~~~~~~~~~~~~
| huge_page_size
mm/vmscan.c:1968:31: error: invalid use of undefined type 'struct lru_gen_folio'
1968 | list_add(&folio->lru, &lrugen->folios[gen][type][zone]);
| ^~
>> mm/vmscan.c:1953:6: warning: variable 'zone' set but not used [-Wunused-but-set-variable]
1953 | int zone = folio_zonenum(folio);
| ^~~~
>> mm/vmscan.c:1952:6: warning: variable 'type' set but not used [-Wunused-but-set-variable]
1952 | int type = folio_is_file_lru(folio);
| ^~~~
cc1: some warnings being treated as errors
vim +/zone +1953 mm/vmscan.c
1938
1939 /*
1940 * Even though we have called folio_set_active() for rejected folios
1941 * in evict_folios(), they may still be demoted or placed in the last
1942 * populated generation since we can now scan all generations.
1943 * Make sure these folios are neither demoted nor placed in the last
1944 * populated generation, unless it is also the youngest generation
1945 */
1946 static inline bool lru_gen_add_rejected_folio(struct lruvec *lruvec, struct folio *folio,
1947 unsigned long scanned_seq)
1948 {
1949 unsigned long seq;
1950 unsigned long flags;
1951 int gen;
> 1952 int type = folio_is_file_lru(folio);
> 1953 int zone = folio_zonenum(folio);
1954 struct lru_gen_folio *lrugen = &lruvec->lrugen;
1955 unsigned long max_seq = READ_ONCE((lruvec)->lrugen.max_seq);
1956
1957 if (folio_test_unevictable(folio) || !lrugen->enabled)
1958 return false;
1959
1960 seq = lru_gen_folio_seq(lruvec, folio, false);
1961 seq = max(seq, min(scanned_seq + 1, max_seq));
1962 gen = lru_gen_from_seq(seq);
1963 flags = (gen + 1UL) << LRU_GEN_PGOFF;
1964 /* see the comment on MIN_NR_GENS about PG_active */
1965 set_mask_bits(folio_flags(folio, 0), LRU_GEN_MASK | BIT(PG_active), flags);
1966
> 1967 lru_gen_update_size(lruvec, folio, -1, gen);
> 1968 list_add(&folio->lru, &lrugen->folios[gen][type][zone]);
1969
1970 return true;
1971 }
1972
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2026-09-10 8:31 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=202609101609.c4jRncpS-lkp@intel.com \
--to=lkp@intel.com \
--cc=baohua@kernel.org \
--cc=barry.song@csr.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=oe-kbuild-all@lists.linux.dev \
/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