| From | Valentin Schneider <> | Subject | Re: [PATCH v4 17/19] sched: Add migrate_disable() tracepoints | Date | Thu, 29 Oct 2020 16:27:26 +0000 |
| |
On 23/10/20 11:12, Peter Zijlstra wrote: > --- a/kernel/sched/core.c > +++ b/kernel/sched/core.c > @@ -1732,6 +1732,8 @@ void migrate_disable(void) > return; > } > > + trace_sched_migrate_disable_tp(p); > + > preempt_disable(); > this_rq()->nr_pinned++; > p->migration_disabled = 1; > @@ -1764,6 +1766,8 @@ void migrate_enable(void) > p->migration_disabled = 0; > this_rq()->nr_pinned--; > preempt_enable(); > + > + trace_sched_migrate_enable_tp(p);
Don't you want those directly after the ->migration_disabled write? esp. for migrate_enable(), if that preempt_enable() leads to a context switch then the disable->enable deltas won't reflect the kernel view.
That delta may indeed include the time it took to run the stopper and fix the task's affinity on migrate_enable(), but it could include all sorts of other higher-priority tasks.
> } > EXPORT_SYMBOL_GPL(migrate_enable);
|