Re: profiling likely/unlikely in slub.c

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

 



On Mon, 11 Jun 2007, Eric Sesterhenn / Snakebyte wrote:

> 
> +unlikely | 40969931|  6228144  __slab_free()@:mm/slub.c@1606
> +unlikely | 47198075|        0  __slab_free()@:mm/slub.c@1599
> -likely   |        0| 47198075  slab_free()@:mm/slub.c@1660
> +unlikely | 47280864|        0  __slab_alloc()@:mm/slub.c@1475
> +unlikely |    26857|        0  new_slab()@:mm/slub.c@1107
> +unlikely | 47280864|        0  slab_alloc()@:mm/slub.c@1557
> 
> three of the unlikely cases are caused by "if (unlikely(SlabDebug(page)))"
> if SLUB_DEBUG is turned off, it really is unlikely, since SlabDebug()
> always returns 0, if SLUB_DEBUG is turned on it is likely (not sure if there are
> cases where it can return 0) therefore it makes sense to change this
> to likely for the SLUB_DEBUG case. 
> 
> The following patch changes the SlabDebug() functions to defines, so gcc
> can easily optimize the if away entirely and changes the unlikely() to a
> likely().
> 
> Remaining problem is, that if likely/unlikely profiling is turned on,
> gcc does not optimize away a likely(0), and they still show up in the
> stats... guess heisenbug is involved in this :-)

There is a fundamental misunderstanding here to think that SLUB_DEBUG 
would enable debugging. Not true. Debugging is enabled by booting with
"slub_debug".


It is true that SlabDebug() is always false if !CONFIG_SLUB_DEBUG. That is 
only the case for embedded systems that want to conserve memory.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux