All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: Re: [PATCH 1/2] ring-buffer: Introducing ring-buffer mapping functions
Date: Sat, 18 Mar 2023 11:00:45 +0800	[thread overview]
Message-ID: <202303181001.bu7VCBhF-lkp@intel.com> (raw)

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20230317143310.1604700-2-vdonnefort@google.com>
References: <20230317143310.1604700-2-vdonnefort@google.com>
TO: Vincent Donnefort <vdonnefort@google.com>
TO: rostedt@goodmis.org
TO: mhiramat@kernel.org
TO: linux-kernel@vger.kernel.org
TO: linux-trace-kernel@vger.kernel.org
CC: kernel-team@android.com
CC: Vincent Donnefort <vdonnefort@google.com>

Hi Vincent,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on rostedt-trace/for-next v6.3-rc2 next-20230317]
[cannot apply to rostedt-trace/for-next-urgent]
[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/Vincent-Donnefort/ring-buffer-Introducing-ring-buffer-mapping-functions/20230317-223437
patch link:    https://lore.kernel.org/r/20230317143310.1604700-2-vdonnefort%40google.com
patch subject: [PATCH 1/2] ring-buffer: Introducing ring-buffer mapping functions
:::::: branch date: 12 hours ago
:::::: commit date: 12 hours ago
config: i386-randconfig-m021 (https://download.01.org/0day-ci/archive/20230318/202303181001.bu7VCBhF-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-8) 11.3.0

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Link: https://lore.kernel.org/r/202303181001.bu7VCBhF-lkp@intel.com/

smatch warnings:
kernel/trace/ring_buffer.c:6137 ring_buffer_get_reader_page() warn: passing a valid pointer to 'PTR_ERR'
kernel/trace/ring_buffer.c:5996 rb_get_mapped_buffer() warn: inconsistent returns '&cpu_buffer->mapping_lock'.
kernel/trace/ring_buffer.c:6158 ring_buffer_update_meta_page() warn: passing a valid pointer to 'PTR_ERR'

vim +/PTR_ERR +6137 kernel/trace/ring_buffer.c

e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  5978  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  5979  static inline struct ring_buffer_per_cpu *
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  5980  rb_get_mapped_buffer(struct trace_buffer *buffer, int cpu)
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  5981  {
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  5982  	struct ring_buffer_per_cpu *cpu_buffer;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  5983  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  5984  	if (!cpumask_test_cpu(cpu, buffer->cpumask))
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  5985  		return ERR_PTR(-EINVAL);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  5986  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  5987  	cpu_buffer = buffer->buffers[cpu];
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  5988  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  5989  	mutex_lock(&cpu_buffer->mapping_lock);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  5990  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  5991  	if (!cpu_buffer->mapped) {
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  5992  		mutex_unlock(&cpu_buffer->mapping_lock);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  5993  		return ERR_PTR(-ENODEV);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  5994  	}
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  5995  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17 @5996  	return cpu_buffer;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  5997  }
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  5998  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  5999  static inline void rb_put_mapped_buffer(struct ring_buffer_per_cpu *cpu_buffer)
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6000  {
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6001  	mutex_unlock(&cpu_buffer->mapping_lock);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6002  }
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6003  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6004  int ring_buffer_map(struct trace_buffer *buffer, int cpu)
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6005  {
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6006  	struct ring_buffer_per_cpu *cpu_buffer;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6007  	unsigned long flags, *page_ids;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6008  	int err = 0;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6009  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6010  	if (!cpumask_test_cpu(cpu, buffer->cpumask))
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6011  		return -EINVAL;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6012  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6013  	cpu_buffer = buffer->buffers[cpu];
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6014  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6015  	mutex_lock(&cpu_buffer->mapping_lock);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6016  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6017  	if (cpu_buffer->mapped) {
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6018  		WRITE_ONCE(cpu_buffer->mapped, cpu_buffer->mapped + 1);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6019  		goto unlock;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6020  	}
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6021  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6022  	/* prevent another thread from changing buffer sizes */
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6023  	mutex_lock(&buffer->mutex);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6024  	atomic_inc(&cpu_buffer->resize_disabled);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6025  	mutex_unlock(&buffer->mutex);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6026  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6027  	err = rb_alloc_meta_page(cpu_buffer);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6028  	if (err) {
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6029  		atomic_dec(&cpu_buffer->resize_disabled);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6030  		goto unlock;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6031  	}
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6032  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6033  	/* page_ids include the reader page while nr_pages does not */
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6034  	page_ids = kzalloc(sizeof(*page_ids) * (cpu_buffer->nr_pages + 1),
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6035  			   GFP_KERNEL);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6036  	if (!page_ids) {
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6037  		rb_free_meta_page(cpu_buffer);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6038  		atomic_dec(&cpu_buffer->resize_disabled);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6039  		err = -ENOMEM;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6040  		goto unlock;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6041  	}
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6042  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6043  	/*
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6044  	 * Lock all readers to block any page swap until the page IDs are
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6045  	 * assigned.
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6046  	 */
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6047  	raw_spin_lock_irqsave(&cpu_buffer->reader_lock, flags);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6048  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6049  	rb_setup_ids_meta_page(cpu_buffer, page_ids);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6050  	/*
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6051  	 * Ensure the writer will observe the meta-page before
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6052  	 * cpu_buffer->mapped.
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6053  	 */
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6054  	smp_wmb();
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6055  	WRITE_ONCE(cpu_buffer->mapped, 1);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6056  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6057  	/* Init meta_page values unless the writer did it already */
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6058  	cmpxchg(&cpu_buffer->meta_page->entries, 0,
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6059  		local_read(&cpu_buffer->entries));
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6060  	cmpxchg(&cpu_buffer->meta_page->overrun, 0,
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6061  		local_read(&cpu_buffer->overrun));
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6062  	cmpxchg(&cpu_buffer->meta_page->pages_touched, 0,
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6063  		local_read(&cpu_buffer->pages_touched));
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6064  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6065  	raw_spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6066  unlock:
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6067  	mutex_unlock(&cpu_buffer->mapping_lock);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6068  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6069  	return err;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6070  }
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6071  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6072  int ring_buffer_unmap(struct trace_buffer *buffer, int cpu)
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6073  {
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6074  	struct ring_buffer_per_cpu *cpu_buffer;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6075  	int err = 0;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6076  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6077  	if (!cpumask_test_cpu(cpu, buffer->cpumask))
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6078  		return -EINVAL;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6079  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6080  	cpu_buffer = buffer->buffers[cpu];
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6081  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6082  	mutex_lock(&cpu_buffer->mapping_lock);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6083  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6084  	if (!cpu_buffer->mapped) {
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6085  		err = -ENODEV;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6086  		goto unlock;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6087  	}
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6088  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6089  	WRITE_ONCE(cpu_buffer->mapped, cpu_buffer->mapped - 1);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6090  	if (!cpu_buffer->mapped) {
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6091  		/* Wait the writer and readers to observe !mapped */
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6092  		synchronize_rcu();
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6093  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6094  		rb_free_page_ids(cpu_buffer);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6095  		rb_free_meta_page(cpu_buffer);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6096  		atomic_dec(&cpu_buffer->resize_disabled);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6097  	}
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6098  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6099  unlock:
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6100  	mutex_unlock(&cpu_buffer->mapping_lock);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6101  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6102  	return err;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6103  }
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6104  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6105  /*
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6106   *   +--------------+
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6107   *   |   meta page  |  pgoff=0
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6108   *   +--------------+
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6109   *   |  data page1  |  pgoff=1 page_ids=0
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6110   *   +--------------+
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6111   *   |  data page2  |  pgoff=2 page_ids=1
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6112   *         ...
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6113   */
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6114  struct page *ring_buffer_map_fault(struct trace_buffer *buffer, int cpu,
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6115  				   unsigned long pgoff)
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6116  {
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6117  	struct ring_buffer_per_cpu *cpu_buffer = buffer->buffers[cpu];
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6118  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6119  	if (!pgoff)
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6120  		return virt_to_page(cpu_buffer->meta_page);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6121  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6122  	pgoff--;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6123  	if (pgoff > cpu_buffer->nr_pages)
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6124  		return NULL;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6125  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6126  	return virt_to_page(cpu_buffer->page_ids[pgoff]);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6127  }
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6128  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6129  int ring_buffer_get_reader_page(struct trace_buffer *buffer, int cpu)
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6130  {
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6131  	struct ring_buffer_per_cpu *cpu_buffer;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6132  	struct buffer_page *reader;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6133  	unsigned long flags;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6134  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6135  	cpu_buffer = rb_get_mapped_buffer(buffer, cpu);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6136  	if (IS_ERR(cpu_buffer))
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17 @6137  		return (int)PTR_ERR(cpu_buffer);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6138  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6139  	raw_spin_lock_irqsave(&cpu_buffer->reader_lock, flags);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6140  	reader = cpu_buffer->reader_page;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6141  	reader->read = rb_page_size(reader);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6142  	if (!rb_per_cpu_empty(cpu_buffer))
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6143  		WARN_ON(!rb_get_reader_page(cpu_buffer));
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6144  	raw_spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6145  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6146  	rb_put_mapped_buffer(cpu_buffer);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6147  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6148  	return 0;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6149  }
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6150  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6151  int ring_buffer_update_meta_page(struct trace_buffer *buffer, int cpu)
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6152  {
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6153  	struct ring_buffer_per_cpu *cpu_buffer;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6154  	unsigned long flags;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6155  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6156  	cpu_buffer = rb_get_mapped_buffer(buffer, cpu);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6157  	if (IS_ERR(cpu_buffer))
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17 @6158  		return PTR_ERR(cpu_buffer);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6159  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6160  	/* Update the head page if the writer moved it */
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6161  	raw_spin_lock_irqsave(&cpu_buffer->reader_lock, flags);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6162  	rb_set_head_page(cpu_buffer);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6163  	raw_spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6164  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6165  	rb_put_mapped_buffer(cpu_buffer);
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6166  
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6167  	return 0;
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6168  }
e6f6ebfdb93b0a Vincent Donnefort 2023-03-17  6169  

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

             reply	other threads:[~2023-03-18  3:01 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-18  3:00 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2023-03-17 14:33 [PATCH 0/2] Introducing trace buffer mapping by user-space Vincent Donnefort
2023-03-17 14:33 ` [PATCH 1/2] ring-buffer: Introducing ring-buffer mapping functions Vincent Donnefort
2023-03-21  1:45   ` Steven Rostedt
2023-03-21 15:17     ` Vincent Donnefort
2023-03-21 15:40       ` Steven Rostedt
2023-03-21 16:20         ` Vincent Donnefort
2023-03-21 16:51           ` Steven Rostedt
2023-03-21 16:44         ` Steven Rostedt
2023-03-21 16:50           ` Vincent Donnefort

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=202303181001.bu7VCBhF-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=error27@gmail.com \
    --cc=oe-kbuild@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 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.