All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@kernel.org>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Jiri Olsa <jolsa@kernel.org>, Namhyung Kim <namhyung@kernel.org>,
	Clark Williams <williams@redhat.com>,
	linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
	Adrian Hunter <adrian.hunter@intel.com>,
	Alexey Budankov <alexey.budankov@linux.intel.com>,
	Andi Kleen <ak@linux.intel.com>,
	Colin King <colin.king@canonical.com>,
	Donald Yandt <donald.yandt@gmail.com>,
	Florian Fainelli <f.fainelli@gmail.com>,
	Guo Ren <ren_guo@c-sky.com>, Jin Yao <yao.jin@linux.intel.com>,
	Kan Liang <kan.liang@linux.intel.com>,
	Mao Han <han_mao@c-sky.com>,
	Ravi Bangoria <ravi.bangoria@linux.ibm.com>,
	Stanislav Kozina <skozina@redhat.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Thomas Richter <tmricht@linux.ibm.com>,
	Tzvetomir
Subject: Re: [PATCH] tools/headers: Synchronize kernel ABI headers
Date: Sat, 18 May 2019 19:12:57 +0200	[thread overview]
Message-ID: <20190518171257.GA50600@gmail.com> (raw)
In-Reply-To: <20190518133923.GA7969@kernel.org>


* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:

> Em Sat, May 18, 2019 at 10:42:23AM +0200, Ingo Molnar escreveu:
> > Pick up the latest v5.2-to-be kernel ABI headers and synchronize them with tooling:
> > 
> >  - arch/x86/entry/syscalls/syscall_64.tbl   => tools/perf/arch/x86/entry/syscalls/syscall_64.tbl  # new syscalls
> >  - arch/x86/include/asm/cpufeatures.h       => tools/arch/x86/include/asm/cpufeatures.h           # new CPUID flags
> >  - include/uapi/drm/drm.h                   => tools/include/uapi/drm/drm.h                       # new 'syncobj' DRM ABI
> >  - include/uapi/drm/i915_drm.h              => tools/include/uapi/drm/i915_drm.h                  # new extensible DRM ABI
> >  - include/uapi/linux/fcntl.h               => tools/include/uapi/linux/fcntl.h                   # new AT_RECURSIVE
> >  - include/uapi/linux/fs.h                  => tools/include/uapi/linux/fs.h                      # new SYNC_FILE_RANGE_WRITE_AND_WAIT
> >  - include/uapi/linux/mount.h               => tools/include/uapi/linux/mount.h                   # new VFS system calls: fspick, fsmount, fsconfig, fsopen, move_mount, open_tree
> >  - include/uapi/linux/sched.h               => tools/include/uapi/linux/sched.h                   # new CLONE_PIDFD
> > 
> > All of these are new ABI additions with no impact on existing tooling,
> 
> There is some impact in a number of them, for instance:
> 
> [acme@quaco perf]$ diff -u tools/perf/arch/x86/entry/syscalls/syscall_64.tbl arch/x86/entry/syscalls/syscall_64.tbl
> --- tools/perf/arch/x86/entry/syscalls/syscall_64.tbl	2019-05-13 14:46:03.915894924 -0300
> +++ arch/x86/entry/syscalls/syscall_64.tbl	2019-05-18 10:27:04.273395657 -0300
> @@ -343,6 +343,12 @@
>  332	common	statx			__x64_sys_statx
>  333	common	io_pgetevents		__x64_sys_io_pgetevents
>  334	common	rseq			__x64_sys_rseq
> +335	common	open_tree		__x64_sys_open_tree
> +336	common	move_mount		__x64_sys_move_mount
> +337	common	fsopen			__x64_sys_fsopen
> +338	common	fsconfig		__x64_sys_fsconfig
> +339	common	fsmount			__x64_sys_fsmount
> +340	common	fspick			__x64_sys_fspick
>  # don't use numbers 387 through 423, add new calls after the last
>  # 'common' entry
>  424	common	pidfd_send_signal	__x64_sys_pidfd_send_signal
> [acme@quaco perf]$
> 
> These will enable 'perf trace' to know about these syscalls, i.e. we
> will be able to say:
> 
>     perf trace -e fs*
> 
> And have it trace just those fsopen, fsconfig, fsmount and fspick
> syscalls (or any other that starts with fs, that is). Looking at this
> makes one think if we should have a new syscall group like we have here:
> 
> [acme@quaco perf]$ ls -la tools/perf/trace/strace/groups/
> total 16
> drwxrwxr-x. 2 acme acme 4096 May 13 14:46 .
> drwxrwxr-x. 3 acme acme 4096 Apr 10 10:20 ..
> -rw-rw-r--. 1 acme acme  136 May 13 14:46 file
> -rw-rw-r--. 1 acme acme  584 May 13 14:46 string
> [acme@quaco perf]$ 
> 
> One for file oriented syscalls, the other for syscalls that operate on
> strings (pathnames, etc).

