From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: Re: [RFC v2] perf: Rewrite core context handling
Date: Sat, 15 Jan 2022 05:48:56 +0800 [thread overview]
Message-ID: <202201150516.CCZxTJTq-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 19978 bytes --]
CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
In-Reply-To: <20220113134743.1292-1-ravi.bangoria@amd.com>
References: <20220113134743.1292-1-ravi.bangoria@amd.com>
TO: Ravi Bangoria <ravi.bangoria@amd.com>
Hi Ravi,
[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on tip/perf/core]
[also build test WARNING on powerpc/next tip/sched/core v5.16 next-20220114]
[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]
url: https://github.com/0day-ci/linux/commits/Ravi-Bangoria/perf-Rewrite-core-context-handling/20220113-215022
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git a9f4a6e92b3b319296fb078da2615f618f6cd80c
:::::: branch date: 32 hours ago
:::::: commit date: 32 hours ago
config: arm-randconfig-c002-20220113 (https://download.01.org/0day-ci/archive/20220115/202201150516.CCZxTJTq-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project d1021978b8e7e35dcc30201ca1731d64b5a602a8)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# https://github.com/0day-ci/linux/commit/f7cf7134e405062bf0f22c3ba5637241c4c4d06a
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Ravi-Bangoria/perf-Rewrite-core-context-handling/20220113-215022
git checkout f7cf7134e405062bf0f22c3ba5637241c4c4d06a
# save the config file to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm clang-analyzer
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
clang-analyzer warnings: (new ones prefixed by >>)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/events/core.c:3752:2: note: Loop condition is true. Entering loop body
while (event_heap.nr) {
^
kernel/events/core.c:3753:9: note: Calling 'merge_sched_in'
ret = func(*evt, data);
^~~~~~~~~~~~~~~~
kernel/events/core.c:3792:35: note: Assuming pointer value is null
struct perf_event_context *ctx = event->ctx;
^~~~~~~~~~
kernel/events/core.c:3795:6: note: Assuming field 'state' is > PERF_EVENT_STATE_OFF
if (event->state <= PERF_EVENT_STATE_OFF)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/events/core.c:3795:2: note: Taking false branch
if (event->state <= PERF_EVENT_STATE_OFF)
^
kernel/events/core.c:3798:6: note: Assuming the condition is true
if (!event_filter_match(event))
^~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/events/core.c:3798:2: note: Taking true branch
if (!event_filter_match(event))
^
kernel/events/core.c:3799:3: note: Returning zero, which participates in a condition later
return 0;
^~~~~~~~
kernel/events/core.c:3753:9: note: Returning from 'merge_sched_in'
ret = func(*evt, data);
^~~~~~~~~~~~~~~~
kernel/events/core.c:3754:7: note: 'ret' is 0
if (ret)
^~~
kernel/events/core.c:3754:3: note: Taking false branch
if (ret)
^
kernel/events/core.c:3758:3: note: Taking false branch
if (*evt)
^
kernel/events/core.c:3761:4: note: Calling 'min_heap_pop'
min_heap_pop(&event_heap, &perf_min_heap);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/min_heap.h:84:16: note: Assuming field 'nr' is > 0
if (WARN_ONCE(heap->nr <= 0, "Popping an empty heap"))
^
include/asm-generic/bug.h:150:18: note: expanded from macro 'WARN_ONCE'
DO_ONCE_LITE_IF(condition, WARN, 1, format)
^~~~~~~~~
include/linux/once_lite.h:15:27: note: expanded from macro 'DO_ONCE_LITE_IF'
bool __ret_do_once = !!(condition); \
^~~~~~~~~
include/linux/min_heap.h:84:6: note: '__ret_do_once' is false
if (WARN_ONCE(heap->nr <= 0, "Popping an empty heap"))
^
include/asm-generic/bug.h:150:2: note: expanded from macro 'WARN_ONCE'
DO_ONCE_LITE_IF(condition, WARN, 1, format)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/once_lite.h:17:16: note: expanded from macro 'DO_ONCE_LITE_IF'
if (unlikely(__ret_do_once && !__already_done)) { \
^~~~~~~~~~~~~
include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
include/linux/min_heap.h:84:6: note: Left side of '&&' is false
if (WARN_ONCE(heap->nr <= 0, "Popping an empty heap"))
^
include/asm-generic/bug.h:150:2: note: expanded from macro 'WARN_ONCE'
DO_ONCE_LITE_IF(condition, WARN, 1, format)
^
include/linux/once_lite.h:17:30: note: expanded from macro 'DO_ONCE_LITE_IF'
if (unlikely(__ret_do_once && !__already_done)) { \
^
include/linux/min_heap.h:84:6: note: Taking false branch
if (WARN_ONCE(heap->nr <= 0, "Popping an empty heap"))
^
include/asm-generic/bug.h:150:2: note: expanded from macro 'WARN_ONCE'
DO_ONCE_LITE_IF(condition, WARN, 1, format)
^
include/linux/once_lite.h:17:3: note: expanded from macro 'DO_ONCE_LITE_IF'
if (unlikely(__ret_do_once && !__already_done)) { \
^
include/linux/min_heap.h:84:2: note: Taking false branch
if (WARN_ONCE(heap->nr <= 0, "Popping an empty heap"))
^
include/linux/min_heap.h:90:2: note: Value assigned to 'event_heap.nr', which participates in a condition later
min_heapify(heap, 0, func);
^~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/events/core.c:3761:4: note: Returning from 'min_heap_pop'
min_heap_pop(&event_heap, &perf_min_heap);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/events/core.c:3752:2: note: Loop condition is true. Entering loop body
while (event_heap.nr) {
^
kernel/events/core.c:3753:14: note: Passing null pointer value via 1st parameter 'event'
ret = func(*evt, data);
^~~~
kernel/events/core.c:3753:9: note: Calling 'merge_sched_in'
ret = func(*evt, data);
^~~~~~~~~~~~~~~~
kernel/events/core.c:3792:35: note: Access to field 'ctx' results in a dereference of a null pointer (loaded from variable 'event')
struct perf_event_context *ctx = event->ctx;
^~~~~
>> kernel/events/core.c:4277:2: warning: Value stored to 'task_ctx' is never read [clang-analyzer-deadcode.DeadStores]
task_ctx = cpuctx->task_ctx;
^ ~~~~~~~~~~~~~~~~
kernel/events/core.c:4277:2: note: Value stored to 'task_ctx' is never read
task_ctx = cpuctx->task_ctx;
^ ~~~~~~~~~~~~~~~~
kernel/events/core.c:4777:2: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = -EINVAL;
^ ~~~~~~~
kernel/events/core.c:4777:2: note: Value stored to 'err' is never read
err = -EINVAL;
^ ~~~~~~~
kernel/events/core.c:10439:13: warning: Dereference of null pointer [clang-analyzer-core.NullDereference]
for (vma = mm->mmap; vma; vma = vma->vm_next) {
^
kernel/events/core.c:10454:39: note: Calling 'perf_event_addr_filters'
struct perf_addr_filters_head *ifh = perf_event_addr_filters(event);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/perf_event.h:1475:6: note: Assuming field 'parent' is null
if (event->parent)
^~~~~~~~~~~~~
include/linux/perf_event.h:1475:2: note: Taking false branch
if (event->parent)
^
include/linux/perf_event.h:1478:2: note: Returning without writing to 'event->addr_filters.nr_file_filters', which participates in a condition later
return ifh;
^
kernel/events/core.c:10454:39: note: Returning from 'perf_event_addr_filters'
struct perf_addr_filters_head *ifh = perf_event_addr_filters(event);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/events/core.c:10455:29: note: Left side of '||' is false
struct task_struct *task = READ_ONCE(event->ctx->task);
^
include/asm-generic/rwonce.h:49:2: note: expanded from macro 'READ_ONCE'
compiletime_assert_rwonce_type(x); \
^
include/asm-generic/rwonce.h:36:21: note: expanded from macro 'compiletime_assert_rwonce_type'
compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
^
include/linux/compiler_types.h:302:3: note: expanded from macro '__native_word'
(sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || \
^
kernel/events/core.c:10455:29: note: Left side of '||' is false
struct task_struct *task = READ_ONCE(event->ctx->task);
^
include/asm-generic/rwonce.h:49:2: note: expanded from macro 'READ_ONCE'
compiletime_assert_rwonce_type(x); \
^
include/asm-generic/rwonce.h:36:21: note: expanded from macro 'compiletime_assert_rwonce_type'
compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
^
include/linux/compiler_types.h:302:3: note: expanded from macro '__native_word'
(sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || \
^
kernel/events/core.c:10455:29: note: Left side of '||' is true
struct task_struct *task = READ_ONCE(event->ctx->task);
^
include/asm-generic/rwonce.h:49:2: note: expanded from macro 'READ_ONCE'
compiletime_assert_rwonce_type(x); \
^
include/asm-generic/rwonce.h:36:21: note: expanded from macro 'compiletime_assert_rwonce_type'
compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
^
include/linux/compiler_types.h:303:28: note: expanded from macro '__native_word'
sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long))
^
kernel/events/core.c:10455:29: note: Taking false branch
struct task_struct *task = READ_ONCE(event->ctx->task);
^
include/asm-generic/rwonce.h:49:2: note: expanded from macro 'READ_ONCE'
compiletime_assert_rwonce_type(x); \
^
include/asm-generic/rwonce.h:36:2: note: expanded from macro 'compiletime_assert_rwonce_type'
compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
^
include/linux/compiler_types.h:335:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:323:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:315:3: note: expanded from macro '__compiletime_assert'
if (!(condition)) \
^
kernel/events/core.c:10455:29: note: Loop condition is false. Exiting loop
struct task_struct *task = READ_ONCE(event->ctx->task);
^
include/asm-generic/rwonce.h:49:2: note: expanded from macro 'READ_ONCE'
compiletime_assert_rwonce_type(x); \
^
include/asm-generic/rwonce.h:36:2: note: expanded from macro 'compiletime_assert_rwonce_type'
compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
^
include/linux/compiler_types.h:335:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:323:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:307:2: note: expanded from macro '__compiletime_assert'
do { \
vim +/task_ctx +4277 kernel/events/core.c
8d5bce0c37fa10 kernel/events/core.c Peter Zijlstra 2018-03-09 4257
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4258 static bool perf_rotate_context(struct perf_cpu_pmu_context *cpc)
8d5bce0c37fa10 kernel/events/core.c Peter Zijlstra 2018-03-09 4259 {
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4260 struct perf_cpu_context *cpuctx = this_cpu_ptr(&cpu_context);
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4261 struct perf_event_pmu_context *cpu_epc, *task_epc = NULL;
8d5bce0c37fa10 kernel/events/core.c Peter Zijlstra 2018-03-09 4262 struct perf_event *cpu_event = NULL, *task_event = NULL;
fd7d55172d1e2e kernel/events/core.c Ian Rogers 2019-06-01 4263 struct perf_event_context *task_ctx = NULL;
fd7d55172d1e2e kernel/events/core.c Ian Rogers 2019-06-01 4264 int cpu_rotate, task_rotate;
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4265 struct pmu *pmu;
8d5bce0c37fa10 kernel/events/core.c Peter Zijlstra 2018-03-09 4266
8d5bce0c37fa10 kernel/events/core.c Peter Zijlstra 2018-03-09 4267 /*
8d5bce0c37fa10 kernel/events/core.c Peter Zijlstra 2018-03-09 4268 * Since we run this from IRQ context, nobody can install new
8d5bce0c37fa10 kernel/events/core.c Peter Zijlstra 2018-03-09 4269 * events, thus the event count values are stable.
8d5bce0c37fa10 kernel/events/core.c Peter Zijlstra 2018-03-09 4270 */
7fc23a53807970 kernel/perf_counter.c Peter Zijlstra 2009-05-08 4271
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4272 cpu_epc = &cpc->epc;
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4273 pmu = cpu_epc->pmu;
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4274 task_epc = cpc->task_epc;
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4275
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4276 cpu_rotate = cpu_epc->rotate_necessary;
fd7d55172d1e2e kernel/events/core.c Ian Rogers 2019-06-01 @4277 task_ctx = cpuctx->task_ctx;
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4278 task_rotate = task_epc ? task_epc->rotate_necessary : 0;
9717e6cd3db22e kernel/perf_event.c Peter Zijlstra 2010-01-28 4279
8d5bce0c37fa10 kernel/events/core.c Peter Zijlstra 2018-03-09 4280 if (!(cpu_rotate || task_rotate))
8d5bce0c37fa10 kernel/events/core.c Peter Zijlstra 2018-03-09 4281 return false;
0f5a2601284237 kernel/events/core.c Peter Zijlstra 2011-11-16 4282
facc43071cc0d4 kernel/events/core.c Peter Zijlstra 2011-04-09 4283 perf_ctx_lock(cpuctx, cpuctx->task_ctx);
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4284 perf_pmu_disable(pmu);
0f5a2601284237 kernel/events/core.c Peter Zijlstra 2011-11-16 4285
8d5bce0c37fa10 kernel/events/core.c Peter Zijlstra 2018-03-09 4286 if (task_rotate)
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4287 task_event = ctx_event_to_rotate(task_epc);
8d5bce0c37fa10 kernel/events/core.c Peter Zijlstra 2018-03-09 4288 if (cpu_rotate)
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4289 cpu_event = ctx_event_to_rotate(cpu_epc);
8703a7cfe148f7 kernel/events/core.c Peter Zijlstra 2017-11-13 4290
8d5bce0c37fa10 kernel/events/core.c Peter Zijlstra 2018-03-09 4291 /*
8d5bce0c37fa10 kernel/events/core.c Peter Zijlstra 2018-03-09 4292 * As per the order given at ctx_resched() first 'pop' task flexible
8d5bce0c37fa10 kernel/events/core.c Peter Zijlstra 2018-03-09 4293 * and then, if needed CPU flexible.
8d5bce0c37fa10 kernel/events/core.c Peter Zijlstra 2018-03-09 4294 */
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4295 if (task_event || (task_epc && cpu_event)) {
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4296 update_context_time(task_epc->ctx);
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4297 __pmu_ctx_sched_out(task_epc, EVENT_FLEXIBLE);
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4298 }
235c7fc7c500e4 kernel/perf_counter.c Ingo Molnar 2008-12-21 4299
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4300 if (cpu_event) {
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4301 update_context_time(&cpuctx->ctx);
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4302 __pmu_ctx_sched_out(cpu_epc, EVENT_FLEXIBLE);
8d5bce0c37fa10 kernel/events/core.c Peter Zijlstra 2018-03-09 4303 rotate_ctx(&cpuctx->ctx, cpu_event);
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4304 __pmu_ctx_sched_in(&cpuctx->ctx, pmu);
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4305 }
0793a61d4df8da kernel/perf_counter.c Thomas Gleixner 2008-12-04 4306
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4307 if (task_event)
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4308 rotate_ctx(task_epc->ctx, task_event);
0f5a2601284237 kernel/events/core.c Peter Zijlstra 2011-11-16 4309
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4310 if (task_event || (task_epc && cpu_event))
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4311 __pmu_ctx_sched_in(task_epc->ctx, pmu);
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4312
f7cf7134e40506 kernel/events/core.c Peter Zijlstra 2022-01-13 4313 perf_pmu_enable(pmu);
0f5a2601284237 kernel/events/core.c Peter Zijlstra 2011-11-16 4314 perf_ctx_unlock(cpuctx, cpuctx->task_ctx);
9e6302056f8029 kernel/events/core.c Stephane Eranian 2013-04-03 4315
8d5bce0c37fa10 kernel/events/core.c Peter Zijlstra 2018-03-09 4316 return true;
e9d2b064149ff7 kernel/perf_event.c Peter Zijlstra 2010-09-17 4317 }
e9d2b064149ff7 kernel/perf_event.c Peter Zijlstra 2010-09-17 4318
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
next reply other threads:[~2022-01-14 21:48 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-14 21:48 kernel test robot [this message]
2022-01-18 6:01 ` [RFC v2] perf: Rewrite core context handling kernel test robot
2022-01-18 6:01 ` kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2022-01-13 13:47 Ravi Bangoria
2022-01-13 19:15 ` kernel test robot
2022-01-31 4:43 ` Ravi Bangoria
2022-06-13 14:35 ` Peter Zijlstra
2022-06-13 14:36 ` Peter Zijlstra
2022-06-13 14:38 ` Peter Zijlstra
2022-08-02 6:11 ` Ravi Bangoria
2022-08-22 15:29 ` Peter Zijlstra
2022-08-22 15:43 ` Peter Zijlstra
2022-08-22 16:37 ` Ravi Bangoria
2022-08-23 4:20 ` Ravi Bangoria
2022-08-29 3:54 ` Ravi Bangoria
2022-08-23 6:30 ` Peter Zijlstra
2022-08-29 4:00 ` Ravi Bangoria
2022-08-29 11:58 ` Peter Zijlstra
2022-08-22 16:52 ` Peter Zijlstra
2022-08-23 4:57 ` Ravi Bangoria
2022-06-13 14:41 ` Peter Zijlstra
2022-08-22 14:38 ` Ravi Bangoria
2022-06-13 14:43 ` Peter Zijlstra
2022-08-02 6:16 ` Ravi Bangoria
2022-08-23 8:57 ` Peter Zijlstra
2022-08-24 5:07 ` Ravi Bangoria
2022-08-24 7:27 ` Peter Zijlstra
2022-08-24 7:53 ` Ravi Bangoria
2022-06-13 14:55 ` Peter Zijlstra
2022-08-02 6:10 ` Ravi Bangoria
2022-08-22 16:44 ` Peter Zijlstra
2022-08-23 4:46 ` Ravi Bangoria
2022-06-17 13:36 ` Peter Zijlstra
2022-08-24 10:13 ` Peter Zijlstra
2022-06-27 4:18 ` Ravi Bangoria
2022-08-02 6:06 ` Ravi Bangoria
2022-08-24 12:15 ` Peter Zijlstra
2022-08-24 14:59 ` Peter Zijlstra
2022-08-25 5:39 ` Ravi Bangoria
2022-08-25 9:17 ` Peter Zijlstra
2022-08-25 11:03 ` Ravi Bangoria
2022-08-02 6:13 ` Ravi Bangoria
2022-08-23 7:10 ` Peter Zijlstra
2022-08-02 6:17 ` Ravi Bangoria
2022-08-23 7:26 ` Peter Zijlstra
2022-08-23 15:14 ` Ravi Bangoria
2022-08-22 14:40 ` Ravi Bangoria
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=202201150516.CCZxTJTq-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild@lists.01.org \
/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.