lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Mon, 09 Feb 2015 10:42:33 -0500
From:	Rik van Riel <riel@...hat.com>
To:	paulmck@...ux.vnet.ibm.com,
	Frederic Weisbecker <fweisbec@...il.com>
CC:	kvm@...r.kernel.org, borntraeger@...ibm.com,
	linux-kernel@...r.kernel.org, mtosatti@...hat.com,
	mingo@...nel.orgm, ak@...ux.intel.com, oleg@...hat.com,
	masami.hiramatsu.pt@...achi.com, lcapitulino@...hat.com,
	pbonzini@...hat.com
Subject: Re: [PATCH 1/5] rcu,nohz: add state parameter to context_tracking_user_enter/exit

-----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@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