Good point, I missed that!

> So I'll check that tools/perf/trace/beauty/drm_ioctl.sh is sane wrt any
> new additions to that header, ditto for the other headers, I'll go thru
> them soon.

Thanks!

	Ingo

WARNING: multiple messages have this Message-ID (diff)
From: Ingo Molnar <mingo@kernel.org>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Jiri Olsa <jolsa@kernel.org>, Namhyung Kim <namhyung@kernel.org>,
	Clark Williams <williams@redhat.com>,
	linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
	Adrian Hunter <adrian.hunter@intel.com>,
	Alexey Budankov <alexey.budankov@linux.intel.com>,
	Andi Kleen <ak@linux.intel.com>,
	Colin King <colin.king@canonical.com>,
	Donald Yandt <donald.yandt@gmail.com>,
	Florian Fainelli <f.fainelli@gmail.com>,
	Guo Ren <ren_guo@c-sky.com>, Jin Yao <yao.jin@linux.intel.com>,
	Kan Liang <kan.liang@linux.intel.com>,
	Mao Han <han_mao@c-sky.com>,
	Ravi Bangoria <ravi.bangoria@linux.ibm.com>,
	Stanislav Kozina <skozina@redhat.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Thomas Richter <tmricht@linux.ibm.com>,
	Tzvetomir Stoyanov <tstoyanov@vmware.com>,
	Zenghui Yu <yuzenghui@huawei.com>,
	Arnaldo Carvalho de Melo <acme@redhat.com>
Subject: Re: [PATCH] tools/headers: Synchronize kernel ABI headers
Date: Sat, 18 May 2019 19:12:57 +0200	[thread overview]
Message-ID: <20190518171257.GA50600@gmail.com> (raw)
In-Reply-To: <20190518133923.GA7969@kernel.org>


* Arnaldo Carvalho de Melo <acme@kernel.org> wrote:

> Em Sat, May 18, 2019 at 10:42:23AM +0200, Ingo Molnar escreveu:
> > Pick up the latest v5.2-to-be kernel ABI headers and synchronize them with tooling:
> > 
> >  - arch/x86/entry/syscalls/syscall_64.tbl   => tools/perf/arch/x86/entry/syscalls/syscall_64.tbl  # new syscalls
> >  - arch/x86/include/asm/cpufeatures.h       => tools/arch/x86/include/asm/cpufeatures.h           # new CPUID flags
> >  - include/uapi/drm/drm.h                   => tools/include/uapi/drm/drm.h                       # new 'syncobj' DRM ABI
> >  - include/uapi/drm/i915_drm.h              => tools/include/uapi/drm/i915_drm.h                  # new extensible DRM ABI
> >  - include/uapi/linux/fcntl.h               => tools/include/uapi/linux/fcntl.h                   # new AT_RECURSIVE
> >  - include/uapi/linux/fs.h                  => tools/include/uapi/linux/fs.h                      # new SYNC_FILE_RANGE_WRITE_AND_WAIT
> >  - include/uapi/linux/mount.h               => tools/include/uapi/linux/mount.h                   # new VFS system calls: fspick, fsmount, fsconfig, fsopen, move_mount, open_tree
> >  - include/uapi/linux/sched.h               => tools/include/uapi/linux/sched.h                   # new CLONE_PIDFD
> > 
> > All of these are new ABI additions with no impact on existing tooling,
> 
> There is some impact in a number of them, for instance:
> 
> [acme@quaco perf]$ diff -u tools/perf/arch/x86/entry/syscalls/syscall_64.tbl arch/x86/entry/syscalls/syscall_64.tbl
> --- tools/perf/arch/x86/entry/syscalls/syscall_64.tbl	2019-05-13 14:46:03.915894924 -0300
> +++ arch/x86/entry/syscalls/syscall_64.tbl	2019-05-18 10:27:04.273395657 -0300
> @@ -343,6 +343,12 @@
>  332	common	statx			__x64_sys_statx
>  333	common	io_pgetevents		__x64_sys_io_pgetevents
>  334	common	rseq			__x64_sys_rseq
> +335	common	open_tree		__x64_sys_open_tree
> +336	common	move_mount		__x64_sys_move_mount
> +337	common	fsopen			__x64_sys_fsopen
> +338	common	fsconfig		__x64_sys_fsconfig
> +339	common	fsmount			__x64_sys_fsmount
> +340	common	fspick			__x64_sys_fspick
>  # don't use numbers 387 through 423, add new calls after the last
>  # 'common' entry
>  424	common	pidfd_send_signal	__x64_sys_pidfd_send_signal
> [acme@quaco perf]$
> 
> These will enable 'perf trace' to know about these syscalls, i.e. we
> will be able to say:
> 
>     perf trace -e fs*
> 
> And have it trace just those fsopen, fsconfig, fsmount and fspick
> syscalls (or any other that starts with fs, that is). Looking at this
> makes one think if we should have a new syscall group like we have here:
> 
> [acme@quaco perf]$ ls -la tools/perf/trace/strace/groups/
> total 16
> drwxrwxr-x. 2 acme acme 4096 May 13 14:46 .
> drwxrwxr-x. 3 acme acme 4096 Apr 10 10:20 ..
> -rw-rw-r--. 1 acme acme  136 May 13 14:46 file
> -rw-rw-r--. 1 acme acme  584 May 13 14:46 string
> [acme@quaco perf]$ 
> 
> One for file oriented syscalls, the other for syscalls that operate on
> strings (pathnames, etc).

