lkml.org 
[lkml]   [2007]   [Feb]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectCPU load
    Date
    Hello,

    How does the kernel calculates the value it places in `/proc/stat' at
    4th position (i.e. "idle: twiddling thumbs")?

    For background information as to why this question arose in the first
    place read on.

    While writing the code dealing with video acquisition/processing at
    work noticed that what top(1) (and every other tool that uses
    `/proc/stat' or `/proc/uptime') shows some very strange results.

    Top claimed that the system running one version of the code[A] is
    idling more often than the code[B] doing the same thing but more
    cleverly. After some head scratching one of my colleagues suggested a
    simple test that was implemented in a few minutes.

    The test consisted of a counter that incremented in an endless loop
    also after certain period of time had elapsed it printed the value of
    the counter. Running this test (with priority set to the lowest
    possible level) with code[A] and code[B] confirmed that code[B] is
    indeed faster than code[A], in a sense that the test made more forward
    progress while code[B] is running.

    Hard-coding some things (i.e. the value of the counter after counting
    for the duration of one period on completely idle system) we extended
    the test to show the percentage of CPU that was utilized. This never
    matched the value that top presented us with.

    Later small kernel module was developed that tried to time how much
    time is spent in the idle handler inside the kernel and exported this
    information to the user-space. The results were consistent with our
    expectations and the output of the test utility.

    Two more points.

    a. In the past (again video processing context) i have witnessed
    `/proc/stat' claiming that CPU utilization is 0% for, say, 20
    seconds followed by 5 seconds of 30% load, and then the cycle
    repeated. According to the methods outlined above the load is
    always at 30%.

    b. In my personal experience difference between `/proc/stat' and
    "reality" can easily reach 40% (think i saw even more than that)

    The module and graphical application that uses it, along with some
    short README and a link to Usenet article dealing with the same
    subject is available at:
    http://www.boblycat.org/~malc/apc

    Thanks


    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-02-12 06:43    [W:2.847 / U:0.112 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site