From: kernel test robot <lkp@intel.com>
To: Mike Christie <michael.christie@oracle.com>,
geert@linux-m68k.org, vverma@digitalocean.com, hdanton@sina.com,
hch@infradead.org, stefanha@redhat.com, jasowang@redhat.com,
mst@redhat.com, sgarzare@redhat.com,
virtualization@lists.linux-foundation.org,
christian.brauner@ubuntu.com
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org
Subject: Re: [PATCH V4 6/8] io_uring: switch to kernel_worker
Date: Fri, 8 Oct 2021 14:42:08 +0800 [thread overview]
Message-ID: <202110081445.IFg3B9JZ-lkp@intel.com> (raw)
In-Reply-To: <20211007214448.6282-7-michael.christie@oracle.com>
[-- Attachment #1: Type: text/plain, Size: 5385 bytes --]
Hi Mike,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on next-20211007]
[cannot apply to mst-vhost/linux-next vgupta-arc/for-next arm64/for-next/core uclinux-h8/h8300-next geert-m68k/for-next openrisc/for-next deller-parisc/for-next powerpc/next s390/features linus/master v5.15-rc4 v5.15-rc3 v5.15-rc2 v5.15-rc4]
[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/Mike-Christie/Use-copy_process-create_io_thread-in-vhost-layer/20211008-093610
base: f8dc23b3dc0cc5b32dfd0c446e59377736d073a7
config: hexagon-randconfig-r045-20211007 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project b1a45c62f03ecbeb4544b0c65a01ee4586235a61)
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
# https://github.com/0day-ci/linux/commit/19238ec927cb55bbd6fd6bdf64bac6a99f457b8c
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Mike-Christie/Use-copy_process-create_io_thread-in-vhost-layer/20211008-093610
git checkout 19238ec927cb55bbd6fd6bdf64bac6a99f457b8c
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=hexagon
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
kernel/fork.c:161:13: warning: no previous prototype for function 'arch_release_task_struct' [-Wmissing-prototypes]
void __weak arch_release_task_struct(struct task_struct *tsk)
^
kernel/fork.c:161:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void __weak arch_release_task_struct(struct task_struct *tsk)
^
static
kernel/fork.c:814:20: warning: no previous prototype for function 'arch_task_cache_init' [-Wmissing-prototypes]
void __init __weak arch_task_cache_init(void) { }
^
kernel/fork.c:814:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void __init __weak arch_task_cache_init(void) { }
^
static
kernel/fork.c:909:12: warning: no previous prototype for function 'arch_dup_task_struct' [-Wmissing-prototypes]
int __weak arch_dup_task_struct(struct task_struct *dst,
^
kernel/fork.c:909:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int __weak arch_dup_task_struct(struct task_struct *dst,
^
static
>> kernel/fork.c:2581:21: warning: no previous prototype for function 'create_io_thread' [-Wmissing-prototypes]
struct task_struct *create_io_thread(int (*fn)(void *), void *arg, int node)
^
kernel/fork.c:2581:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
struct task_struct *create_io_thread(int (*fn)(void *), void *arg, int node)
^
static
4 warnings generated.
vim +/create_io_thread +2581 kernel/fork.c
13585fa0668c72 Nadav Amit 2019-04-25 2574
cc440e8738e5c8 Jens Axboe 2021-03-04 2575 /*
cc440e8738e5c8 Jens Axboe 2021-03-04 2576 * This is like kernel_clone(), but shaved down and tailored to just
cc440e8738e5c8 Jens Axboe 2021-03-04 2577 * creating io_uring workers. It returns a created task, or an error pointer.
cc440e8738e5c8 Jens Axboe 2021-03-04 2578 * The returned task is inactive, and the caller must fire it up through
cc440e8738e5c8 Jens Axboe 2021-03-04 2579 * wake_up_new_task(p). All signals are blocked in the created task.
cc440e8738e5c8 Jens Axboe 2021-03-04 2580 */
cc440e8738e5c8 Jens Axboe 2021-03-04 @2581 struct task_struct *create_io_thread(int (*fn)(void *), void *arg, int node)
cc440e8738e5c8 Jens Axboe 2021-03-04 2582 {
cc440e8738e5c8 Jens Axboe 2021-03-04 2583 unsigned long flags = CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|
cc440e8738e5c8 Jens Axboe 2021-03-04 2584 CLONE_IO;
cc440e8738e5c8 Jens Axboe 2021-03-04 2585 struct kernel_clone_args args = {
cc440e8738e5c8 Jens Axboe 2021-03-04 2586 .flags = ((lower_32_bits(flags) | CLONE_VM |
cc440e8738e5c8 Jens Axboe 2021-03-04 2587 CLONE_UNTRACED) & ~CSIGNAL),
cc440e8738e5c8 Jens Axboe 2021-03-04 2588 .exit_signal = (lower_32_bits(flags) & CSIGNAL),
cc440e8738e5c8 Jens Axboe 2021-03-04 2589 .stack = (unsigned long)fn,
cc440e8738e5c8 Jens Axboe 2021-03-04 2590 .stack_size = (unsigned long)arg,
3f1f508b402889 Mike Christie 2021-10-07 2591 .worker_flags = KERN_WORKER_IO | KERN_WORKER_USER,
cc440e8738e5c8 Jens Axboe 2021-03-04 2592 };
cc440e8738e5c8 Jens Axboe 2021-03-04 2593
b16b3855d89fba Jens Axboe 2021-03-26 2594 return copy_process(NULL, 0, node, &args);
cc440e8738e5c8 Jens Axboe 2021-03-04 2595 }
cc440e8738e5c8 Jens Axboe 2021-03-04 2596
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 25386 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Mike Christie <michael.christie@oracle.com>,
geert@linux-m68k.org, vverma@digitalocean.com, hdanton@sina.com,
hch@infradead.org, stefanha@redhat.com, jasowang@redhat.com,
mst@redhat.com, sgarzare@redhat.com,
virtualization@lists.linux-foundation.org,
christian.brauner@ubuntu.com
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org
Subject: Re: [PATCH V4 6/8] io_uring: switch to kernel_worker
Date: Fri, 8 Oct 2021 14:42:08 +0800 [thread overview]
Message-ID: <202110081445.IFg3B9JZ-lkp@intel.com> (raw)
In-Reply-To: <20211007214448.6282-7-michael.christie@oracle.com>
[-- Attachment #1: Type: text/plain, Size: 5385 bytes --]
Hi Mike,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on next-20211007]
[cannot apply to mst-vhost/linux-next vgupta-arc/for-next arm64/for-next/core uclinux-h8/h8300-next geert-m68k/for-next openrisc/for-next deller-parisc/for-next powerpc/next s390/features linus/master v5.15-rc4 v5.15-rc3 v5.15-rc2 v5.15-rc4]
[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/Mike-Christie/Use-copy_process-create_io_thread-in-vhost-layer/20211008-093610
base: f8dc23b3dc0cc5b32dfd0c446e59377736d073a7
config: hexagon-randconfig-r045-20211007 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project b1a45c62f03ecbeb4544b0c65a01ee4586235a61)
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
# https://github.com/0day-ci/linux/commit/19238ec927cb55bbd6fd6bdf64bac6a99f457b8c
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Mike-Christie/Use-copy_process-create_io_thread-in-vhost-layer/20211008-093610
git checkout 19238ec927cb55bbd6fd6bdf64bac6a99f457b8c
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=hexagon
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
kernel/fork.c:161:13: warning: no previous prototype for function 'arch_release_task_struct' [-Wmissing-prototypes]
void __weak arch_release_task_struct(struct task_struct *tsk)
^
kernel/fork.c:161:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void __weak arch_release_task_struct(struct task_struct *tsk)
^
static
kernel/fork.c:814:20: warning: no previous prototype for function 'arch_task_cache_init' [-Wmissing-prototypes]
void __init __weak arch_task_cache_init(void) { }
^
kernel/fork.c:814:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void __init __weak arch_task_cache_init(void) { }
^
static
kernel/fork.c:909:12: warning: no previous prototype for function 'arch_dup_task_struct' [-Wmissing-prototypes]
int __weak arch_dup_task_struct(struct task_struct *dst,
^
kernel/fork.c:909:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int __weak arch_dup_task_struct(struct task_struct *dst,
^
static
>> kernel/fork.c:2581:21: warning: no previous prototype for function 'create_io_thread' [-Wmissing-prototypes]
struct task_struct *create_io_thread(int (*fn)(void *), void *arg, int node)
^
kernel/fork.c:2581:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
struct task_struct *create_io_thread(int (*fn)(void *), void *arg, int node)
^
static
4 warnings generated.
vim +/create_io_thread +2581 kernel/fork.c
13585fa0668c72 Nadav Amit 2019-04-25 2574
cc440e8738e5c8 Jens Axboe 2021-03-04 2575 /*
cc440e8738e5c8 Jens Axboe 2021-03-04 2576 * This is like kernel_clone(), but shaved down and tailored to just
cc440e8738e5c8 Jens Axboe 2021-03-04 2577 * creating io_uring workers. It returns a created task, or an error pointer.
cc440e8738e5c8 Jens Axboe 2021-03-04 2578 * The returned task is inactive, and the caller must fire it up through
cc440e8738e5c8 Jens Axboe 2021-03-04 2579 * wake_up_new_task(p). All signals are blocked in the created task.
cc440e8738e5c8 Jens Axboe 2021-03-04 2580 */
cc440e8738e5c8 Jens Axboe 2021-03-04 @2581 struct task_struct *create_io_thread(int (*fn)(void *), void *arg, int node)
cc440e8738e5c8 Jens Axboe 2021-03-04 2582 {
cc440e8738e5c8 Jens Axboe 2021-03-04 2583 unsigned long flags = CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|
cc440e8738e5c8 Jens Axboe 2021-03-04 2584 CLONE_IO;
cc440e8738e5c8 Jens Axboe 2021-03-04 2585 struct kernel_clone_args args = {
cc440e8738e5c8 Jens Axboe 2021-03-04 2586 .flags = ((lower_32_bits(flags) | CLONE_VM |
cc440e8738e5c8 Jens Axboe 2021-03-04 2587 CLONE_UNTRACED) & ~CSIGNAL),
cc440e8738e5c8 Jens Axboe 2021-03-04 2588 .exit_signal = (lower_32_bits(flags) & CSIGNAL),
cc440e8738e5c8 Jens Axboe 2021-03-04 2589 .stack = (unsigned long)fn,
cc440e8738e5c8 Jens Axboe 2021-03-04 2590 .stack_size = (unsigned long)arg,
3f1f508b402889 Mike Christie 2021-10-07 2591 .worker_flags = KERN_WORKER_IO | KERN_WORKER_USER,
cc440e8738e5c8 Jens Axboe 2021-03-04 2592 };
cc440e8738e5c8 Jens Axboe 2021-03-04 2593
b16b3855d89fba Jens Axboe 2021-03-26 2594 return copy_process(NULL, 0, node, &args);
cc440e8738e5c8 Jens Axboe 2021-03-04 2595 }
cc440e8738e5c8 Jens Axboe 2021-03-04 2596
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 25386 bytes --]
[-- Attachment #3: Type: text/plain, Size: 183 bytes --]
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH V4 6/8] io_uring: switch to kernel_worker
Date: Fri, 08 Oct 2021 14:42:08 +0800 [thread overview]
Message-ID: <202110081445.IFg3B9JZ-lkp@intel.com> (raw)
In-Reply-To: <20211007214448.6282-7-michael.christie@oracle.com>
[-- Attachment #1: Type: text/plain, Size: 5476 bytes --]
Hi Mike,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on next-20211007]
[cannot apply to mst-vhost/linux-next vgupta-arc/for-next arm64/for-next/core uclinux-h8/h8300-next geert-m68k/for-next openrisc/for-next deller-parisc/for-next powerpc/next s390/features linus/master v5.15-rc4 v5.15-rc3 v5.15-rc2 v5.15-rc4]
[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/Mike-Christie/Use-copy_process-create_io_thread-in-vhost-layer/20211008-093610
base: f8dc23b3dc0cc5b32dfd0c446e59377736d073a7
config: hexagon-randconfig-r045-20211007 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project b1a45c62f03ecbeb4544b0c65a01ee4586235a61)
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
# https://github.com/0day-ci/linux/commit/19238ec927cb55bbd6fd6bdf64bac6a99f457b8c
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Mike-Christie/Use-copy_process-create_io_thread-in-vhost-layer/20211008-093610
git checkout 19238ec927cb55bbd6fd6bdf64bac6a99f457b8c
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=hexagon
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
kernel/fork.c:161:13: warning: no previous prototype for function 'arch_release_task_struct' [-Wmissing-prototypes]
void __weak arch_release_task_struct(struct task_struct *tsk)
^
kernel/fork.c:161:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void __weak arch_release_task_struct(struct task_struct *tsk)
^
static
kernel/fork.c:814:20: warning: no previous prototype for function 'arch_task_cache_init' [-Wmissing-prototypes]
void __init __weak arch_task_cache_init(void) { }
^
kernel/fork.c:814:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void __init __weak arch_task_cache_init(void) { }
^
static
kernel/fork.c:909:12: warning: no previous prototype for function 'arch_dup_task_struct' [-Wmissing-prototypes]
int __weak arch_dup_task_struct(struct task_struct *dst,
^
kernel/fork.c:909:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int __weak arch_dup_task_struct(struct task_struct *dst,
^
static
>> kernel/fork.c:2581:21: warning: no previous prototype for function 'create_io_thread' [-Wmissing-prototypes]
struct task_struct *create_io_thread(int (*fn)(void *), void *arg, int node)
^
kernel/fork.c:2581:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
struct task_struct *create_io_thread(int (*fn)(void *), void *arg, int node)
^
static
4 warnings generated.
vim +/create_io_thread +2581 kernel/fork.c
13585fa0668c72 Nadav Amit 2019-04-25 2574
cc440e8738e5c8 Jens Axboe 2021-03-04 2575 /*
cc440e8738e5c8 Jens Axboe 2021-03-04 2576 * This is like kernel_clone(), but shaved down and tailored to just
cc440e8738e5c8 Jens Axboe 2021-03-04 2577 * creating io_uring workers. It returns a created task, or an error pointer.
cc440e8738e5c8 Jens Axboe 2021-03-04 2578 * The returned task is inactive, and the caller must fire it up through
cc440e8738e5c8 Jens Axboe 2021-03-04 2579 * wake_up_new_task(p). All signals are blocked in the created task.
cc440e8738e5c8 Jens Axboe 2021-03-04 2580 */
cc440e8738e5c8 Jens Axboe 2021-03-04 @2581 struct task_struct *create_io_thread(int (*fn)(void *), void *arg, int node)
cc440e8738e5c8 Jens Axboe 2021-03-04 2582 {
cc440e8738e5c8 Jens Axboe 2021-03-04 2583 unsigned long flags = CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|
cc440e8738e5c8 Jens Axboe 2021-03-04 2584 CLONE_IO;
cc440e8738e5c8 Jens Axboe 2021-03-04 2585 struct kernel_clone_args args = {
cc440e8738e5c8 Jens Axboe 2021-03-04 2586 .flags = ((lower_32_bits(flags) | CLONE_VM |
cc440e8738e5c8 Jens Axboe 2021-03-04 2587 CLONE_UNTRACED) & ~CSIGNAL),
cc440e8738e5c8 Jens Axboe 2021-03-04 2588 .exit_signal = (lower_32_bits(flags) & CSIGNAL),
cc440e8738e5c8 Jens Axboe 2021-03-04 2589 .stack = (unsigned long)fn,
cc440e8738e5c8 Jens Axboe 2021-03-04 2590 .stack_size = (unsigned long)arg,
3f1f508b402889 Mike Christie 2021-10-07 2591 .worker_flags = KERN_WORKER_IO | KERN_WORKER_USER,
cc440e8738e5c8 Jens Axboe 2021-03-04 2592 };
cc440e8738e5c8 Jens Axboe 2021-03-04 2593
b16b3855d89fba Jens Axboe 2021-03-26 2594 return copy_process(NULL, 0, node, &args);
cc440e8738e5c8 Jens Axboe 2021-03-04 2595 }
cc440e8738e5c8 Jens Axboe 2021-03-04 2596
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 25386 bytes --]
next prev parent reply other threads:[~2021-10-08 6:42 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-07 21:44 [PATCH V4 0/8] Use copy_process/create_io_thread in vhost layer Mike Christie
2021-10-07 21:44 ` Mike Christie
2021-10-07 21:44 ` [PATCH V4 1/8] fork: Make IO worker options flag based Mike Christie
2021-10-07 21:44 ` Mike Christie
2021-10-07 21:44 ` [PATCH V4 2/8] fork: move PF_IO_WORKER's kernel frame setup to new flag Mike Christie
2021-10-07 21:44 ` Mike Christie
2021-10-08 8:21 ` Geert Uytterhoeven
2021-10-08 8:21 ` Geert Uytterhoeven
2021-10-22 9:55 ` Michael S. Tsirkin
2021-10-22 9:55 ` Michael S. Tsirkin
2021-10-07 21:44 ` [PATCH V4 3/8] fork: add option to not clone or dup files Mike Christie
2021-10-07 21:44 ` Mike Christie
2021-10-07 21:44 ` [PATCH V4 4/8] fork: Add KERNEL_WORKER flag to ignore signals Mike Christie
2021-10-07 21:44 ` Mike Christie
2021-10-07 21:44 ` [PATCH V4 5/8] fork: add helper to clone a process Mike Christie
2021-10-07 21:44 ` Mike Christie
2021-10-07 21:44 ` [PATCH V4 6/8] io_uring: switch to kernel_worker Mike Christie
2021-10-07 21:44 ` Mike Christie
2021-10-08 6:42 ` kernel test robot [this message]
2021-10-08 6:42 ` kernel test robot
2021-10-08 6:42 ` kernel test robot
2021-10-08 7:10 ` kernel test robot
2021-10-08 7:10 ` kernel test robot
2021-10-07 21:44 ` [PATCH V4 7/8] vhost: move worker thread fields to new struct Mike Christie
2021-10-07 21:44 ` Mike Christie
2021-10-07 21:44 ` [PATCH V4 8/8] vhost: use kernel_worker to check RLIMITs and inherit v2 cgroups Mike Christie
2021-10-07 21:44 ` Mike Christie
2021-10-12 6:43 ` [PATCH V4 0/8] Use copy_process/create_io_thread in vhost layer Christoph Hellwig
2021-10-12 6:43 ` Christoph Hellwig
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=202110081445.IFg3B9JZ-lkp@intel.com \
--to=lkp@intel.com \
--cc=christian.brauner@ubuntu.com \
--cc=geert@linux-m68k.org \
--cc=hch@infradead.org \
--cc=hdanton@sina.com \
--cc=jasowang@redhat.com \
--cc=kbuild-all@lists.01.org \
--cc=llvm@lists.linux.dev \
--cc=michael.christie@oracle.com \
--cc=mst@redhat.com \
--cc=sgarzare@redhat.com \
--cc=stefanha@redhat.com \
--cc=virtualization@lists.linux-foundation.org \
--cc=vverma@digitalocean.com \
/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.