Re: [PATCH] uprobes: Improve scalability by reducing the contention on siglock

From
Liao, Chang <hidden>
Date
2024-08-02 01:38:09
Also in
linux-trace-kernel, lkml
Reply to
Oleg Nesterov, 2024-08-01

在 2024/8/1 22:06, Oleg Nesterov 写道:
On 08/01, Liao Chang wrote:
quoted
@@ -2276,22 +2277,25 @@ static void handle_singlestep(struct uprobe_task *utask, struct pt_regs *regs)
 	int err = 0;
 
 	uprobe = utask->active_uprobe;
-	if (utask->state == UTASK_SSTEP_ACK)
+	switch (utask->state) {
+	case UTASK_SSTEP_ACK:
 		err = arch_uprobe_post_xol(&uprobe->arch, regs);
-	else if (utask->state == UTASK_SSTEP_TRAPPED)
+		break;
+	case UTASK_SSTEP_TRAPPED:
 		arch_uprobe_abort_xol(&uprobe->arch, regs);
-	else
+		fallthrough;
+	case UTASK_SSTEP_DENY_SIGNAL:
+		set_tsk_thread_flag(current, TIF_SIGPENDING);
+		break;
+	default:
 		WARN_ON_ONCE(1);
+	}
Liao, at first glance this change looks "obviously wrong" to me.
Oleg. Did i overlook some thing obvious here?
But let me read this patch more carefully and reply on weekend,
I am a bit busy right now.
Sure, thanks.
Thanks,

Oleg.
-- 
BR
Liao, Chang
Thread (11 messages) 11 messages, 2 authors, last reply 2024-08-08
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help