37 lines
1.4 KiB
Plaintext
37 lines
1.4 KiB
Plaintext
Date: Tue, 27 Oct 2015 07:31:53 -0500
|
|
From: Josh Cartwright <joshc@ni.com>
|
|
Subject: net: Make synchronize_rcu_expedited() conditional on !RT_FULL
|
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt5.tar.xz
|
|
|
|
While the use of synchronize_rcu_expedited() might make
|
|
synchronize_net() "faster", it does so at significant cost on RT
|
|
systems, as expediting a grace period forcibly preempts any
|
|
high-priority RT tasks (via the stop_machine() mechanism).
|
|
|
|
Without this change, we can observe a latency spike up to 30us with
|
|
cyclictest by rapidly unplugging/reestablishing an ethernet link.
|
|
|
|
Suggested-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
|
|
Signed-off-by: Josh Cartwright <joshc@ni.com>
|
|
Cc: bigeasy@linutronix.de
|
|
Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
|
|
Acked-by: David S. Miller <davem@davemloft.net>
|
|
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
|
|
Link: http://lkml.kernel.org/r/20151027123153.GG8245@jcartwri.amer.corp.natinst.com
|
|
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|
---
|
|
net/core/dev.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
--- a/net/core/dev.c
|
|
+++ b/net/core/dev.c
|
|
@@ -7217,7 +7217,7 @@ EXPORT_SYMBOL(free_netdev);
|
|
void synchronize_net(void)
|
|
{
|
|
might_sleep();
|
|
- if (rtnl_is_locked())
|
|
+ if (rtnl_is_locked() && !IS_ENABLED(CONFIG_PREEMPT_RT_FULL))
|
|
synchronize_rcu_expedited();
|
|
else
|
|
synchronize_rcu();
|