• Guo Ren's avatar
    csky: Add context tracking support · bdcd93ef
    Guo Ren authored
    This patch support context tracking with no hz full.
    
    Here is the test result with dynticks-testing (see tick_stop):
    
     cat /sys/kernel/debug/tracing/per_cpu/cpu0/trace
     tracer: nop
    
     entries-in-buffer/entries-written: 356/356   #P:1
    
                                  _-----=> irqs-off
                                 / _----=> need-resched
                                | / _---=> hardirq/softirq
                                || / _--=> preempt-depth
                                ||| /     delay
               TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
                  | |       |   ||||       |         |
    ...
              sleep-192   [000] d.h.   167.088270: hrtimer_expire_entry: hrtimer=(ptrval) function=tick_sched_timer now=166436355700
              sleep-192   [000] d.h.   167.092279: hrtimer_expire_entry: hrtimer=(ptrval) function=tick_sched_timer now=166440365700
             <idle>-0     [000] d.h2   167.096492: hrtimer_expire_entry: hrtimer=(ptrval) function=tick_sched_timer now=166444578400
             <idle>-0     [000] d..1   167.097876: tick_stop: success=1 dependency=NONE
                                                   ^^^^^^^^^
             <idle>-0     [000] d.h1   168.818206: hrtimer_expire_entry: hrtimer=(ptrval) function=tick_sched_timer now=168166280900
       kworker/u2:0-7     [000] ....   168.821760: workqueue_execute_start: work struct (ptrval): function wb_workfn
       kworker/u2:0-7     [000] d.h1   168.824464: hrtimer_expire_entry: hrtimer=(ptrval) function=tick_sched_timer now=168172547100
        kworker/0:1-18    [000] ....   168.825053: workqueue_execute_start: work struct (ptrval): function vmstat_update
        kworker/0:1-18    [000] ....   168.825238: workqueue_execute_start: work struct (ptrval): function vmstat_shepherd
        kworker/0:1-18    [000] ....   168.825516: workqueue_execute_start: work struct (ptrval): function neigh_periodic_work
             <idle>-0     [000] d..1   168.826121: tick_stop: success=1 dependency=NONE
       kworker/u2:0-7     [000] ....   169.377327: workqueue_execute_start: work struct (ptrval): function flush_to_ldisc
             <idle>-0     [000] d..1   169.379832: tick_stop: success=1 dependency=NONE
       kworker/u2:0-7     [000] ....   169.607935: workqueue_execute_start: work struct (ptrval): function flush_to_ldisc
       kworker/u2:0-7     [000] d.h1   169.608148: hrtimer_expire_entry: hrtimer=(ptrval) function=tick_sched_timer now=168956235500
             <idle>-0     [000] d..1   169.608654: tick_stop: success=1 dependency=NONE
    Signed-off-by: default avatarGuo Ren <guoren@linux.alibaba.com>
    Cc: Greentime Hu <greentime.hu@sifive.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    bdcd93ef
entry.S 6.61 KB