* [PATCH 1/3] perf: Return proper values for user stack errors
@ 2018-04-15 9:23 Jiri Olsa
2018-04-15 9:23 ` [PATCH 2/3] perf: Fix sample_max_stack maximum check Jiri Olsa
` (4 more replies)
0 siblings, 5 replies; 9+ messages in thread
From: Jiri Olsa @ 2018-04-15 9:23 UTC (permalink / raw)
To: Peter Zijlstra
Cc: lkml, Ingo Molnar, Andi Kleen, Alexander Shishkin,
Arnaldo Carvalho de Melo, hpa, Namhyung Kim, syzkaller-bugs,
tglx, x86
Return immediately when we find issue in the user
stack checks. The error value could get overwritten
by following check for PERF_SAMPLE_REGS_INTR.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
---
kernel/events/core.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/events/core.c b/kernel/events/core.c
index fc1c330c6bd6..4d997bc064d2 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -10191,9 +10191,9 @@ static int perf_copy_attr(struct perf_event_attr __user *uattr,
* __u16 sample size limit.
*/
if (attr->sample_stack_user >= USHRT_MAX)
- ret = -EINVAL;
+ return -EINVAL;
else if (!IS_ALIGNED(attr->sample_stack_user, sizeof(u64)))
- ret = -EINVAL;
+ return -EINVAL;
}
if (!attr->sample_max_stack)
--
2.13.6
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/3] perf: Fix sample_max_stack maximum check
2018-04-15 9:23 [PATCH 1/3] perf: Return proper values for user stack errors Jiri Olsa
@ 2018-04-15 9:23 ` Jiri Olsa
2018-04-21 7:49 ` [tip:perf/urgent] " tip-bot for Jiri Olsa
2018-04-15 9:23 ` [PATCH 3/3] perf: Remove superfluous allocation error check Jiri Olsa
` (3 subsequent siblings)
4 siblings, 1 reply; 9+ messages in thread
From: Jiri Olsa @ 2018-04-15 9:23 UTC (permalink / raw)
To: Peter Zijlstra
Cc: lkml, Ingo Molnar, Andi Kleen, Alexander Shishkin,
Arnaldo Carvalho de Melo, hpa, Namhyung Kim, syzkaller-bugs,
tglx, x86
The syzbot hit KASAN bug in perf_callchain_store
having the entry stored behind the allocated bounds [1].
We miss the sample_max_stack check for the initial event
that allocates callchain buffers. This missing check allows
to create an event with sample_max_stack value bigger than
the global sysctl maximum:
# sysctl -a | grep perf_event_max_stack
kernel.perf_event_max_stack = 127
# perf record -vv -C 1 -e cycles/max-stack=256/ kill
...
perf_event_attr:
size 112
...
sample_max_stack 256
------------------------------------------------------------
sys_perf_event_open: pid -1 cpu 1 group_fd -1 flags 0x8 = 4
Note the '-C 1', which forces perf record to create just
single event. Otherwise it opens event for every cpu, then
the sample_max_stack check fails on the second event and
all's fine.
The fix is to run the sample_max_stack check also for the
first event with callchains.
[1] https://marc.info/?l=linux-kernel&m=152352732920874&w=2
Reported-by: syzbot+7c449856228b63ac951e@syzkaller.appspotmail.com
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
---
kernel/events/callchain.c | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/kernel/events/callchain.c b/kernel/events/callchain.c
index 772a43fea825..73cc26e321de 100644
--- a/kernel/events/callchain.c
+++ b/kernel/events/callchain.c
@@ -119,19 +119,22 @@ int get_callchain_buffers(int event_max_stack)
goto exit;
}
+ /*
+ * If requesting per event more than the global cap,
+ * return a different error to help userspace figure
+ * this out.
+ *
+ * And also do it here so that we have &callchain_mutex held.
+ */
+ if (event_max_stack > sysctl_perf_event_max_stack) {
+ err = -EOVERFLOW;
+ goto exit;
+ }
+
if (count > 1) {
/* If the allocation failed, give up */
if (!callchain_cpus_entries)
err = -ENOMEM;
- /*
- * If requesting per event more than the global cap,
- * return a different error to help userspace figure
- * this out.
- *
- * And also do it here so that we have &callchain_mutex held.
- */
- if (event_max_stack > sysctl_perf_event_max_stack)
- err = -EOVERFLOW;
goto exit;
}
--
2.13.6
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/3] perf: Remove superfluous allocation error check
2018-04-15 9:23 [PATCH 1/3] perf: Return proper values for user stack errors Jiri Olsa
2018-04-15 9:23 ` [PATCH 2/3] perf: Fix sample_max_stack maximum check Jiri Olsa
@ 2018-04-15 9:23 ` Jiri Olsa
2018-04-21 7:49 ` [tip:perf/urgent] " tip-bot for Jiri Olsa
2018-04-16 16:52 ` [PATCH 1/3] perf: Return proper values for user stack errors Arnaldo Carvalho de Melo
` (2 subsequent siblings)
4 siblings, 1 reply; 9+ messages in thread
From: Jiri Olsa @ 2018-04-15 9:23 UTC (permalink / raw)
To: Peter Zijlstra
Cc: lkml, Ingo Molnar, Andi Kleen, Alexander Shishkin,
Arnaldo Carvalho de Melo, hpa, Namhyung Kim, syzkaller-bugs,
tglx, x86
If the get_callchain_buffers fails to allocate the buffer
it will decrease the nr_callchain_events right away.
There's no point of checking the allocation error for
nr_callchain_events > 1. Removing that check.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
---
kernel/events/callchain.c | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/kernel/events/callchain.c b/kernel/events/callchain.c
index 73cc26e321de..c187aa3df3c8 100644
--- a/kernel/events/callchain.c
+++ b/kernel/events/callchain.c
@@ -131,14 +131,8 @@ int get_callchain_buffers(int event_max_stack)
goto exit;
}
- if (count > 1) {
- /* If the allocation failed, give up */
- if (!callchain_cpus_entries)
- err = -ENOMEM;
- goto exit;
- }
-
- err = alloc_callchain_buffers();
+ if (count == 1)
+ err = alloc_callchain_buffers();
exit:
if (err)
atomic_dec(&nr_callchain_events);
--
2.13.6
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] perf: Return proper values for user stack errors
2018-04-15 9:23 [PATCH 1/3] perf: Return proper values for user stack errors Jiri Olsa
2018-04-15 9:23 ` [PATCH 2/3] perf: Fix sample_max_stack maximum check Jiri Olsa
2018-04-15 9:23 ` [PATCH 3/3] perf: Remove superfluous allocation error check Jiri Olsa
@ 2018-04-16 16:52 ` Arnaldo Carvalho de Melo
2018-04-16 16:54 ` Arnaldo Carvalho de Melo
2018-04-21 7:48 ` [tip:perf/urgent] " tip-bot for Jiri Olsa
4 siblings, 0 replies; 9+ messages in thread
From: Arnaldo Carvalho de Melo @ 2018-04-16 16:52 UTC (permalink / raw)
To: Jiri Olsa
Cc: Peter Zijlstra, lkml, Ingo Molnar, Andi Kleen,
Alexander Shishkin, hpa, Namhyung Kim, syzkaller-bugs, tglx, x86
Em Sun, Apr 15, 2018 at 11:23:50AM +0200, Jiri Olsa escreveu:
> Return immediately when we find issue in the user
> stack checks. The error value could get overwritten
> by following check for PERF_SAMPLE_REGS_INTR.
Applied, together with a:
Cc: Stephane Eranian <eranian@google.com>
Cc: Ingo Molnar <mingo@kernel.org>
Fixes: 60e2364e60e8 ("perf: Add ability to sample machine state on interrupt")
> Signed-off-by: Jiri Olsa <jolsa@kernel.org>
> ---
> kernel/events/core.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/events/core.c b/kernel/events/core.c
> index fc1c330c6bd6..4d997bc064d2 100644
> --- a/kernel/events/core.c
> +++ b/kernel/events/core.c
> @@ -10191,9 +10191,9 @@ static int perf_copy_attr(struct perf_event_attr __user *uattr,
> * __u16 sample size limit.
> */
> if (attr->sample_stack_user >= USHRT_MAX)
> - ret = -EINVAL;
> + return -EINVAL;
> else if (!IS_ALIGNED(attr->sample_stack_user, sizeof(u64)))
> - ret = -EINVAL;
> + return -EINVAL;
> }
>
> if (!attr->sample_max_stack)
> --
> 2.13.6
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] perf: Return proper values for user stack errors
2018-04-15 9:23 [PATCH 1/3] perf: Return proper values for user stack errors Jiri Olsa
` (2 preceding siblings ...)
2018-04-16 16:52 ` [PATCH 1/3] perf: Return proper values for user stack errors Arnaldo Carvalho de Melo
@ 2018-04-16 16:54 ` Arnaldo Carvalho de Melo
2018-04-16 16:55 ` Arnaldo Carvalho de Melo
2018-04-21 7:48 ` [tip:perf/urgent] " tip-bot for Jiri Olsa
4 siblings, 1 reply; 9+ messages in thread
From: Arnaldo Carvalho de Melo @ 2018-04-16 16:54 UTC (permalink / raw)
To: Jiri Olsa
Cc: Peter Zijlstra, lkml, Ingo Molnar, Andi Kleen,
Alexander Shishkin, hpa, Namhyung Kim, syzkaller-bugs, tglx, x86
Em Sun, Apr 15, 2018 at 11:23:50AM +0200, Jiri Olsa escreveu:
> Return immediately when we find issue in the user
> stack checks. The error value could get overwritten
> by following check for PERF_SAMPLE_REGS_INTR.
>
> Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Also, since you're sending this to syskaller-bugs, was this something
reported by that tool? If so I think we should communicate with him,
like described in its docs, no? /me goes to find the doc snippet...
> kernel/events/core.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/events/core.c b/kernel/events/core.c
> index fc1c330c6bd6..4d997bc064d2 100644
> --- a/kernel/events/core.c
> +++ b/kernel/events/core.c
> @@ -10191,9 +10191,9 @@ static int perf_copy_attr(struct perf_event_attr __user *uattr,
> * __u16 sample size limit.
> */
> if (attr->sample_stack_user >= USHRT_MAX)
> - ret = -EINVAL;
> + return -EINVAL;
> else if (!IS_ALIGNED(attr->sample_stack_user, sizeof(u64)))
> - ret = -EINVAL;
> + return -EINVAL;
> }
>
> if (!attr->sample_max_stack)
> --
> 2.13.6
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] perf: Return proper values for user stack errors
2018-04-16 16:54 ` Arnaldo Carvalho de Melo
@ 2018-04-16 16:55 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 9+ messages in thread
From: Arnaldo Carvalho de Melo @ 2018-04-16 16:55 UTC (permalink / raw)
To: Jiri Olsa
Cc: Peter Zijlstra, lkml, Ingo Molnar, Andi Kleen,
Alexander Shishkin, hpa, Namhyung Kim, syzkaller-bugs, tglx, x86
Em Mon, Apr 16, 2018 at 01:54:30PM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Sun, Apr 15, 2018 at 11:23:50AM +0200, Jiri Olsa escreveu:
> > Return immediately when we find issue in the user
> > stack checks. The error value could get overwritten
> > by following check for PERF_SAMPLE_REGS_INTR.
> >
> > Signed-off-by: Jiri Olsa <jolsa@kernel.org>
>
> Also, since you're sending this to syskaller-bugs, was this something
> reported by that tool? If so I think we should communicate with him,
> like described in its docs, no? /me goes to find the doc snippet...
Ok, you did it in 2/3, nevermind then :-)
- Arnaldo
>
>
> > kernel/events/core.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/kernel/events/core.c b/kernel/events/core.c
> > index fc1c330c6bd6..4d997bc064d2 100644
> > --- a/kernel/events/core.c
> > +++ b/kernel/events/core.c
> > @@ -10191,9 +10191,9 @@ static int perf_copy_attr(struct perf_event_attr __user *uattr,
> > * __u16 sample size limit.
> > */
> > if (attr->sample_stack_user >= USHRT_MAX)
> > - ret = -EINVAL;
> > + return -EINVAL;
> > else if (!IS_ALIGNED(attr->sample_stack_user, sizeof(u64)))
> > - ret = -EINVAL;
> > + return -EINVAL;
> > }
> >
> > if (!attr->sample_max_stack)
> > --
> > 2.13.6
^ permalink raw reply [flat|nested] 9+ messages in thread
* [tip:perf/urgent] perf: Return proper values for user stack errors
2018-04-15 9:23 [PATCH 1/3] perf: Return proper values for user stack errors Jiri Olsa
` (3 preceding siblings ...)
2018-04-16 16:54 ` Arnaldo Carvalho de Melo
@ 2018-04-21 7:48 ` tip-bot for Jiri Olsa
4 siblings, 0 replies; 9+ messages in thread
From: tip-bot for Jiri Olsa @ 2018-04-21 7:48 UTC (permalink / raw)
To: linux-tip-commits
Cc: mingo, eranian, namhyung, acme, jolsa, linux-kernel, andi, hpa,
peterz, alexander.shishkin, tglx
Commit-ID: 78b562fbfa2cf0a9fcb23c3154756b690f4905c1
Gitweb: https://git.kernel.org/tip/78b562fbfa2cf0a9fcb23c3154756b690f4905c1
Author: Jiri Olsa <jolsa@kernel.org>
AuthorDate: Sun, 15 Apr 2018 11:23:50 +0200
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Tue, 17 Apr 2018 09:47:39 -0300
perf: Return proper values for user stack errors
Return immediately when we find issue in the user stack checks. The
error value could get overwritten by following check for
PERF_SAMPLE_REGS_INTR.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: syzkaller-bugs@googlegroups.com
Cc: x86@kernel.org
Fixes: 60e2364e60e8 ("perf: Add ability to sample machine state on interrupt")
Link: http://lkml.kernel.org/r/20180415092352.12403-1-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
kernel/events/core.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/events/core.c b/kernel/events/core.c
index 1bae80aaabfb..67612ce359ad 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -10209,9 +10209,9 @@ static int perf_copy_attr(struct perf_event_attr __user *uattr,
* __u16 sample size limit.
*/
if (attr->sample_stack_user >= USHRT_MAX)
- ret = -EINVAL;
+ return -EINVAL;
else if (!IS_ALIGNED(attr->sample_stack_user, sizeof(u64)))
- ret = -EINVAL;
+ return -EINVAL;
}
if (!attr->sample_max_stack)
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [tip:perf/urgent] perf: Fix sample_max_stack maximum check
2018-04-15 9:23 ` [PATCH 2/3] perf: Fix sample_max_stack maximum check Jiri Olsa
@ 2018-04-21 7:49 ` tip-bot for Jiri Olsa
0 siblings, 0 replies; 9+ messages in thread
From: tip-bot for Jiri Olsa @ 2018-04-21 7:49 UTC (permalink / raw)
To: linux-tip-commits
Cc: alexander.shishkin, mingo, peterz, tglx, hpa, linux-kernel,
jolsa, acme, namhyung, andi
Commit-ID: 5af44ca53d019de47efe6dbc4003dd518e5197ed
Gitweb: https://git.kernel.org/tip/5af44ca53d019de47efe6dbc4003dd518e5197ed
Author: Jiri Olsa <jolsa@kernel.org>
AuthorDate: Sun, 15 Apr 2018 11:23:51 +0200
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Tue, 17 Apr 2018 09:47:40 -0300
perf: Fix sample_max_stack maximum check
The syzbot hit KASAN bug in perf_callchain_store having the entry stored
behind the allocated bounds [1].
We miss the sample_max_stack check for the initial event that allocates
callchain buffers. This missing check allows to create an event with
sample_max_stack value bigger than the global sysctl maximum:
# sysctl -a | grep perf_event_max_stack
kernel.perf_event_max_stack = 127
# perf record -vv -C 1 -e cycles/max-stack=256/ kill
...
perf_event_attr:
size 112
...
sample_max_stack 256
------------------------------------------------------------
sys_perf_event_open: pid -1 cpu 1 group_fd -1 flags 0x8 = 4
Note the '-C 1', which forces perf record to create just single event.
Otherwise it opens event for every cpu, then the sample_max_stack check
fails on the second event and all's fine.
The fix is to run the sample_max_stack check also for the first event
with callchains.
[1] https://marc.info/?l=linux-kernel&m=152352732920874&w=2
Reported-by: syzbot+7c449856228b63ac951e@syzkaller.appspotmail.com
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: syzkaller-bugs@googlegroups.com
Cc: x86@kernel.org
Fixes: 97c79a38cd45 ("perf core: Per event callchain limit")
Link: http://lkml.kernel.org/r/20180415092352.12403-2-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
kernel/events/callchain.c | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/kernel/events/callchain.c b/kernel/events/callchain.c
index 772a43fea825..73cc26e321de 100644
--- a/kernel/events/callchain.c
+++ b/kernel/events/callchain.c
@@ -119,19 +119,22 @@ int get_callchain_buffers(int event_max_stack)
goto exit;
}
+ /*
+ * If requesting per event more than the global cap,
+ * return a different error to help userspace figure
+ * this out.
+ *
+ * And also do it here so that we have &callchain_mutex held.
+ */
+ if (event_max_stack > sysctl_perf_event_max_stack) {
+ err = -EOVERFLOW;
+ goto exit;
+ }
+
if (count > 1) {
/* If the allocation failed, give up */
if (!callchain_cpus_entries)
err = -ENOMEM;
- /*
- * If requesting per event more than the global cap,
- * return a different error to help userspace figure
- * this out.
- *
- * And also do it here so that we have &callchain_mutex held.
- */
- if (event_max_stack > sysctl_perf_event_max_stack)
- err = -EOVERFLOW;
goto exit;
}
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [tip:perf/urgent] perf: Remove superfluous allocation error check
2018-04-15 9:23 ` [PATCH 3/3] perf: Remove superfluous allocation error check Jiri Olsa
@ 2018-04-21 7:49 ` tip-bot for Jiri Olsa
0 siblings, 0 replies; 9+ messages in thread
From: tip-bot for Jiri Olsa @ 2018-04-21 7:49 UTC (permalink / raw)
To: linux-tip-commits
Cc: hpa, linux-kernel, acme, peterz, jolsa, andi, namhyung, tglx,
mingo, alexander.shishkin
Commit-ID: bfb3d7b8b906b66551424d7636182126e1d134c8
Gitweb: https://git.kernel.org/tip/bfb3d7b8b906b66551424d7636182126e1d134c8
Author: Jiri Olsa <jolsa@kernel.org>
AuthorDate: Sun, 15 Apr 2018 11:23:52 +0200
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Tue, 17 Apr 2018 09:47:40 -0300
perf: Remove superfluous allocation error check
If the get_callchain_buffers fails to allocate the buffer it will
decrease the nr_callchain_events right away.
There's no point of checking the allocation error for
nr_callchain_events > 1. Removing that check.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: syzkaller-bugs@googlegroups.com
Cc: x86@kernel.org
Link: http://lkml.kernel.org/r/20180415092352.12403-3-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
kernel/events/callchain.c | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/kernel/events/callchain.c b/kernel/events/callchain.c
index 73cc26e321de..c187aa3df3c8 100644
--- a/kernel/events/callchain.c
+++ b/kernel/events/callchain.c
@@ -131,14 +131,8 @@ int get_callchain_buffers(int event_max_stack)
goto exit;
}
- if (count > 1) {
- /* If the allocation failed, give up */
- if (!callchain_cpus_entries)
- err = -ENOMEM;
- goto exit;
- }
-
- err = alloc_callchain_buffers();
+ if (count == 1)
+ err = alloc_callchain_buffers();
exit:
if (err)
atomic_dec(&nr_callchain_events);
^ permalink raw reply related [flat|nested] 9+ messages in thread
end of thread, other threads:[~2018-04-21 7:51 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-15 9:23 [PATCH 1/3] perf: Return proper values for user stack errors Jiri Olsa
2018-04-15 9:23 ` [PATCH 2/3] perf: Fix sample_max_stack maximum check Jiri Olsa
2018-04-21 7:49 ` [tip:perf/urgent] " tip-bot for Jiri Olsa
2018-04-15 9:23 ` [PATCH 3/3] perf: Remove superfluous allocation error check Jiri Olsa
2018-04-21 7:49 ` [tip:perf/urgent] " tip-bot for Jiri Olsa
2018-04-16 16:52 ` [PATCH 1/3] perf: Return proper values for user stack errors Arnaldo Carvalho de Melo
2018-04-16 16:54 ` Arnaldo Carvalho de Melo
2018-04-16 16:55 ` Arnaldo Carvalho de Melo
2018-04-21 7:48 ` [tip:perf/urgent] " tip-bot for Jiri Olsa
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.