From: Huacai Chen > Sent: 06 March 2023 10:00 > > Provide kernel_fpu_begin()/kernel_fpu_end() to allow the kernel itself > to use fpu. They can be used by some other kernel components, e.g., the > AMDGPU graphic driver for DCN. > ... > +void kernel_fpu_end(void) > +{ > + if (!this_cpu_read(in_kernel_fpu)) > + return; Shouldn't it be better for that to be a counter? Not sure what anyone else does. > + > + if (!is_fpu_owner()) > + disable_fpu(); > + else > + _restore_fp(¤t->thread.fpu); Does that actual do the restore? You really don't need to do it until 'return to user'. That will speed up a subsequent kernel_fpu_begin(). If fact, couldn't kernel_fpu_end() just be preemt_enable()? David > + > + this_cpu_write(in_kernel_fpu, false); > + preempt_enable(); > +} > +EXPORT_SYMBOL(kernel_fpu_end); > -- > 2.39.1 - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)