Good point, I missed that!

> So I'll check that tools/perf/trace/beauty/drm_ioctl.sh is sane wrt any
> new additions to that header, ditto for the other headers, I'll go thru
> them soon.

Thanks!

	Ingo

  reply	other threads:[~2019-05-18 17:12 UTC|newest]

Thread overview: 89+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-17 19:34 [GIT PULL] perf/core improvements and fixes Arnaldo Carvalho de Melo
2019-05-17 19:34 ` Arnaldo Carvalho de Melo
2019-05-17 19:34 ` [PATCH 01/73] perf annotate: Remove hist__account_cycles() from callback Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 02/73] perf test: Fix spelling mistake "leadking" -> "leaking" Arnaldo Carvalho de Melo
2019-05-17 19:35   ` Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 03/73] csky: Add support for libdw Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 04/73] tools lib traceevent: Remove hard coded install paths from pkg-config file Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 05/73] perf tools: Speed up report for perf compiled with linwunwind Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 06/73] tools arch: Update arch/x86/lib/memcpy_64.S copy used in 'perf bench mem memcpy' Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 07/73] tools arch uapi: Sync the x86 kvm.h copy Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 08/73] tools x86 uapi asm: Sync the pt_regs.h copy with the kernel sources Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 09/73] tools pci: Do not delete pcitest.sh in 'make clean' Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 10/73] perf record: Fix suggestion to get list of registers usable with --user-regs and --intr-regs Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 11/73] perf parse-regs: Improve error output when faced with unknown register name Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 12/73] perf tools x86: Add support for recording and printing XMM registers Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 13/73] perf scripts python: exported-sql-viewer.py: Move view creation Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 14/73] perf scripts python: exported-sql-viewer.py: Fix error when shrinking / enlarging font Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 15/73] perf scripts python: exported-sql-viewer.py: Add tree level Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 16/73] perf scripts python: exported-sql-viewer.py: Add copy to clipboard Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 17/73] perf scripts python: exported-sql-viewer.py: Add context menu Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 18/73] perf scripts python: exported-sql-viewer.py: Add 'About' dialog box Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 19/73] perf vendor events intel: Add uncore_upi JSON support Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 20/73] perf machine: Null-terminate version char array upon fgets(/proc/version) error Arnaldo Carvalho de Melo
2019-05-18  0:05   ` Donald Yandt
2019-05-20 14:46     ` Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 21/73] tools lib traceevent: Introduce man pages Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 22/73] tools lib traceevent: Add support for man pages with multiple names Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 23/73] tools lib traceevent: Man pages for tep_handler related APIs Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 24/73] tools lib traceevent: Man page for header_page APIs Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 25/73] tools lib traceevent: Man page for get/set cpus APIs Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 26/73] tools lib traceevent: Man page for file endian APIs Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 27/73] tools lib traceevent: Man page for host " Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 28/73] tools lib traceevent: Man page for page size APIs Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 29/73] tools lib traceevent: Man page for tep_strerror() Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 30/73] tools lib traceevent: Man pages for event handler APIs Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 31/73] tools lib traceevent: Man pages for function related libtraceevent APIs Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 32/73] tools lib traceevent: Man pages for registering print function Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 33/73] tools lib traceevent: Man page for tep_read_number() Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 34/73] tools lib traceevent: Man pages for event find APIs Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 35/73] tools lib traceevent: Man page for list events APIs Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 36/73] tools lib traceevent: Man pages for libtraceevent event get APIs Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 37/73] tools lib traceevent: Man pages for find field APIs Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 38/73] tools lib traceevent: Man pages for get field value APIs Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 39/73] tools lib traceevent: Man pages for print field APIs Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 40/73] tools lib traceevent: Man page for tep_read_number_field() Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 41/73] tools lib traceevent: Man pages for event fields APIs Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 42/73] tools lib traceevent: Man pages for event filter APIs Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 43/73] tools lib traceevent: Man pages for parse event APIs Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 44/73] tools lib traceevent: Man page for tep_parse_header_page() Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 45/73] tools lib traceevent: Man pages for APIs used to extract common fields from a record Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 46/73] tools lib traceevent: Man pages for trace sequences APIs Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 47/73] perf build tests: Add NO_LIBZSTD=1 to make_minimal Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 48/73] perf session: Define 'bytes_transferred' and 'bytes_compressed' metrics Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 49/73] perf record: Implement COMPRESSED event record and its attributes Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 50/73] perf mmap: Implement dedicated memory buffer for data compression Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 51/73] perf tools: Introduce Zstd streaming based compression API Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 52/73] perf record: Implement compression for serial trace streaming Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 53/73] perf record: Implement compression for AIO " Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 54/73] perf report: Add stub processing of compressed events for -D Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 55/73] perf record: Implement -z,--compression_level[=<n>] option Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 56/73] perf report: Implement perf.data record decompression Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 57/73] perf inject: Enable COMPRESSED " Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 58/73] perf tests: Implement Zstd comp/decomp integration test Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 59/73] perf test zstd: Fixup verbose mode output Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 60/73] perf jevents: Remove unused variable Arnaldo Carvalho de Melo
2019-05-17 19:35 ` [PATCH 61/73] perf vendor events arm64: Remove [[:xdigit:]] wildcard Arnaldo Carvalho de Melo
2019-05-17 19:35   ` Arnaldo Carvalho de Melo
2019-05-17 19:36 ` [PATCH 62/73] perf vendor events arm64: Map Brahma-B53 CPUID to cortex-a53 events Arnaldo Carvalho de Melo
2019-05-17 19:36   ` Arnaldo Carvalho de Melo
2019-05-17 19:36 ` [PATCH 63/73] perf vendor events arm64: Add Cortex-A57 and Cortex-A72 events Arnaldo Carvalho de Melo
2019-05-17 19:36   ` Arnaldo Carvalho de Melo
2019-05-17 19:36 ` [PATCH 64/73] perf parse-regs: Split parse_regs Arnaldo Carvalho de Melo
2019-05-17 19:36 ` [PATCH 65/73] perf parse-regs: Add generic support for arch__intr/user_reg_mask() Arnaldo Carvalho de Melo
2019-05-17 19:36 ` [PATCH 66/73] perf regs x86: Add X86 specific arch__intr_reg_mask() Arnaldo Carvalho de Melo
2019-05-17 19:36 ` [PATCH 67/73] perf intel-pt: Fix instructions sampling rate Arnaldo Carvalho de Melo
2019-05-17 19:36 ` [PATCH 68/73] perf intel-pt: Fix improved sample timestamp Arnaldo Carvalho de Melo
2019-05-17 19:36 ` [PATCH 69/73] perf intel-pt: Fix sample timestamp wrt non-taken branches Arnaldo Carvalho de Melo
2019-05-17 19:36 ` [PATCH 70/73] perf docs: Add description for stderr Arnaldo Carvalho de Melo
2019-05-17 19:36 ` [PATCH 71/73] perf tools: Add a 'percore' event qualifier Arnaldo Carvalho de Melo
2019-05-17 19:36 ` [PATCH 72/73] perf stat: Factor out aggregate counts printing Arnaldo Carvalho de Melo
2019-05-17 19:36 ` [PATCH 73/73] perf stat: Support 'percore' event qualifier Arnaldo Carvalho de Melo
2019-05-18  8:27 ` [GIT PULL] perf/core improvements and fixes Ingo Molnar
2019-05-18  8:27   ` Ingo Molnar
2019-05-18  8:42 ` [PATCH] tools/headers: Synchronize kernel ABI headers Ingo Molnar
2019-05-18  8:42   ` Ingo Molnar
2019-05-18 13:39   ` Arnaldo Carvalho de Melo
2019-05-18 13:39     ` Arnaldo Carvalho de Melo
2019-05-18 17:12     ` Ingo Molnar [this message]
2019-05-18 17:12       ` Ingo Molnar

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=20190518171257.GA50600@gmail.com \
    --to=mingo@kernel.org \
    --cc=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=ak@linux.intel.com \
    --cc=alexey.budankov@linux.intel.com \
    --cc=colin.king@canonical.com \
    --cc=donald.yandt@gmail.com \
    --cc=f.fainelli@gmail.com \
    --cc=han_mao@c-sky.com \
    --cc=jolsa@kernel.org \
    --cc=kan.liang@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=namhyung@kernel.org \
    --cc=ravi.bangoria@linux.ibm.com \
    --cc=ren_guo@c-sky.com \
    --cc=rostedt@goodmis.org \
    --cc=skozina@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=tmricht@linux.ibm.com \
    --cc=williams@redhat.com \
    --cc=yao.jin@linux.intel.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.