Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933354AbbBIPmv (ORCPT ); Mon, 9 Feb 2015 10:42:51 -0500 Received: from mx1.redhat.com ([209.132.183.28]:45875 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933101AbbBIPmt (ORCPT ); Mon, 9 Feb 2015 10:42:49 -0500 Message-ID: <54D8D569.4000008@redhat.com> Date: Mon, 09 Feb 2015 10:42:33 -0500 From: Rik van Riel User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: paulmck@linux.vnet.ibm.com, Frederic Weisbecker CC: kvm@vger.kernel.org, borntraeger@de.ibm.com, linux-kernel@vger.kernel.org, mtosatti@redhat.com, mingo@kernel.orgm, ak@linux.intel.com, oleg@redhat.com, masami.hiramatsu.pt@hitachi.com, lcapitulino@redhat.com, pbonzini@redhat.com Subject: Re: [PATCH 1/5] rcu,nohz: add state parameter to context_tracking_user_enter/exit References: <1423167832-17609-2-git-send-email-riel@redhat.com> <20150206172209.GC21905@lerouge> <54D505E5.9000003@redhat.com> <20150206182258.GH21905@lerouge> <54D50D4C.8010505@redhat.com> <20150206231511.GA18934@lerouge> <54D58C3E.50804@redhat.com> <20150207063421.GY5418@linux.vnet.ibm.com> <20150207071453.GA12268@linux.vnet.ibm.com> <20150207083036.GA24538@lerouge> <20150207200624.GZ5418@linux.vnet.ibm.com> In-Reply-To: <20150207200624.GZ5418@linux.vnet.ibm.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 5187 Lines: 119 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 02/07/2015 03:06 PM, Paul E. McKenney wrote: > On Sat, Feb 07, 2015 at 09:30:41AM +0100, Frederic Weisbecker > wrote: >> On Fri, Feb 06, 2015 at 11:14:53PM -0800, Paul E. McKenney >> wrote: >>> On Fri, Feb 06, 2015 at 10:34:21PM -0800, Paul E. McKenney >>> wrote: >>>> On Fri, Feb 06, 2015 at 10:53:34PM -0500, Rik van Riel >>>> wrote: >>>>> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 >>>>> >>>>> On 02/06/2015 06:15 PM, Frederic Weisbecker wrote: >>>>> >>>>>> Just a few things then: >>>>>> >>>>>> 1) In this case rename context_tracking_user_enter/exit() >>>>>> to context_tracking_enter() and context_tracking_exit(), >>>>>> since it's not anymore about user only but about any >>>>>> generic context. >>>>>> >>>>>> 2) We have the "WARN_ON_ONCE(!current->mm);" condition >>>>>> that is a debug check specific to userspace transitions >>>>>> because kernel threads aren't expected to resume to >>>>>> userspace. Can we also expect that we never switch >>>>>> to/from guest from a kernel thread? AFAICS this happens >>>>>> from an ioctl (thus user task) in x86 for kvm. But I only >>>>>> know this case. >>>>>> >>>>>> 3) You might want to update a few comments that assume we >>>>>> only deal with userspace transitions. >>>>>> >>>>>> 4) trace_user_enter/exit() should stay user-transitions >>>>>> specific. >>>>> >>>>> Paul, would you like me to send follow-up patches with the >>>>> cleanups suggested by Frederic, or would you prefer me to >>>>> send a new series with the cleanups integrated? >>>> >>>> I would prefer a new series, in order to prevent possible >>>> future confusion. >>> >>> Of course, if Frederic would rather push them himself, I am >>> fine with that. And in that case, you should ask him for his >>> preferences, which just might differ from mine. ;-) >> >> I prefer a new series too. Now whether you or me take the >> patches, I don't mind either way :-) >> >> Also I wonder how this feature is going to be enabled. Will it be >> enabled on full dynticks or should it be a seperate feature >> depending on full dynticks? Or even just CONFIG_RCU_USER_EQS? >> Because I'm still unclear about how and what this is used, if it >> involves full dynticks or only RCU extended quiescent states. > > Well, we certainly need it documented. And validation > considerations would push for keeping the number of possible > combinations low, while paranoia about added feature would push for > having it be separately enabled. And if distros are going to > enable this at build time, we either need -serious- validation or a > way to disable at boot time. > > On the desired/required combinations of features, let's see... > > If I understand this completely, which I probably don't, we have > the following considerations: > > o NO_HZ_FULL: Needed to get rid of the scheduling-clock interrupt > during guest execution, though I am not sure whether we really have > that completely wired up with this patch set. Regardless, Rik, for > your use case, do you care about whether or not the guest gets > interrupted by the host's scheduling-clock interrupts? (Based on > discussion in this thread, my guess is "yes".) > > o RCU_NOCB_CPUS: Implied by NO_HZ_FULL, but only on CPUs actually > enabled for NO_HZ_FULL operation, either by NO_HZ_FULL_ALL at build > time or by nohz_full= at boot time. Needed to avoid interrupting > the guest with host RCU callback invocation. Rik, does your use > case care about guests being interrupted by RCU callback > invocation? (Based on discussion in this thread, my guess is > "yes".) > > o RCU_USER_EQS: Implied by NO_HZ_FULL, and I would have to go look > to see what relation this has to nohz_full=. Needed for RCU to be > able to recognize userspace-execution quiescent states on a given > CPU without disturbing that CPU. Unless I am missing something > subtle, you have to have this for this patch series to make sense. > > If my guesses are correct, the best approach would be to have this > new mode of operation implied by NO_HZ_FULL. I agree. It makes sense to have all three, and all three are enabled in the configuration we use. I cannot think of a case where someone would significantly benefit from just one or two of the above, except maybe for debugging reasons. Having NO_HZ_FULL enable all the above, either through a boot time commandline option, or just by default, would make sense. - -- All rights reversed -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAEBAgAGBQJU2NVpAAoJEM553pKExN6DxxUH/RwpZI6dRYvIQbtY2y93ax5/ Lba4QbmZ6n6AnGXrtlpwEQMSMvLawKqT9ZFSwzKeSarX6Uu4aRCdi8td34ruu9rg hfhv8hD1z15deYc0UPKUCbZrYrIi9uaG/FpioafDmPH+P4T2bFdvn7d/bKIoiaBM T1QA+LNddRxOhtayrIEDH1BnPKgXw9V8f7/mGQPmRf+oRz+Hgn6DPpEm0kTbqn+L RkhHNPemJ8bMaIwntAwzEklgnhkON9zOBe/XFof0lC+SdhtlAVkXPvX+cXiZMQZt 1rEqxK1+S9beeKVX65mLtxZg2omz46qz7SQRUGf3If2wHZXQtIRnvtlyCsDu/AI= =gj2E -----END PGP SIGNATURE----- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/