Hi Vincent, kernel test robot noticed the following build warnings:
[auto build test WARNING on 8d8d276ba2fb5f9ac4984f5c10ae60858090babc] url: https://github.com/intel-lab-lkp/linux/commits/Vincent-Donnefort/ring-buffer-Check-for-empty-ring-buffer-with-rb_num_of_entries/20240911-173526 base: 8d8d276ba2fb5f9ac4984f5c10ae60858090babc patch link: https://lore.kernel.org/r/20240911093029.3279154-3-vdonnefort%40google.com patch subject: [PATCH 02/13] ring-buffer: Introducing ring-buffer writer config: x86_64-buildonly-randconfig-005-20240912 (https://download.01.org/0day-ci/archive/20240912/202409122021.a3dhcn9b-...@intel.com/config) compiler: gcc-12 (Debian 12.2.0-14) 12.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240912/202409122021.a3dhcn9b-...@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 <l...@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202409122021.a3dhcn9b-...@intel.com/ All warnings (new ones prefixed by >>): >> kernel/trace/ring_buffer.c:1755: warning: Function parameter or struct >> member 'writer' not described in '__ring_buffer_alloc' vim +1755 kernel/trace/ring_buffer.c 7a8e76a3829f10 Steven Rostedt 2008-09-29 1740 7a8e76a3829f10 Steven Rostedt 2008-09-29 1741 /** d611851b421731 zhangwei(Jovi 2013-07-15 1742) * __ring_buffer_alloc - allocate a new ring_buffer 68814b58c52077 Robert Richter 2008-11-24 1743 * @size: the size in bytes per cpu that is needed. 7a8e76a3829f10 Steven Rostedt 2008-09-29 1744 * @flags: attributes to set for the ring buffer. 59e7cffe5cca6f Fabian Frederick 2014-06-05 1745 * @key: ring buffer reader_lock_key. 7a8e76a3829f10 Steven Rostedt 2008-09-29 1746 * 7a8e76a3829f10 Steven Rostedt 2008-09-29 1747 * Currently the only flag that is available is the RB_FL_OVERWRITE 7a8e76a3829f10 Steven Rostedt 2008-09-29 1748 * flag. This flag means that the buffer will overwrite old data 7a8e76a3829f10 Steven Rostedt 2008-09-29 1749 * when the buffer wraps. If this flag is not set, the buffer will 7a8e76a3829f10 Steven Rostedt 2008-09-29 1750 * drop data when the tail hits the head. 7a8e76a3829f10 Steven Rostedt 2008-09-29 1751 */ 13292494379f92 Steven Rostedt (VMware 2019-12-13 1752) struct trace_buffer *__ring_buffer_alloc(unsigned long size, unsigned flags, 5f3fc4f452e3d3 Vincent Donnefort 2024-09-11 1753 struct lock_class_key *key, 5f3fc4f452e3d3 Vincent Donnefort 2024-09-11 1754 struct ring_buffer_writer *writer) 7a8e76a3829f10 Steven Rostedt 2008-09-29 @1755 { 13292494379f92 Steven Rostedt (VMware 2019-12-13 1756) struct trace_buffer *buffer; 9b94a8fba501f3 Steven Rostedt (Red Hat 2016-05-12 1757) long nr_pages; 7a8e76a3829f10 Steven Rostedt 2008-09-29 1758 int bsize; 9b94a8fba501f3 Steven Rostedt (Red Hat 2016-05-12 1759) int cpu; b32614c03413f8 Sebastian Andrzej Siewior 2016-11-27 1760 int ret; 7a8e76a3829f10 Steven Rostedt 2008-09-29 1761 7a8e76a3829f10 Steven Rostedt 2008-09-29 1762 /* keep it in its own cache line */ 7a8e76a3829f10 Steven Rostedt 2008-09-29 1763 buffer = kzalloc(ALIGN(sizeof(*buffer), cache_line_size()), 7a8e76a3829f10 Steven Rostedt 2008-09-29 1764 GFP_KERNEL); 7a8e76a3829f10 Steven Rostedt 2008-09-29 1765 if (!buffer) 7a8e76a3829f10 Steven Rostedt 2008-09-29 1766 return NULL; 7a8e76a3829f10 Steven Rostedt 2008-09-29 1767 b18cc3de00ec34 Sebastian Andrzej Siewior 2016-12-07 1768 if (!zalloc_cpumask_var(&buffer->cpumask, GFP_KERNEL)) 9e01c1b74c9531 Rusty Russell 2009-01-01 1769 goto fail_free_buffer; 9e01c1b74c9531 Rusty Russell 2009-01-01 1770 139f84002145d8 Tzvetomir Stoyanov (VMware 2023-12-19 1771) /* Default buffer page size - one system page */ f9b94daa542a8d Tzvetomir Stoyanov (VMware 2023-12-19 1772) buffer->subbuf_order = 0; 139f84002145d8 Tzvetomir Stoyanov (VMware 2023-12-19 1773) buffer->subbuf_size = PAGE_SIZE - BUF_PAGE_HDR_SIZE; 139f84002145d8 Tzvetomir Stoyanov (VMware 2023-12-19 1774) 139f84002145d8 Tzvetomir Stoyanov (VMware 2023-12-19 1775) /* Max payload is buffer page size - header (8bytes) */ 139f84002145d8 Tzvetomir Stoyanov (VMware 2023-12-19 1776) buffer->max_data_size = buffer->subbuf_size - (sizeof(u32) * 2); 139f84002145d8 Tzvetomir Stoyanov (VMware 2023-12-19 1777) 139f84002145d8 Tzvetomir Stoyanov (VMware 2023-12-19 1778) nr_pages = DIV_ROUND_UP(size, buffer->subbuf_size); 7a8e76a3829f10 Steven Rostedt 2008-09-29 1779 buffer->flags = flags; 37886f6a9f62d2 Steven Rostedt 2009-03-17 1780 buffer->clock = trace_clock_local; 1f8a6a10fb9437 Peter Zijlstra 2009-06-08 1781 buffer->reader_lock_key = key; 5f3fc4f452e3d3 Vincent Donnefort 2024-09-11 1782 if (writer) { 5f3fc4f452e3d3 Vincent Donnefort 2024-09-11 1783 buffer->writer = writer; 5f3fc4f452e3d3 Vincent Donnefort 2024-09-11 1784 /* The writer is external and never done by the kernel */ 5f3fc4f452e3d3 Vincent Donnefort 2024-09-11 1785 atomic_inc(&buffer->record_disabled); 5f3fc4f452e3d3 Vincent Donnefort 2024-09-11 1786 } 7a8e76a3829f10 Steven Rostedt 2008-09-29 1787 15693458c4bc06 Steven Rostedt (Red Hat 2013-02-28 1788) init_irq_work(&buffer->irq_work.work, rb_wake_up_waiters); f1dc6725882b5c Steven Rostedt (Red Hat 2013-03-04 1789) init_waitqueue_head(&buffer->irq_work.waiters); 15693458c4bc06 Steven Rostedt (Red Hat 2013-02-28 1790) 7a8e76a3829f10 Steven Rostedt 2008-09-29 1791 /* need at least two pages */ 438ced1720b584 Vaibhav Nagarnaik 2012-02-02 1792 if (nr_pages < 2) 438ced1720b584 Vaibhav Nagarnaik 2012-02-02 1793 nr_pages = 2; 7a8e76a3829f10 Steven Rostedt 2008-09-29 1794 7a8e76a3829f10 Steven Rostedt 2008-09-29 1795 buffer->cpus = nr_cpu_ids; 7a8e76a3829f10 Steven Rostedt 2008-09-29 1796 7a8e76a3829f10 Steven Rostedt 2008-09-29 1797 bsize = sizeof(void *) * nr_cpu_ids; 7a8e76a3829f10 Steven Rostedt 2008-09-29 1798 buffer->buffers = kzalloc(ALIGN(bsize, cache_line_size()), 7a8e76a3829f10 Steven Rostedt 2008-09-29 1799 GFP_KERNEL); 7a8e76a3829f10 Steven Rostedt 2008-09-29 1800 if (!buffer->buffers) 9e01c1b74c9531 Rusty Russell 2009-01-01 1801 goto fail_free_cpumask; 7a8e76a3829f10 Steven Rostedt 2008-09-29 1802 b32614c03413f8 Sebastian Andrzej Siewior 2016-11-27 1803 cpu = raw_smp_processor_id(); b32614c03413f8 Sebastian Andrzej Siewior 2016-11-27 1804 cpumask_set_cpu(cpu, buffer->cpumask); b32614c03413f8 Sebastian Andrzej Siewior 2016-11-27 1805 buffer->buffers[cpu] = rb_allocate_cpu_buffer(buffer, nr_pages, cpu); 7a8e76a3829f10 Steven Rostedt 2008-09-29 1806 if (!buffer->buffers[cpu]) 7a8e76a3829f10 Steven Rostedt 2008-09-29 1807 goto fail_free_buffers; 7a8e76a3829f10 Steven Rostedt 2008-09-29 1808 b32614c03413f8 Sebastian Andrzej Siewior 2016-11-27 1809 ret = cpuhp_state_add_instance(CPUHP_TRACE_RB_PREPARE, &buffer->node); b32614c03413f8 Sebastian Andrzej Siewior 2016-11-27 1810 if (ret < 0) b32614c03413f8 Sebastian Andrzej Siewior 2016-11-27 1811 goto fail_free_buffers; 554f786e284a6c Steven Rostedt 2009-03-11 1812 7a8e76a3829f10 Steven Rostedt 2008-09-29 1813 mutex_init(&buffer->mutex); 7a8e76a3829f10 Steven Rostedt 2008-09-29 1814 7a8e76a3829f10 Steven Rostedt 2008-09-29 1815 return buffer; 7a8e76a3829f10 Steven Rostedt 2008-09-29 1816 7a8e76a3829f10 Steven Rostedt 2008-09-29 1817 fail_free_buffers: 7a8e76a3829f10 Steven Rostedt 2008-09-29 1818 for_each_buffer_cpu(buffer, cpu) { 7a8e76a3829f10 Steven Rostedt 2008-09-29 1819 if (buffer->buffers[cpu]) 7a8e76a3829f10 Steven Rostedt 2008-09-29 1820 rb_free_cpu_buffer(buffer->buffers[cpu]); 7a8e76a3829f10 Steven Rostedt 2008-09-29 1821 } 7a8e76a3829f10 Steven Rostedt 2008-09-29 1822 kfree(buffer->buffers); 7a8e76a3829f10 Steven Rostedt 2008-09-29 1823 9e01c1b74c9531 Rusty Russell 2009-01-01 1824 fail_free_cpumask: 9e01c1b74c9531 Rusty Russell 2009-01-01 1825 free_cpumask_var(buffer->cpumask); 9e01c1b74c9531 Rusty Russell 2009-01-01 1826 7a8e76a3829f10 Steven Rostedt 2008-09-29 1827 fail_free_buffer: 7a8e76a3829f10 Steven Rostedt 2008-09-29 1828 kfree(buffer); 7a8e76a3829f10 Steven Rostedt 2008-09-29 1829 return NULL; 7a8e76a3829f10 Steven Rostedt 2008-09-29 1830 } 1f8a6a10fb9437 Peter Zijlstra 2009-06-08 1831 EXPORT_SYMBOL_GPL(__ring_buffer_alloc); 7a8e76a3829f10 Steven Rostedt 2008-09-29 1832 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki