• Yang Jihong's avatar
    perf sched: Move curr_pid and cpu_last_switched initialization to perf_sched__{lat|map|replay}() · bd2cdf26
    Yang Jihong authored
    The curr_pid and cpu_last_switched are used only for the
    'perf sched replay/latency/map'. Put their initialization in
    perf_sched__{lat|map|replay () to reduce unnecessary actions in other
    commands.
    
    Simple functional testing:
    
      # perf sched record perf bench sched messaging
      # Running 'sched/messaging' benchmark:
      # 20 sender and receiver processes per group
      # 10 groups == 400 processes run
    
           Total time: 0.209 [sec]
      [ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 16.456 MB perf.data (147907 samples) ]
    
      # perf sched lat
    
       -------------------------------------------------------------------------------------------------------------------------------------------
        Task                  |   Runtime ms  | Switches | Avg delay ms    | Max delay ms    | Max delay start           | Max delay end          |
       -------------------------------------------------------------------------------------------------------------------------------------------
        sched-messaging:(401) |   2990.699 ms |    38705 | avg:   0.661 ms | max:  67.046 ms | max start: 456532.624830 s | max end: 456532.691876 s
        qemu-system-x86:(7)   |    179.764 ms |     2191 | avg:   0.152 ms | max:  21.857 ms | max start: 456532.576434 s | max end: 456532.598291 s
        sshd:48125            |      0.522 ms |        2 | avg:   0.037 ms | max:   0.046 ms | max start: 456532.514610 s | max end: 456532.514656 s
      <SNIP>
        ksoftirqd/11:82       |      0.063 ms |        1 | avg:   0.005 ms | max:   0.005 ms | max start: 456532.769366 s | max end: 456532.769371 s
        kworker/9:0-mm_:34624 |      0.233 ms |       20 | avg:   0.004 ms | max:   0.007 ms | max start: 456532.690804 s | max end: 456532.690812 s
        migration/13:93       |      0.000 ms |        1 | avg:   0.004 ms | max:   0.004 ms | max start: 456532.512669 s | max end: 456532.512674 s
       -----------------------------------------------------------------------------------------------------------------
        TOTAL:                |   3180.750 ms |    41368 |
       ---------------------------------------------------
    
      # echo $?
      0
    
      # perf sched map
        *A0                                                               456532.510141 secs A0 => migration/0:15
        *.                                                                456532.510171 secs .  => swapper:0
         .  *B0                                                           456532.510261 secs B0 => migration/1:21
         .  *.                                                            456532.510279 secs
      <SNIP>
         L7  L7  L7  L7  L7  L7  L7  L7  L7  L7  L7 *L7  .   .   .   .    456532.785979 secs
         L7  L7  L7  L7  L7  L7  L7  L7  L7  L7  L7  L7 *L7  .   .   .    456532.786054 secs
         L7  L7  L7  L7  L7  L7  L7  L7  L7  L7  L7  L7  L7 *L7  .   .    456532.786127 secs
         L7  L7  L7  L7  L7  L7  L7  L7  L7  L7  L7  L7  L7  L7 *L7  .    456532.786197 secs
         L7  L7  L7  L7  L7  L7  L7  L7  L7  L7  L7  L7  L7  L7  L7 *L7   456532.786270 secs
      # echo $?
      0
    
      # perf sched replay
      run measurement overhead: 108 nsecs
      sleep measurement overhead: 66473 nsecs
      the run test took 1000002 nsecs
      the sleep test took 1082686 nsecs
      nr_run_events:        49334
      nr_sleep_events:      50054
      nr_wakeup_events:     34701
      target-less wakeups:  165
      multi-target wakeups: 766
      task      0 (             swapper:         0), nr_events: 15419
      task      1 (             swapper:         1), nr_events: 1
      task      2 (             swapper:         2), nr_events: 1
      <SNIP>
      task    715 (     sched-messaging:    110248), nr_events: 1438
      task    716 (     sched-messaging:    110249), nr_events: 512
      task    717 (     sched-messaging:    110250), nr_events: 500
      task    718 (     sched-messaging:    110251), nr_events: 537
      task    719 (     sched-messaging:    110252), nr_events: 823
      ------------------------------------------------------------
      #1  : 1325.288, ravg: 1325.29, cpu: 7823.35 / 7823.35
      #2  : 1363.606, ravg: 1329.12, cpu: 7655.53 / 7806.56
      #3  : 1349.494, ravg: 1331.16, cpu: 7544.80 / 7780.39
      #4  : 1311.488, ravg: 1329.19, cpu: 7495.13 / 7751.86
      #5  : 1309.902, ravg: 1327.26, cpu: 7266.65 / 7703.34
      #6  : 1309.535, ravg: 1325.49, cpu: 7843.86 / 7717.39
      #7  : 1316.482, ravg: 1324.59, cpu: 7854.41 / 7731.09
      #8  : 1366.604, ravg: 1328.79, cpu: 7955.81 / 7753.57
      #9  : 1326.286, ravg: 1328.54, cpu: 7466.86 / 7724.90
      #10 : 1356.653, ravg: 1331.35, cpu: 7566.60 / 7709.07
      # echo $?
      0
    Signed-off-by: default avatarYang Jihong <yangjihong1@huawei.com>
    Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
    Link: https://lore.kernel.org/r/20240206083228.172607-5-yangjihong1@huawei.com
    bd2cdf26
builtin-sched.c 92.2 KB