On Thu, Mar 22, 2018 at 07:08:25PM +0300, Alexey Budankov wrote: > > Implementation of exposing context-switch-out type event as a part > of PERF_RECORD_SWITCH[_CPU_WIDE] record. > > Introduced types of events assumed to be: > a) preempt: when task->state == TASK_RUNNING > b) yield: !preempt, encoding is done using new bit > PERF_RECORD_MISC_SWITCH_OUT_YIELD like this:
A !preempt context switch isn't nessecarily a yield; please don't use that name, it means something quite specific and this isn't it. Specifically, on Linux yield() doesn't actually change task->state, so when task->state is set !0 it _cannot_ have been yield. I would invert the thing and call the preempt one SWITCH_OUT_PREEMPT.