Re: benefits to likely() and unlikely()?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Mar 29, 2008 at 04:03:18AM -0400, Robert P. J. Day wrote:
>   is there somewhere an actual quantification (is that a word?) to the
> benefits of likely() and unlikely() in the kernel code?  i've always
> been curious about what difference those constructs made.  thanks.

They are macros around __builtin_expect(), which can be used to provide
the compiler with branch prediction information. In the kernel, you see
likely()/unlikely() usually used in error handling: most of the times
you don't get an error, so tell the compiler to lay out the code in
such a way that the error handling block becomes a branch and the
normal code flows just straight. Something like:


	if(unlikely(ptr == NULL)) {
		printk(KERN_EMERG "AARGH\n");
		panic();
	}
	
	foo(ptr);


Erik

-- 
Erik Mouw -- mouw@xxxxxxxxxxxx

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux