• P
    perf: Fix software migrate events · ff303e66
    Peter Zijlstra 提交于
    Stephane asked about PERF_COUNT_SW_CPU_MIGRATIONS and I realized it
    was borken:
    
     > The problem is that the task isn't actually scheduled while its being
     > migrated (obviously), and if its not scheduled, the counters aren't
     > scheduled either, so there's no observing of the fact.
     >
     > A further problem with migrations is that many migrations happen from
     > softirq context, which is nested inside the 'random' task context of
     > whoemever happens to run at that time, similarly for the wakeup
     > migrations triggered from (soft)irq context. All those end up being
     > accounted in the task that's currently running, eg. your 'ls'.
    
    The below cures this by marking a task as migrated and accounting it
    on the subsequent sched_in().
    Signed-off-by: NPeter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: NIngo Molnar <mingo@kernel.org>
    ff303e66
sched.h 88.3 KB