From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933709AbcI0OWd (ORCPT ); Tue, 27 Sep 2016 10:22:33 -0400 Received: from mail-wm0-f67.google.com ([74.125.82.67]:35212 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932870AbcI0OWY (ORCPT ); Tue, 27 Sep 2016 10:22:24 -0400 Date: Tue, 27 Sep 2016 16:22:20 +0200 From: Frederic Weisbecker To: Andy Lutomirski Cc: Chris Metcalf , Thomas Gleixner , "linux-doc@vger.kernel.org" , Christoph Lameter , Michal Hocko , Gilad Ben Yossef , Andrew Morton , Viresh Kumar , Linux API , Steven Rostedt , Ingo Molnar , Tejun Heo , Rik van Riel , Will Deacon , "Paul E. McKenney" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Catalin Marinas , Peter Zijlstra Subject: Re: [PATCH v15 04/13] task_isolation: add initial support Message-ID: <20160927142219.GC6242@lerouge> References: <20160830075854.GZ10153@twins.programming.kicks-ass.net> <3f84f736-ed7f-adff-d5f0-4f7db664208f@mellanox.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Sep 02, 2016 at 10:28:00AM -0700, Andy Lutomirski wrote: > > Unless I'm missing something (which is reasonably likely), couldn't > the isolation code just force or require rcu_nocbs on the isolated > CPUs to avoid this problem entirely. rcu_nocb is already implied by nohz_full. Which means that RCU callbacks are offlined outside the nohz_full set of CPUs. > > I admit I still don't understand why the RCU context tracking code > can't just run the callback right away instead of waiting however many > microseconds in general. I feel like paulmck has explained it to me > at least once, but that doesn't mean I remember the answer. The RCU context tracking doesn't take care of callbacks. It's only there to tell the RCU core whether the CPU runs code that may or may not run RCU read side critical sections. This is assumed by "kernel may use RCU, userspace can't".