On 2019-04-12 18:22:13 [+0200], Borislav Petkov wrote: > On Fri, Apr 12, 2019 at 05:24:37PM +0200, Sebastian Andrzej Siewior wrote: > > Isn't it called from fpu__clear()? > > $ git grep trace_x86_fpu_activate_state > $ > > all 23 patches applied. Grepping the later patches doesn't give > trace_x86_fpu_activate_state() either. > > > > Shouldn't it be called below, before fpregs_activate() because > > > fpregs_activate() does trace_x86_fpu_regs_activated()? > > > > Why? fpu__initialize() wipes the FPU state and starts from zero. > > fpregs_mark_activate() on the other hand marks this FPU context is > > currently active. > > Well, then the naming still needs adjusting. > > "trace_x86_fpu_activate_state" reads to me like the state is being > activated here, at the call site. And fpregs_mark_activate() marks which > *fpu is the active one. bah. You are referring to trace_x86_fpu_activate_state. I parsed this as fpu__initialize(). Sorry for that. trace_x86_fpu_activate_state is unused and we should do something about it. Adding it to fpregs_mark_activate() seems to make sense. We we also have this: fpregs_mark_activate() fpregs_activate() trace_x86_fpu_regs_activated() (as you mentioned) so we would always record both trace points. Therefore I would suggest to remove it. Maybe we could add a new one to __fpregs_load_activate() one in case we avoid loading registers because of fpregs_state_valid(). This might make sense. Sebastian