lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <202511252040.Jny2Yxxn-lkp@intel.com>
Date: Tue, 25 Nov 2025 20:17:22 +0800
From: kernel test robot <lkp@...el.com>
To: Steven Rostedt <rostedt@...dmis.org>,
	LKML <linux-kernel@...r.kernel.org>,
	Linux Trace Kernel <linux-trace-kernel@...r.kernel.org>
Cc: oe-kbuild-all@...ts.linux.dev, Masami Hiramatsu <mhiramat@...nel.org>,
	Mathieu Desnoyers <mathieu.desnoyers@...icios.com>
Subject: Re: [PATCH] ring-buffer: Add helper functions for allocations

Hi Steven,

kernel test robot noticed the following build warnings:

[auto build test WARNING on trace/for-next]
[also build test WARNING on linus/master v6.18-rc7 next-20251125]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Steven-Rostedt/ring-buffer-Add-helper-functions-for-allocations/20251125-031044
base:   https://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace for-next
patch link:    https://lore.kernel.org/r/20251124140906.71a2abf6%40gandalf.local.home
patch subject: [PATCH] ring-buffer: Add helper functions for allocations
config: x86_64-defconfig (https://download.01.org/0day-ci/archive/20251125/202511252040.Jny2Yxxn-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251125/202511252040.Jny2Yxxn-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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202511252040.Jny2Yxxn-lkp@intel.com/

All warnings (new ones prefixed by >>):

   kernel/trace/ring_buffer.c: In function '__rb_allocate_pages':
>> kernel/trace/ring_buffer.c:2279:30: warning: unused variable 'page' [-Wunused-variable]
    2279 |                 struct page *page;
         |                              ^~~~
>> kernel/trace/ring_buffer.c:2242:15: warning: variable 'mflags' set but not used [-Wunused-but-set-variable]
    2242 |         gfp_t mflags;
         |               ^~~~~~
   kernel/trace/ring_buffer.c: In function 'rb_allocate_cpu_buffer':
   kernel/trace/ring_buffer.c:2362:22: warning: unused variable 'page' [-Wunused-variable]
    2362 |         struct page *page;
         |                      ^~~~
   kernel/trace/ring_buffer.c: In function 'ring_buffer_alloc_read_page':
   kernel/trace/ring_buffer.c:6493:22: warning: unused variable 'page' [-Wunused-variable]
    6493 |         struct page *page;
         |                      ^~~~


vim +/page +2279 kernel/trace/ring_buffer.c

c76883f18e59b7 Steven Rostedt (Google      2024-06-12  2234) 
74e2afc6df5782 Qiujun Huang                2020-10-15  2235  static int __rb_allocate_pages(struct ring_buffer_per_cpu *cpu_buffer,
74e2afc6df5782 Qiujun Huang                2020-10-15  2236  		long nr_pages, struct list_head *pages)
7a8e76a3829f10 Steven Rostedt              2008-09-29  2237  {
be68d63a139bd4 Steven Rostedt (Google      2024-06-12  2238) 	struct trace_buffer *buffer = cpu_buffer->buffer;
4009cc31e7813e Steven Rostedt              2025-03-05  2239  	struct ring_buffer_cpu_meta *meta = NULL;
044fa782ebb947 Steven Rostedt              2008-12-02  2240  	struct buffer_page *bpage, *tmp;
927e56db625322 Steven Rostedt (VMware      2018-04-04  2241) 	bool user_thread = current->mm != NULL;
927e56db625322 Steven Rostedt (VMware      2018-04-04 @2242) 	gfp_t mflags;
9b94a8fba501f3 Steven Rostedt (Red Hat     2016-05-12  2243) 	long i;
3adc54fa82a68b Steven Rostedt              2009-03-30  2244  
927e56db625322 Steven Rostedt (VMware      2018-04-04  2245) 	/*
927e56db625322 Steven Rostedt (VMware      2018-04-04  2246) 	 * Check if the available memory is there first.
927e56db625322 Steven Rostedt (VMware      2018-04-04  2247) 	 * Note, si_mem_available() only gives us a rough estimate of available
927e56db625322 Steven Rostedt (VMware      2018-04-04  2248) 	 * memory. It may not be accurate. But we don't care, we just want
927e56db625322 Steven Rostedt (VMware      2018-04-04  2249) 	 * to prevent doing any allocation when it is obvious that it is
927e56db625322 Steven Rostedt (VMware      2018-04-04  2250) 	 * not going to succeed.
927e56db625322 Steven Rostedt (VMware      2018-04-04  2251) 	 */
2a872fa4e9c8ad Steven Rostedt (VMware      2018-04-02  2252) 	i = si_mem_available();
2a872fa4e9c8ad Steven Rostedt (VMware      2018-04-02  2253) 	if (i < nr_pages)
2a872fa4e9c8ad Steven Rostedt (VMware      2018-04-02  2254) 		return -ENOMEM;
2a872fa4e9c8ad Steven Rostedt (VMware      2018-04-02  2255) 
d7ec4bfed6c974 Vaibhav Nagarnaik           2011-06-07  2256  	/*
848618857d2535 Joel Fernandes              2017-07-12  2257  	 * __GFP_RETRY_MAYFAIL flag makes sure that the allocation fails
848618857d2535 Joel Fernandes              2017-07-12  2258  	 * gracefully without invoking oom-killer and the system is not
848618857d2535 Joel Fernandes              2017-07-12  2259  	 * destabilized.
d7ec4bfed6c974 Vaibhav Nagarnaik           2011-06-07  2260  	 */
927e56db625322 Steven Rostedt (VMware      2018-04-04  2261) 	mflags = GFP_KERNEL | __GFP_RETRY_MAYFAIL;
927e56db625322 Steven Rostedt (VMware      2018-04-04  2262) 
927e56db625322 Steven Rostedt (VMware      2018-04-04  2263) 	/*
927e56db625322 Steven Rostedt (VMware      2018-04-04  2264) 	 * If a user thread allocates too much, and si_mem_available()
927e56db625322 Steven Rostedt (VMware      2018-04-04  2265) 	 * reports there's enough memory, even though there is not.
927e56db625322 Steven Rostedt (VMware      2018-04-04  2266) 	 * Make sure the OOM killer kills this thread. This can happen
927e56db625322 Steven Rostedt (VMware      2018-04-04  2267) 	 * even with RETRY_MAYFAIL because another task may be doing
927e56db625322 Steven Rostedt (VMware      2018-04-04  2268) 	 * an allocation after this task has taken all memory.
927e56db625322 Steven Rostedt (VMware      2018-04-04  2269) 	 * This is the task the OOM killer needs to take out during this
927e56db625322 Steven Rostedt (VMware      2018-04-04  2270) 	 * loop, even if it was triggered by an allocation somewhere else.
927e56db625322 Steven Rostedt (VMware      2018-04-04  2271) 	 */
927e56db625322 Steven Rostedt (VMware      2018-04-04  2272) 	if (user_thread)
927e56db625322 Steven Rostedt (VMware      2018-04-04  2273) 		set_current_oom_origin();
c76883f18e59b7 Steven Rostedt (Google      2024-06-12  2274) 
c76883f18e59b7 Steven Rostedt (Google      2024-06-12  2275) 	if (buffer->range_addr_start)
c76883f18e59b7 Steven Rostedt (Google      2024-06-12  2276) 		meta = rb_range_meta(buffer, nr_pages, cpu_buffer->cpu);
c76883f18e59b7 Steven Rostedt (Google      2024-06-12  2277) 
927e56db625322 Steven Rostedt (VMware      2018-04-04  2278) 	for (i = 0; i < nr_pages; i++) {
927e56db625322 Steven Rostedt (VMware      2018-04-04 @2279) 		struct page *page;
927e56db625322 Steven Rostedt (VMware      2018-04-04  2280) 
1e3d56c5556b8d Steven Rostedt              2025-11-24  2281  		bpage = alloc_cpu_page(cpu_buffer->cpu);
044fa782ebb947 Steven Rostedt              2008-12-02  2282  		if (!bpage)
e4c2ce82ca2710 Steven Rostedt              2008-10-01  2283  			goto free_pages;
77ae365eca8950 Steven Rostedt              2009-03-27  2284  
74e2afc6df5782 Qiujun Huang                2020-10-15  2285  		rb_check_bpage(cpu_buffer, bpage);
74e2afc6df5782 Qiujun Huang                2020-10-15  2286  
be68d63a139bd4 Steven Rostedt (Google      2024-06-12  2287) 		/*
be68d63a139bd4 Steven Rostedt (Google      2024-06-12  2288) 		 * Append the pages as for mapped buffers we want to keep
be68d63a139bd4 Steven Rostedt (Google      2024-06-12  2289) 		 * the order
be68d63a139bd4 Steven Rostedt (Google      2024-06-12  2290) 		 */
be68d63a139bd4 Steven Rostedt (Google      2024-06-12  2291) 		list_add_tail(&bpage->list, pages);
e4c2ce82ca2710 Steven Rostedt              2008-10-01  2292  
c76883f18e59b7 Steven Rostedt (Google      2024-06-12  2293) 		if (meta) {
be68d63a139bd4 Steven Rostedt (Google      2024-06-12  2294) 			/* A range was given. Use that for the buffer page */
b14d032973d4e6 Steven Rostedt (Google      2024-06-12  2295) 			bpage->page = rb_range_buffer(cpu_buffer, i + 1);
be68d63a139bd4 Steven Rostedt (Google      2024-06-12  2296) 			if (!bpage->page)
be68d63a139bd4 Steven Rostedt (Google      2024-06-12  2297) 				goto free_pages;
c76883f18e59b7 Steven Rostedt (Google      2024-06-12  2298) 			/* If this is valid from a previous boot */
c76883f18e59b7 Steven Rostedt (Google      2024-06-12  2299) 			if (meta->head_buffer)
c76883f18e59b7 Steven Rostedt (Google      2024-06-12  2300) 				rb_meta_buffer_update(cpu_buffer, bpage);
be68d63a139bd4 Steven Rostedt (Google      2024-06-12  2301) 			bpage->range = 1;
b14d032973d4e6 Steven Rostedt (Google      2024-06-12  2302) 			bpage->id = i + 1;
be68d63a139bd4 Steven Rostedt (Google      2024-06-12  2303) 		} else {
1e3d56c5556b8d Steven Rostedt              2025-11-24  2304  			int order = cpu_buffer->buffer->subbuf_order;
1e3d56c5556b8d Steven Rostedt              2025-11-24  2305  			bpage->page = alloc_cpu_data(cpu_buffer->cpu, order);
1e3d56c5556b8d Steven Rostedt              2025-11-24  2306  			if (!bpage->page)
7a8e76a3829f10 Steven Rostedt              2008-09-29  2307  				goto free_pages;
be68d63a139bd4 Steven Rostedt (Google      2024-06-12  2308) 		}
f9b94daa542a8d Tzvetomir Stoyanov (VMware  2023-12-19  2309) 		bpage->order = cpu_buffer->buffer->subbuf_order;
927e56db625322 Steven Rostedt (VMware      2018-04-04  2310) 
927e56db625322 Steven Rostedt (VMware      2018-04-04  2311) 		if (user_thread && fatal_signal_pending(current))
927e56db625322 Steven Rostedt (VMware      2018-04-04  2312) 			goto free_pages;
7a8e76a3829f10 Steven Rostedt              2008-09-29  2313  	}
927e56db625322 Steven Rostedt (VMware      2018-04-04  2314) 	if (user_thread)
927e56db625322 Steven Rostedt (VMware      2018-04-04  2315) 		clear_current_oom_origin();
7a8e76a3829f10 Steven Rostedt              2008-09-29  2316  
438ced1720b584 Vaibhav Nagarnaik           2012-02-02  2317  	return 0;
438ced1720b584 Vaibhav Nagarnaik           2012-02-02  2318  
438ced1720b584 Vaibhav Nagarnaik           2012-02-02  2319  free_pages:
438ced1720b584 Vaibhav Nagarnaik           2012-02-02  2320  	list_for_each_entry_safe(bpage, tmp, pages, list) {
438ced1720b584 Vaibhav Nagarnaik           2012-02-02  2321  		list_del_init(&bpage->list);
438ced1720b584 Vaibhav Nagarnaik           2012-02-02  2322  		free_buffer_page(bpage);
438ced1720b584 Vaibhav Nagarnaik           2012-02-02  2323  	}
927e56db625322 Steven Rostedt (VMware      2018-04-04  2324) 	if (user_thread)
927e56db625322 Steven Rostedt (VMware      2018-04-04  2325) 		clear_current_oom_origin();
438ced1720b584 Vaibhav Nagarnaik           2012-02-02  2326  
438ced1720b584 Vaibhav Nagarnaik           2012-02-02  2327  	return -ENOMEM;
438ced1720b584 Vaibhav Nagarnaik           2012-02-02  2328  }
438ced1720b584 Vaibhav Nagarnaik           2012-02-02  2329  

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