* Re: [PATCH] uprobes: Improve scalability by reducing the contention on siglock
[not found] ` <20240808102837.GC8020@redhat.com>
@ 2024-08-08 12:31 ` Liao, Chang
2024-08-08 13:17 ` Oleg Nesterov
0 siblings, 1 reply; 2+ messages in thread
From: Liao, Chang @ 2024-08-08 12:31 UTC (permalink / raw)
To: Oleg Nesterov
Cc: mhiramat, peterz, mingo, acme, namhyung, mark.rutland,
alexander.shishkin, jolsa, irogers, adrian.hunter, kan.liang,
linux-kernel, linux-trace-kernel, linux-perf-users, bpf,
Andrii Nakryiko, Masami Hiramatsu, Steven Rostedt, paulmck
在 2024/8/8 18:28, Oleg Nesterov 写道:
> On 08/08, Liao, Chang wrote:
>>
>> - pre_ssout() resets the deny signal flag
>>
>> - uprobe_deny_signal() sets the deny signal flag when TIF_SIGPENDING is cleared.
>>
>> - handle_singlestep() check the deny signal flag and restore TIF_SIGPENDING if necessary.
>>
>> Does this approach look correct to you,do do you have any other way to implement the "flag"?
>
> Yes. But I don't think pre_ssout() needs to clear this flag. handle_singlestep() resets/clears
> state, active_uprobe, frees insn slot. So I guess we only need
>
>
> --- x/kernel/events/uprobes.c
> +++ x/kernel/events/uprobes.c
> @@ -2308,9 +2308,10 @@ static void handle_singlestep(struct upr
> utask->state = UTASK_RUNNING;
> xol_free_insn_slot(current);
>
> - spin_lock_irq(¤t->sighand->siglock);
> - recalc_sigpending(); /* see uprobe_deny_signal() */
> - spin_unlock_irq(¤t->sighand->siglock);
> + if (utask->xxx) {
> + set_thread_flag(TIF_SIGPENDING);
> + utask->xxx = 0;
> + }
Agree, if no more discussion about this flag, I will just send v2 today.
Thanks.
>
> if (unlikely(err)) {
> uprobe_warn(current, "execute the probed insn, sending SIGILL.");
>
> and that is all.
>
> Oleg.
>
>
--
BR
Liao, Chang
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] uprobes: Improve scalability by reducing the contention on siglock
2024-08-08 12:31 ` [PATCH] uprobes: Improve scalability by reducing the contention on siglock Liao, Chang
@ 2024-08-08 13:17 ` Oleg Nesterov
0 siblings, 0 replies; 2+ messages in thread
From: Oleg Nesterov @ 2024-08-08 13:17 UTC (permalink / raw)
To: Liao, Chang
Cc: mhiramat, peterz, mingo, acme, namhyung, mark.rutland,
alexander.shishkin, jolsa, irogers, adrian.hunter, kan.liang,
linux-kernel, linux-trace-kernel, linux-perf-users, bpf,
Andrii Nakryiko, Steven Rostedt, paulmck
On 08/08, Liao, Chang wrote:
>
>
> 在 2024/8/8 18:28, Oleg Nesterov 写道:
> > --- x/kernel/events/uprobes.c
> > +++ x/kernel/events/uprobes.c
> > @@ -2308,9 +2308,10 @@ static void handle_singlestep(struct upr
> > utask->state = UTASK_RUNNING;
> > xol_free_insn_slot(current);
> >
> > - spin_lock_irq(¤t->sighand->siglock);
> > - recalc_sigpending(); /* see uprobe_deny_signal() */
> > - spin_unlock_irq(¤t->sighand->siglock);
> > + if (utask->xxx) {
> > + set_thread_flag(TIF_SIGPENDING);
> > + utask->xxx = 0;
> > + }
>
> Agree, if no more discussion about this flag, I will just send v2 today.
Please also resend the previous patch a 1/2, this one as 2/2.
Oleg.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-08-08 13:17 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20240801082407.1618451-1-liaochang1@huawei.com>
[not found] ` <20240801140639.GE4038@redhat.com>
[not found] ` <51a756b7-3c2f-9aeb-1418-b38b74108ee6@huawei.com>
[not found] ` <20240802092406.GC12343@redhat.com>
[not found] ` <0c69ef28-26d8-4b6e-fa78-2211a7b84eca@huawei.com>
[not found] ` <20240806172529.GC20881@redhat.com>
[not found] ` <20240807101746.GA27715@redhat.com>
[not found] ` <3bb87fb4-c32e-0a35-0e93-5e1971fe8268@huawei.com>
[not found] ` <20240808102837.GC8020@redhat.com>
2024-08-08 12:31 ` [PATCH] uprobes: Improve scalability by reducing the contention on siglock Liao, Chang
2024-08-08 13:17 ` Oleg Nesterov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox