Re: [PATCH v3 1/2] ftrace: disable preemption between ftrace_test_recursion_trylock/unlock()
From: 王贇 <hidden>
Date: 2021-10-14 09:22:54
Also in:
linux-riscv, live-patching, lkml
On 2021/10/14 下午5:13, Miroslav Benes wrote:
quoted
diff --git a/kernel/livepatch/patch.c b/kernel/livepatch/patch.c index e8029ae..b8d75fb 100644 --- a/kernel/livepatch/patch.c +++ b/kernel/livepatch/patch.c@@ -49,14 +49,16 @@ static void notrace klp_ftrace_handler(unsigned long ip, ops = container_of(fops, struct klp_ops, fops); + /* + *This empty line is not useful.quoted
+ * The ftrace_test_recursion_trylock() will disable preemption, + * which is required for the variant of synchronize_rcu() that is + * used to allow patching functions where RCU is not watching. + * See klp_synchronize_transition() for more details. + */ bit = ftrace_test_recursion_trylock(ip, parent_ip); if (WARN_ON_ONCE(bit < 0)) return; - /* - * A variant of synchronize_rcu() is used to allow patching functions - * where RCU is not watching, see klp_synchronize_transition(). - */ - preempt_disable_notrace(); func = list_first_or_null_rcu(&ops->func_stack, struct klp_func, stack_node);@@ -120,7 +122,6 @@ static void notrace klp_ftrace_handler(unsigned long ip, klp_arch_set_pc(fregs, (unsigned long)func->new_func); unlock: - preempt_enable_notrace(); ftrace_test_recursion_unlock(bit); }Acked-by: Miroslav Benes <mbenes@suse.cz> for the livepatch part of the patch. I would also ask you not to submit new versions so often, so that the other reviewers have time to actually review the patch set. Quoting from Documentation/process/submitting-patches.rst: "Wait for a minimum of one week before resubmitting or pinging reviewers - possibly longer during busy times like merge windows."
Thanks for the Ack and suggestion, will take care from now on :-) Regards, Michael Wang
Thanks Miroslav