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

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

 



On 3/30/08, Robert P. J. Day <rpjday@xxxxxxxxxxxxxx> wrote:
> On Sun, 30 Mar 2008, Erik Mouw wrote:
>
>  > 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);
>
>
> oh, i realize what they *represent*.  what i was curious about was the
>  actual numerical *benefit*.  as in, performance analysis and how much
>  of a difference it really makes.  did someone do any benchmarking?
>
>
>  rday
>  --
>
>  ========================================================================
>  Robert P. J. Day
>  Linux Consulting, Training and Annoying Kernel Pedantry:
>     Have classroom, will lecture.
>
>  http://crashcourse.ca                          Waterloo, Ontario, CANADA
>  ========================================================================
>
>  --
>  To unsubscribe from this list: send an email with
>  "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
>  Please read the FAQ at http://kernelnewbies.org/FAQ
>
>

Robert,
You should probably ask this on a gcc list, I think they are more
likely to have the actual numbers.

-- 
What this world needs is a good five-dollar plasma weapon.

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ


[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