Re: [PATCH v4] x86: load FPU registers on return to userland

From: Jason A. Donenfeld
Date: Sun Nov 11 2018 - 22:26:54 EST


On Sun, Nov 11, 2018 at 10:02 PM Wanpeng Li <kernellwp@xxxxxxxxx> wrote:
> On Thu, 8 Nov 2018 at 03:55, Sebastian Andrzej Siewior
> <bigeasy@xxxxxxxxxxxxx> wrote:
> >
> > This is a refurbished series originally started by by Rik van Riel. The
> > goal is load the FPU registers on return to userland and not on every
> > context switch. By this optimisation we can:
> > - avoid loading the registers if the task stays in kernel and does
> > not return to userland
> > - make kernel_fpu_begin() cheaper: it only saves the registers on the
> > first invocation. The second invocation does not need save them again.
>
> Do you have any performance data?

In WireGuard, the savings in not having to
save/restore/save/restore/save/restore the registers winds up being in
the order of hundreds of megabits.