[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <57F2B9E9.7030806@linux.intel.com>
Date: Mon, 3 Oct 2016 13:04:57 -0700
From: Dave Hansen <dave.hansen@...ux.intel.com>
To: riel@...hat.com, linux-kernel@...r.kernel.org
Cc: x86@...nel.org, tglx@...utronix.de, pbonzini@...hat.com,
mingo@...hat.com, luto@...nel.org, hpa@...or.com, bp@...e.de
Subject: Re: [PATCH RFC 4/5] x86,fpu: lazily skip FPU restore when still
loaded
On 10/01/2016 01:31 PM, riel@...hat.com wrote:
> /*
> + * Check whether an FPU's register set is still loaded in the CPU.
> + */
> +static inline bool fpu_lazy_skip_restore(struct fpu *fpu)
> +{
> + bool still_loaded = (fpu->fpstate_active &&
> + fpu->last_cpu == raw_smp_processor_id() &&
> + __this_cpu_read(fpu_fpregs_owner_ctx) == fpu);
> +
> + fpu->fpregs_active = still_loaded;
> + return still_loaded;
> +}
I wonder if we should call this something more along the lines of
fpregs_activate_fast(), which returns if it managed to do the activation
fast or not. I _think_ that's more along the lines of what it is
actually doing. The fact that it can be lazy is really an
implementation detail.
What are the preempt rules with this thing? This needs to be called in
preempt-disabled contexts, right?
Powered by blists - more mailing lists