title: What is the concept of vruntime in CFS
body: <p>I have been reading about Linux Kernel and CFS scheduler in the kernel. I came across <em>vruntime</em> (virtual runtime) that is the core concept behind CFS scheduler. I read from “<em>Linux Kernel Development</em>” and also from other blogs on internet but could not understand the basic calculations behind the <em>vruntime</em>. Does <em>vruntime</em> belong to a particular process or does it belong to a group of process with same <em>nice values</em>. What is the <em>weighting factor</em> and how is it calculated? I went through all these concepts but could not understand. Also what is the difference between <em>vruntime</em> and *min_vruntime*?</p>