Messages in this thread | | | Subject | Re: Lazy FPU restoration / moving kernel_fpu_end() to context switch | From | Rik van Riel <> | Date | Wed, 11 Jul 2018 16:10:33 -0400 |
| |
On Wed, 2018-07-11 at 18:28 +0200, Sebastian Andrzej Siewior wrote: > On 2018-06-15 22:33:47 [+0200], Jason A. Donenfeld wrote: > > On Fri, Jun 15, 2018 at 8:32 PM Andy Lutomirski <luto@kernel.org> > > wrote: > > > quite in the form you imagined. The idea that we've tossed > > > around is > > > to restore FPU state on return to user mode. Roughly, we'd > > > introduce > > > a new thread flag TIF_FPU_UNLOADED (name TBD). > > > prepare_exit_to_usermode() would notice this flag, copy the > > > fpstate to > > > fpregs, and clear the flag. (Or maybe exit_to_usermode_loop() -- > > > No > > > one has quite thought it through, but I think it should be > > > outside the > > > loop.) We'd update all the FPU accessors to understand the flag. > > > > Yes! This is exactly what I was thinking. Then those calls to > > begin() > > and end() could be placed as close to the actual FPU usage as > > possible. > > I was thinking about this myself. Did anyone try to hack something in > the meantime? I might want to look into this, too :)
I have implemented this before, back before the big rewrite of the syscall entry and exit code.
It seemed to work fine.
-- All Rights Reversed.[unhandled content-type:application/pgp-signature] | |