Messages in this thread | | | Date | Thu, 26 Jan 2017 16:09:55 +0100 | From | Ingo Molnar <> | Subject | Re: [PATCH 1/7] x86/fpu: Simplify the fpu->last_cpu logic and rename it to fpu->fpregs_cached |
| |
* Rik van Riel <riel@redhat.com> wrote:
> On Thu, 2017-01-26 at 12:26 +0100, Ingo Molnar wrote: > > > index c56fb57f2991..7eb2f3041fde 100644 > > --- a/kernel/sched/core.c > > +++ b/kernel/sched/core.c > > @@ -1253,6 +1253,8 @@ void set_task_cpu(struct task_struct *p, > > unsigned int new_cpu) > > p->sched_class->migrate_task_rq(p); > > p->se.nr_migrations++; > > perf_event_task_migrate(p); > > + > > + arch_task_migrate(p); > > } > > > > Does it really count as a "simplification" if you add a > scheduler callback? > > This code does not seem any easier to understand than > the old code...
See the extra commit I added on top:
7deff4369276 x86/fpu: Unify the naming of the FPU register cache validity flags
which makes it clearer, we now have:
->fpregs_owner [bool] fpregs_owner_ctx [ptr]
That are set to 1 and the context pointer when a task with no FPU state is scheduled in and where the state of the previous task is preserved (cached) in the FPU registers - and which FPU register state cache can be invalidated after this by clearing any of the two flags.
That should make its overall meaning clearer, in that they represent a single 'cache' where the cache validity flag is split into two copies, where any of which can be used to invalidate the cache.
Thanks,
Ingo
| |