Messages in this thread Patch in this message | | | Date | Thu, 29 Oct 2020 18:43:02 +0100 | From | Peter Zijlstra <> | Subject | Re: [PATCH v4 17/19] sched: Add migrate_disable() tracepoints |
| |
On Thu, Oct 29, 2020 at 04:27:26PM +0000, Valentin Schneider wrote: > > 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.
I can put them in the preempt_disable() section I suppose, but these tracers should be looking at task_sched_runtime(), not walltime, and then the preemption doesn't matter.
Also, a distinct lack of actual users atm.. :/
| |