Re: [PATCH v3 06/11] perf: Add support for SIGTRAP on perf events

2021-03-31 Thread Marco Elver
On Wed, 31 Mar 2021 at 16:51, Peter Zijlstra wrote: > On Wed, Mar 31, 2021 at 02:32:58PM +0200, Marco Elver wrote: > > On Mon, 29 Mar 2021 at 14:07, Peter Zijlstra wrote: > > > > > (and we might already have a problem on some architectures where there > > > can be significant time between these d

Re: [PATCH v3 06/11] perf: Add support for SIGTRAP on perf events

2021-03-31 Thread Peter Zijlstra
On Wed, Mar 31, 2021 at 02:32:58PM +0200, Marco Elver wrote: > On Mon, 29 Mar 2021 at 14:07, Peter Zijlstra wrote: > > > (and we might already have a problem on some architectures where there > > can be significant time between these due to not having > > arch_irq_work_raise(), so ideally we ough

Re: [PATCH v3 06/11] perf: Add support for SIGTRAP on perf events

2021-03-31 Thread Marco Elver
On Mon, 29 Mar 2021 at 14:07, Peter Zijlstra wrote: > (and we might already have a problem on some architectures where there > can be significant time between these due to not having > arch_irq_work_raise(), so ideally we ought to double check current in > your case) I missed this bit -- just to

Re: [PATCH v3 06/11] perf: Add support for SIGTRAP on perf events

2021-03-30 Thread Peter Zijlstra
On Mon, Mar 29, 2021 at 04:32:18PM +0200, Marco Elver wrote: > On Mon, 29 Mar 2021 at 16:27, Oleg Nesterov wrote: > > On 03/29, Peter Zijlstra wrote: > > > > > > On Thu, Mar 25, 2021 at 09:14:39AM +0100, Marco Elver wrote: > > > > @@ -6395,6 +6395,13 @@ static void perf_sigtrap(struct perf_event

Re: [PATCH v3 06/11] perf: Add support for SIGTRAP on perf events

2021-03-29 Thread Oleg Nesterov
On 03/29, Marco Elver wrote: > > So, per off-list discussion, it appears that I should ask to clarify: > PF_EXISTING or PF_EXITING? Aaah, sorry Marco. PF_EXITING, of course. Oleg.

Re: [PATCH v3 06/11] perf: Add support for SIGTRAP on perf events

2021-03-29 Thread Marco Elver
On Mon, 29 Mar 2021 at 16:27, Oleg Nesterov wrote: > On 03/29, Peter Zijlstra wrote: > > > > On Thu, Mar 25, 2021 at 09:14:39AM +0100, Marco Elver wrote: > > > @@ -6395,6 +6395,13 @@ static void perf_sigtrap(struct perf_event *event) > > > { > > > struct kernel_siginfo info; > > > > > > + /

Re: [PATCH v3 06/11] perf: Add support for SIGTRAP on perf events

2021-03-29 Thread Marco Elver
On Mon, 29 Mar 2021 at 16:27, Oleg Nesterov wrote: > On 03/29, Peter Zijlstra wrote: > > > > On Thu, Mar 25, 2021 at 09:14:39AM +0100, Marco Elver wrote: > > > @@ -6395,6 +6395,13 @@ static void perf_sigtrap(struct perf_event *event) > > > { > > > struct kernel_siginfo info; > > > > > > + /

Re: [PATCH v3 06/11] perf: Add support for SIGTRAP on perf events

2021-03-29 Thread Oleg Nesterov
On 03/29, Peter Zijlstra wrote: > > On Thu, Mar 25, 2021 at 09:14:39AM +0100, Marco Elver wrote: > > @@ -6395,6 +6395,13 @@ static void perf_sigtrap(struct perf_event *event) > > { > > struct kernel_siginfo info; > > > > + /* > > +* This irq_work can race with an exiting task; bail out i

Re: [PATCH v3 06/11] perf: Add support for SIGTRAP on perf events

2021-03-29 Thread Peter Zijlstra
On Thu, Mar 25, 2021 at 09:14:39AM +0100, Marco Elver wrote: > On Wed, Mar 24, 2021 at 12:24PM +0100, Marco Elver wrote: > [...] > > diff --git a/kernel/events/core.c b/kernel/events/core.c > > index b6434697c516..1e4c949bf75f 100644 > > --- a/kernel/events/core.c > > +++ b/kernel/events/core.c > >

Re: [PATCH v3 06/11] perf: Add support for SIGTRAP on perf events

2021-03-25 Thread Marco Elver
On Wed, Mar 24, 2021 at 12:24PM +0100, Marco Elver wrote: [...] > diff --git a/kernel/events/core.c b/kernel/events/core.c > index b6434697c516..1e4c949bf75f 100644 > --- a/kernel/events/core.c > +++ b/kernel/events/core.c > @@ -6391,6 +6391,17 @@ void perf_event_wakeup(struct perf_event *event) >

[PATCH v3 06/11] perf: Add support for SIGTRAP on perf events

2021-03-24 Thread Marco Elver
Adds bit perf_event_attr::sigtrap, which can be set to cause events to send SIGTRAP (with si_code TRAP_PERF) to the task where the event occurred. To distinguish perf events and allow user space to decode si_perf (if set), the event type is set in si_errno. The primary motivation is to support syn