lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.64.0706111205330.19316@schroedinger.engr.sgi.com>
Date:	Mon, 11 Jun 2007 12:07:38 -0700 (PDT)
From:	Christoph Lameter <clameter@....com>
To:	Eric Sesterhenn / Snakebyte <snakebyte@....de>
cc:	linux-kernel@...r.kernel.org
Subject: Re: profiling likely/unlikely in slub.c

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

> 
> +unlikely | 40969931|  6228144  __slab_free()@:mm/slub.c@...6
> +unlikely | 47198075|        0  __slab_free()@:mm/slub.c@...9
> -likely   |        0| 47198075  slab_free()@:mm/slub.c@...0
> +unlikely | 47280864|        0  __slab_alloc()@:mm/slub.c@...5
> +unlikely |    26857|        0  new_slab()@:mm/slub.c@...7
> +unlikely | 47280864|        0  slab_alloc()@:mm/slub.c@...7
> 
> 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 majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