All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drivers/android: remove redundant ret variable
@ 2022-01-04 11:35 cgel.zte
  2022-01-04 11:44 ` Greg KH
  0 siblings, 1 reply; 4+ messages in thread
From: cgel.zte @ 2022-01-04 11:35 UTC (permalink / raw)
  To: gregkh
  Cc: arve, tkjos, maco, joel, christian, hridya, surenb, linux-kernel,
	Minghao Chi, Zeal Robot, CGEL ZTE

From: Minghao Chi <chi.minghao@zte.com.cn>

Return value from list_lru_count() directly instead
of taking this in another redundant variable.

Reported-by: Zeal Robot <zealci@zte.com.cn>
Signed-off-by: Minghao Chi <chi.minghao@zte.com.cn>
Signed-off-by: CGEL ZTE <cgel.zte@gmail.com>
---
 drivers/android/binder_alloc.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/android/binder_alloc.c b/drivers/android/binder_alloc.c
index 340515f54498..4f221d1839f4 100644
--- a/drivers/android/binder_alloc.c
+++ b/drivers/android/binder_alloc.c
@@ -1049,18 +1049,14 @@ enum lru_status binder_alloc_free_page(struct list_head *item,
 static unsigned long
 binder_shrink_count(struct shrinker *shrink, struct shrink_control *sc)
 {
-	unsigned long ret = list_lru_count(&binder_alloc_lru);
-	return ret;
+	return list_lru_count(&binder_alloc_lru);
 }
 
 static unsigned long
 binder_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
 {
-	unsigned long ret;
-
-	ret = list_lru_walk(&binder_alloc_lru, binder_alloc_free_page,
+	return list_lru_walk(&binder_alloc_lru, binder_alloc_free_page,
 			    NULL, sc->nr_to_scan);
-	return ret;
 }
 
 static struct shrinker binder_shrinker = {
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] drivers/android: remove redundant ret variable
  2022-01-04 11:35 [PATCH] drivers/android: remove redundant ret variable cgel.zte
@ 2022-01-04 11:44 ` Greg KH
  2022-01-05  9:19   ` 'Re: [PATCH] drivers/android: remove redundant ret variable' cgel.zte
  0 siblings, 1 reply; 4+ messages in thread
From: Greg KH @ 2022-01-04 11:44 UTC (permalink / raw)
  To: cgel.zte
  Cc: arve, tkjos, maco, joel, christian, hridya, surenb, linux-kernel,
	Minghao Chi, Zeal Robot

On Tue, Jan 04, 2022 at 11:35:00AM +0000, cgel.zte@gmail.com wrote:
> From: Minghao Chi <chi.minghao@zte.com.cn>
> 
> Return value from list_lru_count() directly instead
> of taking this in another redundant variable.
> 
> Reported-by: Zeal Robot <zealci@zte.com.cn>
> Signed-off-by: Minghao Chi <chi.minghao@zte.com.cn>
> Signed-off-by: CGEL ZTE <cgel.zte@gmail.com>
> ---
>  drivers/android/binder_alloc.c | 8 ++------
>  1 file changed, 2 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/android/binder_alloc.c b/drivers/android/binder_alloc.c
> index 340515f54498..4f221d1839f4 100644
> --- a/drivers/android/binder_alloc.c
> +++ b/drivers/android/binder_alloc.c
> @@ -1049,18 +1049,14 @@ enum lru_status binder_alloc_free_page(struct list_head *item,
>  static unsigned long
>  binder_shrink_count(struct shrinker *shrink, struct shrink_control *sc)
>  {
> -	unsigned long ret = list_lru_count(&binder_alloc_lru);
> -	return ret;
> +	return list_lru_count(&binder_alloc_lru);
>  }
>  
>  static unsigned long
>  binder_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
>  {
> -	unsigned long ret;
> -
> -	ret = list_lru_walk(&binder_alloc_lru, binder_alloc_free_page,
> +	return list_lru_walk(&binder_alloc_lru, binder_alloc_free_page,
>  			    NULL, sc->nr_to_scan);
> -	return ret;

Is the compiler output any different?

If not, why make this change?

What did you use to test this change is equivalent?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 4+ messages in thread

* 'Re: [PATCH] drivers/android: remove redundant ret variable'
  2022-01-04 11:44 ` Greg KH
@ 2022-01-05  9:19   ` cgel.zte
  2022-01-05 10:09     ` Greg KH
  0 siblings, 1 reply; 4+ messages in thread
From: cgel.zte @ 2022-01-05  9:19 UTC (permalink / raw)
  To: gregkh
  Cc: arve, cgel.zte, chi.minghao, christian, hridya, joel,
	linux-kernel, maco, surenb, tkjos, zealci

I found that there are indeed some optimizations
after removing the redundancy.

For example:

int foo(int a, int b)
{
        int ret;
        ret = a>b ? a: b;
        return ret;
}
int main()
{
        int val;
        val = foo(7,2);
        return 0;
}

