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.