Re: [RFC][PATCH] signal: replace !likely with unlikely!

2014-09-13 Thread Guenter Roeck

On 09/13/2014 03:04 AM, Richard Weinberger wrote:

Am 13.09.2014 04:48, schrieb Li RongQing:

I did not test, how to test it?


Compare the object files of both variants to find out whether both create
semantically equivalent code and whether the un/likely have an effect.
i.e. objdump -S -d kernel/signal.o
I guess you can just remove the likely as gcc is smart enough to detect the "goto 
ret;"
as an unlikely taken branch.


Or just write similar test code and observe the result.

When you are doing that, you might learn that if "(!likely(expression))"
is _not_ the same as "if (unlikely(!expression))".

Guenter

--
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: [RFC][PATCH] signal: replace !likely with unlikely!

2014-09-13 Thread Richard Weinberger
Am 13.09.2014 04:48, schrieb Li RongQing:
> I did not test, how to test it?

Compare the object files of both variants to find out whether both create
semantically equivalent code and whether the un/likely have an effect.
i.e. objdump -S -d kernel/signal.o
I guess you can just remove the likely as gcc is smart enough to detect the 
"goto ret;"
as an unlikely taken branch.

Thanks,
//richard
--
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: [RFC][PATCH] signal: replace !likely with unlikely!

2014-09-13 Thread Richard Weinberger
Am 13.09.2014 04:48, schrieb Li RongQing:
 I did not test, how to test it?

Compare the object files of both variants to find out whether both create
semantically equivalent code and whether the un/likely have an effect.
i.e. objdump -S -d kernel/signal.o
I guess you can just remove the likely as gcc is smart enough to detect the 
goto ret;
as an unlikely taken branch.

Thanks,
//richard
--
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: [RFC][PATCH] signal: replace !likely with unlikely!

2014-09-13 Thread Guenter Roeck

On 09/13/2014 03:04 AM, Richard Weinberger wrote:

Am 13.09.2014 04:48, schrieb Li RongQing:

I did not test, how to test it?


Compare the object files of both variants to find out whether both create
semantically equivalent code and whether the un/likely have an effect.
i.e. objdump -S -d kernel/signal.o
I guess you can just remove the likely as gcc is smart enough to detect the goto 
ret;
as an unlikely taken branch.


Or just write similar test code and observe the result.

When you are doing that, you might learn that if (!likely(expression))
is _not_ the same as if (unlikely(!expression)).

Guenter

--
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: [RFC][PATCH] signal: replace !likely with unlikely!

2014-09-12 Thread Li RongQing
I did not test, how to test it?

On Fri, Sep 12, 2014 at 3:18 AM, Guenter Roeck  wrote:
> On Thu, Sep 11, 2014 at 08:48:16AM +0800, roy.qing...@gmail.com wrote:
>> From: Li RongQing 
>>
>> !likely() is hard to be understood, and I do not know if compiler can
>> optimise this condition, but unlikely(!()) is clear
>>
>> Signed-off-by: Li RongQing 
>> ---
>>  kernel/signal.c |2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/kernel/signal.c b/kernel/signal.c
>> index 8f0876f..6156cfa 100644
>> --- a/kernel/signal.c
>> +++ b/kernel/signal.c
>> @@ -1571,7 +1571,7 @@ int send_sigqueue(struct sigqueue *q, struct 
>> task_struct *t, int group)
>>   BUG_ON(!(q->flags & SIGQUEUE_PREALLOC));
>>
>>   ret = -1;
>> - if (!likely(lock_task_sighand(t, )))
>> + if (unlikely(!lock_task_sighand(t, )))
>
> I wonder if you tested this code. Seems to be unlikely (punt not intended).
>
> Guenter
>
>>   goto ret;
>>
>>   ret = 1; /* the signal is ignored */
>> --
>> 1.7.10.4
>>
>> --
>> 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/
>>
>>
--
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: [RFC][PATCH] signal: replace !likely with unlikely!

2014-09-12 Thread Li RongQing
I did not test, how to test it?

On Fri, Sep 12, 2014 at 3:18 AM, Guenter Roeck li...@roeck-us.net wrote:
 On Thu, Sep 11, 2014 at 08:48:16AM +0800, roy.qing...@gmail.com wrote:
 From: Li RongQing roy.qing...@gmail.com

 !likely() is hard to be understood, and I do not know if compiler can
 optimise this condition, but unlikely(!()) is clear

 Signed-off-by: Li RongQing roy.qing...@gmail.com
 ---
  kernel/signal.c |2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

 diff --git a/kernel/signal.c b/kernel/signal.c
 index 8f0876f..6156cfa 100644
 --- a/kernel/signal.c
 +++ b/kernel/signal.c
 @@ -1571,7 +1571,7 @@ int send_sigqueue(struct sigqueue *q, struct 
 task_struct *t, int group)
   BUG_ON(!(q-flags  SIGQUEUE_PREALLOC));

   ret = -1;
 - if (!likely(lock_task_sighand(t, flags)))
 + if (unlikely(!lock_task_sighand(t, flags)))

 I wonder if you tested this code. Seems to be unlikely (punt not intended).

 Guenter

   goto ret;

   ret = 1; /* the signal is ignored */
 --
 1.7.10.4

 --
 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/


