All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] rcu: record kasan stack before enter local_irq_save()/restore() critical area
@ 2021-12-22  7:54 Zqiang
  2021-12-23 15:08 ` Marco Elver
  0 siblings, 1 reply; 7+ messages in thread
From: Zqiang @ 2021-12-22  7:54 UTC (permalink / raw)
  To: paulmck, ryabinin.a.a; +Cc: urezki, elver, jun.miao, linux-kernel

The kasan_record_aux_stack_noalloc() only record stack, it doesn't need
to be called in local_irq_save()/restore() critical area, and the global
spinlock (depot_lock) will be acquired in this function, When enable
kasan stack, locking contention may increase the time in the critical area.

Signed-off-by: Zqiang <qiang1.zhang@intel.com>
---
 kernel/rcu/tree.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index 347dae1876a6..5198e44cb124 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -3030,8 +3030,8 @@ __call_rcu(struct rcu_head *head, rcu_callback_t func)
 	}
 	head->func = func;
 	head->next = NULL;
-	local_irq_save(flags);
 	kasan_record_aux_stack_noalloc(head);
+	local_irq_save(flags);
 	rdp = this_cpu_ptr(&rcu_data);
 
 	/* Add the callback to our list. */
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-12-25 10:48 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-22  7:54 [PATCH] rcu: record kasan stack before enter local_irq_save()/restore() critical area Zqiang
2021-12-23 15:08 ` Marco Elver
2021-12-24  3:22   ` Zhang, Qiang1
2021-12-24 11:02     ` Marco Elver
2021-12-25  8:39       ` Zhang, Qiang1
2021-12-25  9:36         ` Marco Elver
2021-12-25 10:48           ` Zhang, Qiang1

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.