2011-03-05 18:49:34

by Cesar Eduardo Barros

[permalink] [raw]
Subject: [PATCH] mm: remove inline from scan_swap_map

scan_swap_map is a large function (224 lines), with several loops and a
complex control flow involving several gotos.

Given all that, it is a bit silly that is is marked as inline. The
compiler agrees with me: on a x86-64 compile, it did not inline the
function.

Remove the "inline" and let the compiler decide instead.

Signed-off-by: Cesar Eduardo Barros <[email protected]>
---
mm/swapfile.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/mm/swapfile.c b/mm/swapfile.c
index 0341c57..8ed42e7 100644
--- a/mm/swapfile.c
+++ b/mm/swapfile.c
@@ -212,8 +212,8 @@ static int wait_for_discard(void *word)
#define SWAPFILE_CLUSTER 256
#define LATENCY_LIMIT 256

-static inline unsigned long scan_swap_map(struct swap_info_struct *si,
- unsigned char usage)
+static unsigned long scan_swap_map(struct swap_info_struct *si,
+ unsigned char usage)
{
unsigned long offset;
unsigned long scan_base;
--
1.7.4


2011-03-05 18:51:06

by Pekka Enberg

[permalink] [raw]
Subject: Re: [PATCH] mm: remove inline from scan_swap_map

On Sat, Mar 5, 2011 at 8:49 PM, Cesar Eduardo Barros <[email protected]> wrote:
> scan_swap_map is a large function (224 lines), with several loops and a
> complex control flow involving several gotos.
>
> Given all that, it is a bit silly that is is marked as inline. The
> compiler agrees with me: on a x86-64 compile, it did not inline the
> function.
>
> Remove the "inline" and let the compiler decide instead.
>
> Signed-off-by: Cesar Eduardo Barros <[email protected]>

Reviewed-by: Pekka Enberg <[email protected]>

2011-03-07 01:27:58

by KOSAKI Motohiro

[permalink] [raw]
Subject: Re: [PATCH] mm: remove inline from scan_swap_map

> scan_swap_map is a large function (224 lines), with several loops and a
> complex control flow involving several gotos.
>
> Given all that, it is a bit silly that is is marked as inline. The
> compiler agrees with me: on a x86-64 compile, it did not inline the
> function.
>
> Remove the "inline" and let the compiler decide instead.
>
> Signed-off-by: Cesar Eduardo Barros <[email protected]>
> ---
> mm/swapfile.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/mm/swapfile.c b/mm/swapfile.c
> index 0341c57..8ed42e7 100644
> --- a/mm/swapfile.c
> +++ b/mm/swapfile.c
> @@ -212,8 +212,8 @@ static int wait_for_discard(void *word)
> #define SWAPFILE_CLUSTER 256
> #define LATENCY_LIMIT 256
>
> -static inline unsigned long scan_swap_map(struct swap_info_struct *si,
> - unsigned char usage)
> +static unsigned long scan_swap_map(struct swap_info_struct *si,
> + unsigned char usage)

I agree.
Reviewed-by: KOSAKI Motohiro <[email protected]>

2011-03-07 06:13:45

by Kamezawa Hiroyuki

[permalink] [raw]
Subject: Re: [PATCH] mm: remove inline from scan_swap_map

On Sat, 5 Mar 2011 15:49:16 -0300
Cesar Eduardo Barros <[email protected]> wrote:

> scan_swap_map is a large function (224 lines), with several loops and a
> complex control flow involving several gotos.
>
> Given all that, it is a bit silly that is is marked as inline. The
> compiler agrees with me: on a x86-64 compile, it did not inline the
> function.
>
> Remove the "inline" and let the compiler decide instead.
>
> Signed-off-by: Cesar Eduardo Barros <[email protected]>

Reviewed-by: KAMEZAWA Hiroyuki <[email protected]>

2011-03-07 15:39:35

by Minchan Kim

[permalink] [raw]
Subject: Re: [PATCH] mm: remove inline from scan_swap_map

On Sun, Mar 6, 2011 at 3:49 AM, Cesar Eduardo Barros <[email protected]> wrote:
> scan_swap_map is a large function (224 lines), with several loops and a
> complex control flow involving several gotos.
>
> Given all that, it is a bit silly that is is marked as inline. The
> compiler agrees with me: on a x86-64 compile, it did not inline the
> function.
>
> Remove the "inline" and let the compiler decide instead.
>
> Signed-off-by: Cesar Eduardo Barros <[email protected]>
Reviewed-by: Minchan Kim <[email protected]>



--
Kind regards,
Minchan Kim