Re: [PATCH v2 0/3] perf/core: expose thread context switch out event type to user space

From: Peter Zijlstra
Date: Fri Mar 23 2018 - 14:05:45 EST


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.