On 01/15/2019 04:48 AM, Thomas Gleixner wrote: > On Mon, 14 Jan 2019, Waiman Long wrote: >> On 01/11/2019 02:52 PM, Thomas Gleixner wrote: >>> On Wed, 19 Dec 2018, Waiman Long wrote: >>> >>>> With the default SPEC_STORE_BYPASS_SECCOMP/SPEC_STORE_BYPASS_PRCTL mode, >>>> the TIF_SSBD bit will be inherited when a new task is fork'ed or cloned. >>>> >>>> As only certain class of applications (like Java) requires disabling >>>> speculative store bypass for security purpose, it may not make sense to >>>> allow the TIF_SSBD bit to be inherited across execve() boundary where the >>>> new application may not need SSBD at all and is probably not aware that >>>> SSBD may have been turned on. This may cause an unnecessary performance >>>> loss of up to 20% in some cases. >>> Lot's of MAY's here. Aside of that this fundamentally changes the >>> behaviour. I'm not really a fan of doing that. >>> >>> If there are good reasons to have a non-inherited variant, then we rather >>> introduce that instead of changing the existing semantics without a way for >>> existing userspace to notice. >> I understand your point. How about adding a ",noexec" auxillary option >> to the spec_store_bypass_disable command line to activate this new >> behavior without changing the default. Will that be acceptable? > I'd rather have an explicit PR_SPEC_DISABLE_NOEXEC argument for the PRCTL > so you can decide at the application level what kind of behaviour you want. > > Thanks, > > tglx Thanks for the advice. Will work on a v2 to be sent out later this week. Cheers, Longman