lkml.org 
[lkml]   [2024]   [Apr]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v3 3/4] perf: Remove perf_swevent_get_recursion_context() from perf_pending_task().
    Le Tue, Apr 09, 2024 at 08:25:01AM +0200, Sebastian Andrzej Siewior a écrit :
    > On 2024-04-09 00:06:00 [+0200], Frederic Weisbecker wrote:
    > > > diff --git a/kernel/events/core.c b/kernel/events/core.c
    > > > index e0b2da8de485f..5400f7ed2f98b 100644
    > > > --- a/kernel/events/core.c
    > > > +++ b/kernel/events/core.c
    > > > @@ -6785,14 +6785,6 @@ static void perf_pending_irq(struct irq_work *entry)
    > > > static void perf_pending_task(struct callback_head *head)
    > > > {
    > > > struct perf_event *event = container_of(head, struct perf_event, pending_task);
    > > > - int rctx;
    > > > -
    > > > - /*
    > > > - * If we 'fail' here, that's OK, it means recursion is already disabled
    > > > - * and we won't recurse 'further'.
    > > > - */
    > > > - preempt_disable_notrace();
    > > > - rctx = perf_swevent_get_recursion_context();
    > > >
    > > > if (event->pending_work) {
    > > > event->pending_work = 0;
    > > > @@ -6800,10 +6792,6 @@ static void perf_pending_task(struct callback_head *head)
    > > > local_dec(&event->ctx->nr_pending);
    > > > }
    > > >
    > > > - if (rctx >= 0)
    > > > - perf_swevent_put_recursion_context(rctx);
    > > > - preempt_enable_notrace();
    > >
    > > Well, if a software event happens during perf_sigtrap(), the task work
    > > may be requeued endlessly and the task may get stuck in task_work_run()...
    >
    > The last time I checked it had no users in the task context. How would
    > that happen?

    I guess many tracepoint events would do the trick. Such as trace_lock_acquire()
    for example.

    Thanks.

    \
     
     \ /
      Last update: 2024-05-27 16:30    [W:3.129 / U:0.524 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site