From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752916AbbJZTPK (ORCPT ); Mon, 26 Oct 2015 15:15:10 -0400 Received: from skprod2.natinst.com ([130.164.80.23]:53299 "EHLO ni.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751358AbbJZTPI (ORCPT ); Mon, 26 Oct 2015 15:15:08 -0400 From: Josh Cartwright To: tglx@linutronix.de, bigeasy@linutronix.de Cc: linux-rt-users@vger.kernel.org, linux-kernel@vger.kernel.org, Eric Dumazet , "Paul E. McKenney" , "David S. Miller" Subject: [PATCH -rt] Revert "net: use synchronize_rcu_expedited()" Date: Mon, 26 Oct 2015 14:14:55 -0500 Message-Id: <1445886895-3692-1-git-send-email-joshc@ni.com> X-Mailer: git-send-email 2.5.1 X-MIMETrack: Itemize by SMTP Server on US-AUS-MGWOut2/AUS/H/NIC(Release 8.5.3FP6 HF1218|December 12, 2014) at 10/26/2015 02:14:55 PM, Serialize by Router on US-AUS-MGWOut2/AUS/H/NIC(Release 8.5.3FP6 HF1218|December 12, 2014) at 10/26/2015 02:14:56 PM, Serialize complete at 10/26/2015 02:14:56 PM X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2015-10-26_11:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This reverts commit be3fc413da9eb17cce0991f214ab019d16c88c41. 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 be3fc413da9e reverted, we can observe a latency spike up to 30us with cyclictest by rapidly unplugging/reestablishing an ethernet link. Cc: Eric Dumazet Cc: Paul E. McKenney Cc: David S. Miller Signed-off-by: Josh Cartwright --- net/core/dev.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c index f8c23de..869ef62 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -6969,10 +6969,7 @@ EXPORT_SYMBOL(free_netdev); void synchronize_net(void) { might_sleep(); - if (rtnl_is_locked()) - synchronize_rcu_expedited(); - else - synchronize_rcu(); + synchronize_rcu(); } EXPORT_SYMBOL(synchronize_net); -- 2.5.1