From: Rik van Riel <riel@redhat.com>
To: paulmck@linux.vnet.ibm.com, Frederic Weisbecker <fweisbec@gmail.com>
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
Date: Mon, 09 Feb 2015 10:42:33 -0500 [thread overview]
Message-ID: <54D8D569.4000008@redhat.com> (raw)
In-Reply-To: <20150207200624.GZ5418@linux.vnet.ibm.com>
-----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-----
next prev parent reply other threads:[~2015-02-09 15:42 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-05 20:23 [PATCH v2 0/5] rcu,nohz,kvm: use RCU extended quiescent state when running KVM guest riel
2015-02-05 20:23 ` [PATCH 1/5] rcu,nohz: add state parameter to context_tracking_user_enter/exit riel
2015-02-05 23:55 ` Paul E. McKenney
2015-02-06 10:15 ` Paolo Bonzini
2015-02-06 13:41 ` Paul E. McKenney
2015-02-06 17:22 ` Frederic Weisbecker
2015-02-06 18:20 ` Rik van Riel
2015-02-06 18:23 ` Frederic Weisbecker
2015-02-06 18:51 ` Rik van Riel
2015-02-06 23:15 ` Frederic Weisbecker
2015-02-07 3:53 ` Rik van Riel
2015-02-07 6:34 ` Paul E. McKenney
2015-02-07 7:14 ` Paul E. McKenney
2015-02-07 8:30 ` Frederic Weisbecker
2015-02-07 11:29 ` Rik van Riel
2015-02-07 20:06 ` Paul E. McKenney
2015-02-09 15:42 ` Rik van Riel [this message]
2015-02-05 20:23 ` [PATCH 2/5] rcu,nohz: run vtime_user_enter/exit only when state == IN_USER riel
2015-02-05 20:23 ` [PATCH 3/5] nohz,kvm: export context_tracking_user_enter/exit riel
2015-02-05 23:55 ` Paul E. McKenney
2015-02-05 20:23 ` [PATCH 4/5] kvm,rcu,nohz: use RCU extended quiescent state when running KVM guest riel
2015-02-05 23:56 ` Paul E. McKenney
2015-02-06 18:01 ` Frederic Weisbecker
2015-02-06 23:24 ` Frederic Weisbecker
2015-02-05 20:23 ` [PATCH 5/5] nohz: add stub context_tracking_is_enabled riel
2015-02-05 23:56 ` Paul E. McKenney
2015-02-06 13:46 ` [PATCH v2 0/5] rcu,nohz,kvm: use RCU extended quiescent state when running KVM guest Frederic Weisbecker
2015-02-06 13:50 ` Paolo Bonzini
2015-02-06 16:19 ` Paul E. McKenney
2015-02-06 18:09 ` Frederic Weisbecker
2015-02-06 14:56 ` Rik van Riel
2015-02-06 18:05 ` Frederic Weisbecker
2015-02-06 15:00 ` Christian Borntraeger
2015-02-06 18:20 ` Frederic Weisbecker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=54D8D569.4000008@redhat.com \
--to=riel@redhat.com \
--cc=ak@linux.intel.com \
--cc=borntraeger@de.ibm.com \
--cc=fweisbec@gmail.com \
--cc=kvm@vger.kernel.org \
--cc=lcapitulino@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=masami.hiramatsu.pt@hitachi.com \
--cc=mingo@kernel.orgm \
--cc=mtosatti@redhat.com \
--cc=oleg@redhat.com \
--cc=paulmck@linux.vnet.ibm.com \
--cc=pbonzini@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.