title: Linux Kernel: likely() vs unlikely()
body: <p>These two methods seem to be extensively used inside linux kernel code. I know the foundations of branch prediction, but I would like to know how these two functions affect the operation of if() statements. Also do they work at the level of CPU instruction pipeline? or is it at a much higher level of abstraction at kernel code level?</p>
  
  <p>Being a starter to linux kernel I would be deeply interested in knowing the internal workings of these two methods. Thanks!</p>