--
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: [RFC][PATCH] signal: replace !likely with unlikely!

2014-09-11 Thread Guenter Roeck
On Thu, Sep 11, 2014 at 08:48:16AM +0800, roy.qing...@gmail.com wrote:
> From: Li RongQing  
> 
> !likely() is hard to be understood, and I do not know if compiler can
> optimise this condition, but unlikely(!()) is clear
> 
> Signed-off-by: Li RongQing 
> ---
>  kernel/signal.c |2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/kernel/signal.c b/kernel/signal.c
> index 8f0876f..6156cfa 100644
> --- a/kernel/signal.c
> +++ b/kernel/signal.c
> @@ -1571,7 +1571,7 @@ int send_sigqueue(struct sigqueue *q, struct 
> task_struct *t, int group)
>   BUG_ON(!(q->flags & SIGQUEUE_PREALLOC));
>  
>   ret = -1;
> - if (!likely(lock_task_sighand(t, )))
> + if (unlikely(!lock_task_sighand(t, )))

I wonder if you tested this code. Seems to be unlikely (punt not intended).

Guenter

>   goto ret;
>  
>   ret = 1; /* the signal is ignored */
> -- 
> 1.7.10.4
> 
> --
> 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/
> 
> 
--
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: [RFC][PATCH] signal: replace !likely with unlikely!

2014-09-11 Thread Guenter Roeck
On Thu, Sep 11, 2014 at 08:48:16AM +0800, roy.qing...@gmail.com wrote:
 From: Li RongQing roy.qing...@gmail.com 
 
 !likely() is hard to be understood, and I do not know if compiler can
 optimise this condition, but unlikely(!()) is clear
 
 Signed-off-by: Li RongQing roy.qing...@gmail.com
 ---
  kernel/signal.c |2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/kernel/signal.c b/kernel/signal.c
 index 8f0876f..6156cfa 100644
 --- a/kernel/signal.c
 +++ b/kernel/signal.c
 @@ -1571,7 +1571,7 @@ int send_sigqueue(struct sigqueue *q, struct 
 task_struct *t, int group)
   BUG_ON(!(q-flags  SIGQUEUE_PREALLOC));
  
   ret = -1;
 - if (!likely(lock_task_sighand(t, flags)))
 + if (unlikely(!lock_task_sighand(t, flags)))

I wonder if you tested this code. Seems to be unlikely (punt not intended).

Guenter

   goto ret;
  
   ret = 1; /* the signal is ignored */
 -- 
 1.7.10.4
 
 --
 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/
 
 
--
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/


[RFC][PATCH] signal: replace !likely with unlikely!

2014-09-10 Thread roy . qing . li
From: Li RongQing  

!likely() is hard to be understood, and I do not know if compiler can
optimise this condition, but unlikely(!()) is clear

Signed-off-by: Li RongQing 
---
 kernel/signal.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/signal.c b/kernel/signal.c
index 8f0876f..6156cfa 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -1571,7 +1571,7 @@ int send_sigqueue(struct sigqueue *q, struct task_struct 
*t, int group)
BUG_ON(!(q->flags & SIGQUEUE_PREALLOC));
 
ret = -1;
-   if (!likely(lock_task_sighand(t, )))
+   if (unlikely(!lock_task_sighand(t, )))
goto ret;
 
ret = 1; /* the signal is ignored */
-- 
1.7.10.4

--
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/


[RFC][PATCH] signal: replace !likely with unlikely!

2014-09-10 Thread roy . qing . li
From: Li RongQing roy.qing...@gmail.com 

!likely() is hard to be understood, and I do not know if compiler can
optimise this condition, but unlikely(!()) is clear

Signed-off-by: Li RongQing roy.qing...@gmail.com
---
 kernel/signal.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/signal.c b/kernel/signal.c
index 8f0876f..6156cfa 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -1571,7 +1571,7 @@ int send_sigqueue(struct sigqueue *q, struct task_struct 
*t, int group)
BUG_ON(!(q-flags  SIGQUEUE_PREALLOC));
 
ret = -1;
-   if (!likely(lock_task_sighand(t, flags)))
+   if (unlikely(!lock_task_sighand(t, flags)))
goto ret;
 
ret = 1; /* the signal is ignored */
-- 
1.7.10.4

--
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/