Messages in this thread | | | From | Andy Lutomirski <> | Date | Mon, 22 Jun 2020 11:40:38 -0700 | Subject | Re: [PATCH 1/2] x86/fpu: Reset MXCSR to default in kernel_fpu_begin() |
| |
On Mon, Jun 22, 2020 at 11:38 AM Dave Hansen <dave.hansen@intel.com> wrote: > > On 6/22/20 11:33 AM, Andy Lutomirski wrote: > > Suppose you do: > > > > double x = 1.0; > > > > kernel_fpu_begin(); > > > > x += 2.0; > > > > We want to make sure that GCC puts things in the right order. I > > suppose that even a memory clobber is insufficient here, though. > > Even with CONFIG_PREEMPT disabled, we still have: > > #define preempt_disable() barrier() > > I don't see us supporting preemptible kernel_fpu regions any time soon, > so shouldn't this be sufficient now and for a long time?
That's on the wrong end of the function. It'sL
preempt_disable(); LDMXCSR; <-- some kind of barrier here might be nice
--Andy
| |