Delay calculation calibrate.c

Discussion in 'Kernel Questions' started by vtapas, Apr 9, 2010.

  1. vtapas

    vtapas New Member

    Well its a very simple problem I am not clear with some C syntax I am reading C and other books and I hope I shall be able to figure it out any ways but if some one feels I should be clear of some thing let me know I am not clear with the working of calibrate.c

    I will quote the important lines of code that I think are confusing me and explain the aspects of them that I think I don't understand.


    Code:
    loops_per_jiffy = (1 << 12); /* Initial approximation = 4096 */
    The choice of number 4096
    power of 2 that is 12 why is that choosen.

    Secondly
    http://lxr.linux.no/#linux+v2.6.33/init/calibrate.c#L54
    In comments it is mentioning

    So, we do
    * 1. pre_start <- When we are sure that jiffy switch hasn't happened
    * 2. check jiffy switch
    * 3. start <- timer value before or after jiffy switch
    * 4. post_start <- When we are sure that jiffy switch has happened
    What is all that pre_start and why is it needed to be used over here?

    Here is some thing which I am wondering not because of logic in same program
    while (ticks == jiffies);/* Wait till the start of next jiffy */

    Till the start of next jiffy what is the processor busy with or how is the delay introduced here?Not the mathematical calculation for udelay or ndelay.
    May be I am not clear with what I should search for.
     

Share This Page