Messages in this thread | | | From | Andy Lutomirski <> | Date | Fri, 16 Dec 2016 10:34:32 -0800 | Subject | Re: [patch 3/3] x86/process: Optimize TIF_NOTSC switch |
| |
On Fri, Dec 16, 2016 at 12:50 AM, Thomas Gleixner <tglx@linutronix.de> wrote: > On Thu, 15 Dec 2016, Andy Lutomirski wrote: >> On Thu, Dec 15, 2016 at 8:44 AM, Thomas Gleixner <tglx@linutronix.de> wrote: >> > +static inline void cr4_toggle_bits(unsigned long mask) >> > +{ >> > + unsigned long cr4; >> > + >> > + cr4 = this_cpu_read(cpu_tlbstate.cr4); >> > + cr4 ^= mask; >> > + this_cpu_write(cpu_tlbstate.cr4, cr4); >> > + __write_cr4(cr4); >> > +} >> >> This scares me for the same reason as BTF, although this should at >> least be less fragile. But how about: > > If that is fragile then all cr4 manipulation code is fragile because it > relies on cpu_tlbstate.cr4. The TIF flag and that per cpu thing are kept in > sync.
True.
| |