• I
    [PATCH] sleep profiling · ece8a684
    Ingo Molnar 提交于
    Implement prof=sleep profiling.  TASK_UNINTERRUPTIBLE sleeps will be taken
    as a profile hit, and every millisecond spent sleeping causes a profile-hit
    for the call site that initiated the sleep.
    
    Sample readprofile output on i386:
    
       306 ps2_sendbyte                               1.3973
       432 call_usermodehelper_keys                   1.9548
       484 ps2_command                                0.6453
       790 __driver_attach                            4.7879
      1593 msleep                                    44.2500
      3976 sync_buffer                               64.1290
      4076 do_lookup                                 12.4648
      8587 sync_page                                122.6714
     20820 total                                      0.0067
    
    (NOTE: architectures need to check whether get_wchan() can be called from
    deep within the wakeup path.)
    
    akpm: we need to mark more functions __sched.  lock_sock(), msleep(), others..
    
    akpm: the contention in do_lookup() is a surprise.  Presumably doing disk
    reads for directory contents while holding i_mutex.
    
    [akpm@osdl.org: various fixes]
    Signed-off-by: NIngo Molnar <mingo@elte.hu>
    Signed-off-by: NAndrew Morton <akpm@osdl.org>
    Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
    ece8a684
profile.c 15.4 KB