and

int foo(int a, int b)
{
        return a>b ? a: b;
}
int main()
{
        int val;
        val = foo(7,2);
        return 0;
}

The corresponding disassembly code is as follows:

    1129:       f3 0f 1e fa             endbr64 
    112d:       55                      push   %rbp
    112e:       48 89 e5                mov    %rsp,%rbp
    1131:       89 7d fc                mov    %edi,-0x4(%rbp)
    1134:       89 75 f8                mov    %esi,-0x8(%rbp)
    1137:       8b 45 fc                mov    -0x4(%rbp),%eax
    113a:       39 45 f8                cmp    %eax,-0x8(%rbp)
    113d:       0f 4d 45 f8             cmovge -0x8(%rbp),%eax
    1141:       5d                      pop    %rbp
    1142:       c3                      retq

and

    1129:       f3 0f 1e fa             endbr64 
    112d:       55                      push   %rbp
    112e:       48 89 e5                mov    %rsp,%rbp
    1131:       89 7d ec                mov    %edi,-0x14(%rbp)
    1134:       89 75 e8                mov    %esi,-0x18(%rbp)
    1137:       8b 45 ec                mov    -0x14(%rbp),%eax
    113a:       39 45 e8                cmp    %eax,-0x18(%rbp)
    113d:       0f 4d 45 e8             cmovge -0x18(%rbp),%eax
    1141:       89 45 fc                mov    %eax,-0x4(%rbp)
    1144:       8b 45 fc                mov    -0x4(%rbp),%eax
    1147:       5d                      pop    %rbp
    1148:       c3                      retq

After removing the redundancy, the compiler does
have some optimizations


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: 'Re: [PATCH] drivers/android: remove redundant ret variable'
  2022-01-05  9:19   ` 'Re: [PATCH] drivers/android: remove redundant ret variable' cgel.zte
@ 2022-01-05 10:09     ` Greg KH
  0 siblings, 0 replies; 4+ messages in thread
From: Greg KH @ 2022-01-05 10:09 UTC (permalink / raw)
  To: cgel.zte
  Cc: arve, chi.minghao, christian, hridya, joel, linux-kernel, maco,
	surenb, tkjos, zealci

On Wed, Jan 05, 2022 at 09:19:42AM +0000, cgel.zte@gmail.com wrote:
> I found that there are indeed some optimizations
> after removing the redundancy.

You stripped off all context, making this impossible to remember what
you are responding to :(

> 
> For example:
> 
> int foo(int a, int b)
> {
>         int ret;
>         ret = a>b ? a: b;
>         return ret;
> }
> int main()
> {
>         int val;
>         val = foo(7,2);
>         return 0;
> }
> 
> and
> 
> int foo(int a, int b)
> {
>         return a>b ? a: b;
> }
> int main()
> {
>         int val;
>         val = foo(7,2);
>         return 0;
> }
> 
> The corresponding disassembly code is as follows:
> 
>     1129:       f3 0f 1e fa             endbr64 
>     112d:       55                      push   %rbp
>     112e:       48 89 e5                mov    %rsp,%rbp
>     1131:       89 7d fc                mov    %edi,-0x4(%rbp)
>     1134:       89 75 f8                mov    %esi,-0x8(%rbp)
>     1137:       8b 45 fc                mov    -0x4(%rbp),%eax
>     113a:       39 45 f8                cmp    %eax,-0x8(%rbp)
>     113d:       0f 4d 45 f8             cmovge -0x8(%rbp),%eax
>     1141:       5d                      pop    %rbp
>     1142:       c3                      retq
> 
> and
> 
>     1129:       f3 0f 1e fa             endbr64 
>     112d:       55                      push   %rbp
>     112e:       48 89 e5                mov    %rsp,%rbp
>     1131:       89 7d ec                mov    %edi,-0x14(%rbp)
>     1134:       89 75 e8                mov    %esi,-0x18(%rbp)
>     1137:       8b 45 ec                mov    -0x14(%rbp),%eax
>     113a:       39 45 e8                cmp    %eax,-0x18(%rbp)
>     113d:       0f 4d 45 e8             cmovge -0x18(%rbp),%eax
>     1141:       89 45 fc                mov    %eax,-0x4(%rbp)
>     1144:       8b 45 fc                mov    -0x4(%rbp),%eax
>     1147:       5d                      pop    %rbp
>     1148:       c3                      retq
> 
> After removing the redundancy, the compiler does
> have some optimizations

As I said on your other email, look at the kernel built files please,
they should be much different from your tiny example above.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-01-05 10:09 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-04 11:35 [PATCH] drivers/android: remove redundant ret variable cgel.zte
2022-01-04 11:44 ` Greg KH
2022-01-05  9:19   ` 'Re: [PATCH] drivers/android: remove redundant ret variable' cgel.zte
2022-01-05 10:09     ` Greg KH

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.