Re: [PATCH] jump_label: unlikely(x) > 0
* H. Peter Anvin wrote: > On 10/11/2013 01:57 PM, Andrew Morton wrote: > > > > I'm sure this was intended instead ;) The patch doesn't seem to make > > any difference in code generation with my gcc. > > > > Which is odd, because doesn't unlikely() booleanize? It's supposed to: include/linux/compiler.h:#define unlikely_notrace(x) __builtin_expect(!!(x), 0) Thanks, Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] jump_label: unlikely(x) > 0
On 10/11/2013 01:57 PM, Andrew Morton wrote: > > I'm sure this was intended instead ;) The patch doesn't seem to make > any difference in code generation with my gcc. > Which is odd, because doesn't unlikely() booleanize? -hpa -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] jump_label: unlikely(x) > 0
On Fri, 11 Oct 2013 22:50:50 +0200 (CEST) Roel Kluin wrote: > untested, but wasn't this intended instead? > -- > if (unlikely(x) > 0) doesn't seem to help branch prediction > > ... > > --- a/include/linux/jump_label.h > +++ b/include/linux/jump_label.h > @@ -132,14 +132,14 @@ static __always_inline void jump_label_init(void) > > static __always_inline bool static_key_false(struct static_key *key) > { > - if (unlikely(atomic_read(&key->enabled)) > 0) > + if (unlikely(atomic_read(&key->enabled) > 0)) > return true; > return false; > } > > static __always_inline bool static_key_true(struct static_key *key) > { > - if (likely(atomic_read(&key->enabled)) > 0) > + if (likely(atomic_read(&key->enabled) > 0)) > return true; > return false; > } I'm sure this was intended instead ;) The patch doesn't seem to make any difference in code generation with my gcc. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH] jump_label: unlikely(x) > 0
untested, but wasn't this intended instead? -- if (unlikely(x) > 0) doesn't seem to help branch prediction Signed-off-by: Roel Kluin --- diff --git a/include/linux/jump_label.h b/include/linux/jump_label.h index a507907..cf08540 100644 --- a/include/linux/jump_label.h +++ b/include/linux/jump_label.h @@ -132,14 +132,14 @@ static __always_inline void jump_label_init(void) static __always_inline bool static_key_false(struct static_key *key) { - if (unlikely(atomic_read(&key->enabled)) > 0) + if (unlikely(atomic_read(&key->enabled) > 0)) return true; return false; } static __always_inline bool static_key_true(struct static_key *key) { - if (likely(atomic_read(&key->enabled)) > 0) + if (likely(atomic_read(&key->enabled) > 0)) return true; return false; } -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/