Re: [PATCH] jump_label: unlikely(x) > 0

2013-10-15 Thread Ingo Molnar

* 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

2013-10-15 Thread H. Peter Anvin
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

2013-10-11 Thread Andrew Morton
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

2013-10-11 Thread Roel Kluin
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/