[mark:arm64/percpu-fixup 15/15] arch/arm64/kernel/alternative.c:200:1: warning: the frame size of 2064 bytes is larger than 2048 bytes

kernel test robot <[email protected]> Sun, 26 Jul 2026 09:00:32 +0200
Newsgroups dev.linux.lists.oe-kbuild-all
Message-ID <[email protected]>
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git arm64/percpu-fixup
head:   8bbe5292f78ff005386b5ccf26a290ebfcc8c42d
commit: 8bbe5292f78ff005386b5ccf26a290ebfcc8c42d [15/15] HACK: arm64: alternatives: dump summary of alternatives
config: arm64-allnoconfig-bpf (https://download.01.org/0day-ci/archive/20260726/[email protected]/config)
compiler: aarch64-linux-gnu-gcc (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260726/[email protected]/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 <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

All warnings (new ones prefixed by >>):

   arch/arm64/kernel/alternative.c: In function 'summarize_alternatives.isra':
>> arch/arm64/kernel/alternative.c:200:1: warning: the frame size of 2064 bytes is larger than 2048 bytes [-Wframe-larger-than=]
     200 | }
         | ^


vim +200 arch/arm64/kernel/alternative.c

   141	
   142	#define for_each_region_alt(region, alt)		\
   143		for (struct alt_instr *alt = (region)->begin;	\
   144		     (alt) < (region)->end;			\
   145		     (alt)++)
   146	
   147	static void summarize_alternatives(const struct alt_region *region)
   148	{
   149		unsigned int entries[ARM64_NCAPS] = { 0 };
   150		unsigned int orig_len[ARM64_NCAPS] = { 0 };
   151		unsigned int repl_len[ARM64_NCAPS] = { 0 };
   152		unsigned int callbacks[ARM64_NCAPS] = { 0 };
   153	
   154		unsigned int total_entries = 0;
   155		unsigned int total_orig = 0;
   156		unsigned int total_repl = 0;
   157		unsigned int total_callbacks = 0;
   158	
   159		for_each_region_alt(region, alt) {
   160			int cap = ALT_CAP(alt);
   161	
   162			entries[cap]++;
   163			total_entries++;
   164	
   165			orig_len[cap] += alt->orig_len;
   166			total_orig += alt->orig_len;
   167	
   168			repl_len[cap] += alt->alt_len;
   169			total_repl += alt->alt_len;
   170	
   171			if (ALT_HAS_CB(alt)) {
   172				callbacks[cap]++;
   173				total_callbacks++;
   174			}
   175		}
   176	
   177		pr_info("Alternatives summary:\n"
   178			"    entries:      %6u (%6zu bytes)\n"
   179			"      standard:   %6d\n"
   180			"      callback:   %6d\n"
   181			"    instructions: %6u (%6u bytes)\n"
   182			"    replacements: %6u (%6u bytes)\n",
   183			total_entries,	total_entries * sizeof (struct alt_instr),
   184			total_entries - total_callbacks,
   185			total_callbacks,
   186			total_orig / AARCH64_INSN_SIZE, total_orig,
   187			total_repl / AARCH64_INSN_SIZE, total_repl);
   188	
   189		for (int i = 0; i < ARM64_NCAPS; i++) {
   190			if (!entries[i])
   191				continue;
   192	
   193			pr_info("cpucap %3d => entries: %6d, orig: %6d, repl: %6d, cb: %6d\n",
   194				i,
   195				entries[i],
   196				orig_len[i] / AARCH64_INSN_SIZE,
   197				repl_len[i] / AARCH64_INSN_SIZE,
   198				callbacks[i]);
   199		}
 > 200	}
   201	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki