From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Lutomirski Subject: Re: [PATCH v9 00/27] x86: load FPU registers on return to userland Date: Thu, 4 Apr 2019 07:26:37 -0700 Message-ID: References: <20190403164156.19645-1-bigeasy@linutronix.de> <20190404141409.upfk5z4re3pyvxzn@linutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Cc: David Laight , "linux-kernel@vger.kernel.org" , "x86@kernel.org" , Andy Lutomirski , Paolo Bonzini , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , "kvm@vger.kernel.org" , "Jason A. Donenfeld" , Rik van Riel , Dave Hansen To: Sebastian Andrzej Siewior Return-path: In-Reply-To: <20190404141409.upfk5z4re3pyvxzn@linutronix.de> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On Thu, Apr 4, 2019 at 7:14 AM Sebastian Andrzej Siewior wrote: > > On 2019-04-04 14:01:43 [+0000], David Laight wrote: > > From: Sebastian Andrzej Siewior > > > Sent: 03 April 2019 17:41 > > ... > > > To access the FPU registers in kernel we need: > > > - disable preemption to avoid that the scheduler switches tasks. By > > > doing so it would set TIF_NEED_FPU_LOAD and the FPU registers would be > > > not valid. > > > - disable BH because the softirq might use kernel_fpu_begin() and then > > > set TIF_NEED_FPU_LOAD instead loading the FPU registers on completion. > > > > Is there a possible optimisation here for kernel threads? > > Since there is no 'user FP state' the 'kernel FP state' can > > be saved by a task switch or softirq. > > There is no such thing as "kernel FP state" that is saved. > I think that David was asking whether we could make kernel_fpu_begin() regions sometimes be preemptible. The answer is presumably yes, but I think that should be a separate effort, and it should be justified with improved performance above and beyond what we get with Jason's simd_get() stuff.