LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH] mm, vmacache: Add kconfig VMACACHE_SHIFT
@ 2015-01-22  6:29 WANG Chao
  2015-01-22  7:46 ` Davidlohr Bueso
  2015-01-22 15:45 ` Vlastimil Babka
  0 siblings, 2 replies; 8+ messages in thread
From: WANG Chao @ 2015-01-22  6:29 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Davidlohr Bueso, Ingo Molnar, Peter Zijlstra, Michel Lespinasse,
	Rik van Riel, Mel Gorman, linux-mm, linux-kernel

Add a new kconfig option VMACACHE_SHIFT (as a power of 2) to specify the
number of slots vma cache has for each thread. Range is chosen 0-4 (1-16
slots) to consider both overhead and performance penalty. Default is 2
(4 slots) as it originally is, which provides good enough balance.

Signed-off-by: WANG Chao <chaowang@redhat.com>
---
 include/linux/sched.h | 2 +-
 mm/Kconfig            | 7 +++++++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/include/linux/sched.h b/include/linux/sched.h
index 8db31ef..56fd96d 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -134,7 +134,7 @@ struct perf_event_context;
 struct blk_plug;
 struct filename;
 
-#define VMACACHE_BITS 2
+#define VMACACHE_BITS CONFIG_VMACACHE_SHIFT
 #define VMACACHE_SIZE (1U << VMACACHE_BITS)
 #define VMACACHE_MASK (VMACACHE_SIZE - 1)
 
diff --git a/mm/Kconfig b/mm/Kconfig
index 1d1ae6b..7b82a52 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -618,3 +618,10 @@ config MAX_STACK_SIZE_MB
 	  changed to a smaller value in which case that is used.
 
 	  A sane initial value is 80 MB.
+
+config VMACACHE_SHIFT
+	int "Number of slots in per-thread VMA cache (as a power of 2)"
+	range 0 4
+	default 2
+	help
+	  This is the number of slots VMA cache has for each thread.
-- 
2.1.0


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

* Re: [PATCH] mm, vmacache: Add kconfig VMACACHE_SHIFT
  2015-01-22  6:29 [PATCH] mm, vmacache: Add kconfig VMACACHE_SHIFT WANG Chao
@ 2015-01-22  7:46 ` Davidlohr Bueso
  2015-01-22  7:57   ` WANG Chao
  2015-01-22 15:45 ` Vlastimil Babka
  1 sibling, 1 reply; 8+ messages in thread
From: Davidlohr Bueso @ 2015-01-22  7:46 UTC (permalink / raw)
  To: WANG Chao
  Cc: Andrew Morton, Ingo Molnar, Peter Zijlstra, Michel Lespinasse,
	Rik van Riel, Mel Gorman, linux-mm, linux-kernel

On Thu, 2015-01-22 at 14:29 +0800, WANG Chao wrote:
> Add a new kconfig option VMACACHE_SHIFT (as a power of 2) to specify the
> number of slots vma cache has for each thread. Range is chosen 0-4 (1-16
> slots) to consider both overhead and performance penalty. Default is 2
> (4 slots) as it originally is, which provides good enough balance.
> 

Nack. I don't feel comfortable making scalability features of core code
configurable.

Thanks,
Davidlohr




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

* Re: [PATCH] mm, vmacache: Add kconfig VMACACHE_SHIFT
  2015-01-22  7:46 ` Davidlohr Bueso
@ 2015-01-22  7:57   ` WANG Chao
  2015-01-22 16:19     ` Davidlohr Bueso
  0 siblings, 1 reply; 8+ messages in thread
From: WANG Chao @ 2015-01-22  7:57 UTC (permalink / raw)
  To: Davidlohr Bueso
  Cc: Andrew Morton, Ingo Molnar, Peter Zijlstra, Michel Lespinasse,
	Rik van Riel, Mel Gorman, linux-mm, linux-kernel

Hi, Davidlohr

On 01/21/15 at 11:46pm, Davidlohr Bueso wrote:
> On Thu, 2015-01-22 at 14:29 +0800, WANG Chao wrote:
> > Add a new kconfig option VMACACHE_SHIFT (as a power of 2) to specify the
> > number of slots vma cache has for each thread. Range is chosen 0-4 (1-16
> > slots) to consider both overhead and performance penalty. Default is 2
> > (4 slots) as it originally is, which provides good enough balance.
> > 
> 
> Nack. I don't feel comfortable making scalability features of core code
> configurable.

Out of respect, is this a general rule not making scalability features
of core code configurable?

Thanks
WANG Chao

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

* Re: [PATCH] mm, vmacache: Add kconfig VMACACHE_SHIFT
  2015-01-22  6:29 [PATCH] mm, vmacache: Add kconfig VMACACHE_SHIFT WANG Chao
  2015-01-22  7:46 ` Davidlohr Bueso
@ 2015-01-22 15:45 ` Vlastimil Babka
  1 sibling, 0 replies; 8+ messages in thread
From: Vlastimil Babka @ 2015-01-22 15:45 UTC (permalink / raw)
  To: WANG Chao, Andrew Morton
  Cc: Davidlohr Bueso, Ingo Molnar, Peter Zijlstra, Michel Lespinasse,
	Rik van Riel, Mel Gorman, linux-mm, linux-kernel

On 01/22/2015 07:29 AM, WANG Chao wrote:
> Add a new kconfig option VMACACHE_SHIFT (as a power of 2) to specify the
> number of slots vma cache has for each thread. Range is chosen 0-4 (1-16
> slots) to consider both overhead and performance penalty. Default is 2

One could say that overhead and performance penalty is the same thing. 
Please elaborate?

Also, got any performance numbers to share for workloads benefiting from 
more/less than the default?

> (4 slots) as it originally is, which provides good enough balance.
>
> Signed-off-by: WANG Chao <chaowang@redhat.com>
> ---
>   include/linux/sched.h | 2 +-
>   mm/Kconfig            | 7 +++++++
>   2 files changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/include/linux/sched.h b/include/linux/sched.h
> index 8db31ef..56fd96d 100644
> --- a/include/linux/sched.h
> +++ b/include/linux/sched.h
> @@ -134,7 +134,7 @@ struct perf_event_context;
>   struct blk_plug;
>   struct filename;
>
> -#define VMACACHE_BITS 2
> +#define VMACACHE_BITS CONFIG_VMACACHE_SHIFT
>   #define VMACACHE_SIZE (1U << VMACACHE_BITS)
>   #define VMACACHE_MASK (VMACACHE_SIZE - 1)
>
> diff --git a/mm/Kconfig b/mm/Kconfig
> index 1d1ae6b..7b82a52 100644
> --- a/mm/Kconfig
> +++ b/mm/Kconfig
> @@ -618,3 +618,10 @@ config MAX_STACK_SIZE_MB
>   	  changed to a smaller value in which case that is used.
>
>   	  A sane initial value is 80 MB.
> +
> +config VMACACHE_SHIFT
> +	int "Number of slots in per-thread VMA cache (as a power of 2)"
> +	range 0 4
> +	default 2
> +	help
> +	  This is the number of slots VMA cache has for each thread.

As a user, I wouldn't find this informative enough to make the decision.



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

* Re: [PATCH] mm, vmacache: Add kconfig VMACACHE_SHIFT
  2015-01-22  7:57   ` WANG Chao
@ 2015-01-22 16:19     ` Davidlohr Bueso
  2015-01-22 16:22       ` Rik van Riel
  0 siblings, 1 reply; 8+ messages in thread
From: Davidlohr Bueso @ 2015-01-22 16:19 UTC (permalink / raw)
  To: WANG Chao
  Cc: Andrew Morton, Ingo Molnar, Peter Zijlstra, Michel Lespinasse,
	Rik van Riel, Mel Gorman, linux-mm, linux-kernel

On Thu, 2015-01-22 at 15:57 +0800, WANG Chao wrote:
> Hi, Davidlohr
> 
> On 01/21/15 at 11:46pm, Davidlohr Bueso wrote:
> > On Thu, 2015-01-22 at 14:29 +0800, WANG Chao wrote:
> > > Add a new kconfig option VMACACHE_SHIFT (as a power of 2) to specify the
> > > number of slots vma cache has for each thread. Range is chosen 0-4 (1-16
> > > slots) to consider both overhead and performance penalty. Default is 2
> > > (4 slots) as it originally is, which provides good enough balance.
> > > 
> > 
> > Nack. I don't feel comfortable making scalability features of core code
> > configurable.
> 
> Out of respect, is this a general rule not making scalability features
> of core code configurable?

I doubt its a rule, just common sense. Users have no business
configuring such low level details. The optimizations need to
transparently work for everyone.

Thanks,
Davidlohr


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

* Re: [PATCH] mm, vmacache: Add kconfig VMACACHE_SHIFT
  2015-01-22 16:19     ` Davidlohr Bueso
@ 2015-01-22 16:22       ` Rik van Riel
  2015-01-23  5:14         ` WANG Chao
  0 siblings, 1 reply; 8+ messages in thread
From: Rik van Riel @ 2015-01-22 16:22 UTC (permalink / raw)
  To: Davidlohr Bueso, WANG Chao
  Cc: Andrew Morton, Ingo Molnar, Peter Zijlstra, Michel Lespinasse,
	Mel Gorman, linux-mm, linux-kernel

On 01/22/2015 11:19 AM, Davidlohr Bueso wrote:
> On Thu, 2015-01-22 at 15:57 +0800, WANG Chao wrote:
>> Hi, Davidlohr
>>
>> On 01/21/15 at 11:46pm, Davidlohr Bueso wrote:
>>> On Thu, 2015-01-22 at 14:29 +0800, WANG Chao wrote:
>>>> Add a new kconfig option VMACACHE_SHIFT (as a power of 2) to specify the
>>>> number of slots vma cache has for each thread. Range is chosen 0-4 (1-16
>>>> slots) to consider both overhead and performance penalty. Default is 2
>>>> (4 slots) as it originally is, which provides good enough balance.
>>>>
>>>
>>> Nack. I don't feel comfortable making scalability features of core code
>>> configurable.
>>
>> Out of respect, is this a general rule not making scalability features
>> of core code configurable?
> 
> I doubt its a rule, just common sense. Users have no business
> configuring such low level details. The optimizations need to
> transparently work for everyone.

There may sometimes be a good reason for making this kind of
thing configurable, but since there were no performance
numbers in the changelog, I have not seen any such reason for
this particular change :)

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

* Re: [PATCH] mm, vmacache: Add kconfig VMACACHE_SHIFT
  2015-01-22 16:22       ` Rik van Riel
@ 2015-01-23  5:14         ` WANG Chao
  2015-01-24  1:02           ` Sasha Levin
  0 siblings, 1 reply; 8+ messages in thread
From: WANG Chao @ 2015-01-23  5:14 UTC (permalink / raw)
  To: Davidlohr Bueso
  Cc: Rik van Riel, Vlastimil Babka, Andrew Morton, Ingo Molnar,
	Peter Zijlstra, Michel Lespinasse, Mel Gorman, linux-mm,
	linux-kernel

On 01/22/15 at 11:22am, Rik van Riel wrote:
> On 01/22/2015 11:19 AM, Davidlohr Bueso wrote:
> > On Thu, 2015-01-22 at 15:57 +0800, WANG Chao wrote:
> >> Hi, Davidlohr
> >>
> >> On 01/21/15 at 11:46pm, Davidlohr Bueso wrote:
> >>> On Thu, 2015-01-22 at 14:29 +0800, WANG Chao wrote:
> >>>> Add a new kconfig option VMACACHE_SHIFT (as a power of 2) to specify the
> >>>> number of slots vma cache has for each thread. Range is chosen 0-4 (1-16
> >>>> slots) to consider both overhead and performance penalty. Default is 2
> >>>> (4 slots) as it originally is, which provides good enough balance.
> >>>>
> >>>
> >>> Nack. I don't feel comfortable making scalability features of core code
> >>> configurable.
> >>
> >> Out of respect, is this a general rule not making scalability features
> >> of core code configurable?
> > 
> > I doubt its a rule, just common sense. Users have no business
> > configuring such low level details. The optimizations need to
> > transparently work for everyone.
> 
> There may sometimes be a good reason for making this kind of
> thing configurable, but since there were no performance
> numbers in the changelog, I have not seen any such reason for
> this particular change :)

True. I didn't run any kind of benchmark, thus no numbers here. This is
purely hypothetical.

I'm glad to run some tests. For the sake of consistency, could you
please show me a hint how do you measure at the first place? I can do
hit-rate, but I don't know how you measure cpu cycles. Could you
elaborate?

Thanks
WANG Chao

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

* Re: [PATCH] mm, vmacache: Add kconfig VMACACHE_SHIFT
  2015-01-23  5:14         ` WANG Chao
@ 2015-01-24  1:02           ` Sasha Levin
  0 siblings, 0 replies; 8+ messages in thread
From: Sasha Levin @ 2015-01-24  1:02 UTC (permalink / raw)
  To: WANG Chao, Davidlohr Bueso
  Cc: Rik van Riel, Vlastimil Babka, Andrew Morton, Ingo Molnar,
	Peter Zijlstra, Michel Lespinasse, Mel Gorman, linux-mm,
	linux-kernel

On 01/23/2015 12:14 AM, WANG Chao wrote:
> On 01/22/15 at 11:22am, Rik van Riel wrote:
>> > On 01/22/2015 11:19 AM, Davidlohr Bueso wrote:
>>> > > On Thu, 2015-01-22 at 15:57 +0800, WANG Chao wrote:
>>>> > >> Hi, Davidlohr
>>>> > >>
>>>> > >> On 01/21/15 at 11:46pm, Davidlohr Bueso wrote:
>>>>> > >>> On Thu, 2015-01-22 at 14:29 +0800, WANG Chao wrote:
>>>>>> > >>>> Add a new kconfig option VMACACHE_SHIFT (as a power of 2) to specify the
>>>>>> > >>>> number of slots vma cache has for each thread. Range is chosen 0-4 (1-16
>>>>>> > >>>> slots) to consider both overhead and performance penalty. Default is 2
>>>>>> > >>>> (4 slots) as it originally is, which provides good enough balance.
>>>>>> > >>>>
>>>>> > >>>
>>>>> > >>> Nack. I don't feel comfortable making scalability features of core code
>>>>> > >>> configurable.
>>>> > >>
>>>> > >> Out of respect, is this a general rule not making scalability features
>>>> > >> of core code configurable?
>>> > > 
>>> > > I doubt its a rule, just common sense. Users have no business
>>> > > configuring such low level details. The optimizations need to
>>> > > transparently work for everyone.
>> > 
>> > There may sometimes be a good reason for making this kind of
>> > thing configurable, but since there were no performance
>> > numbers in the changelog, I have not seen any such reason for
>> > this particular change :)
> True. I didn't run any kind of benchmark, thus no numbers here. This is
> purely hypothetical.
> 
> I'm glad to run some tests. For the sake of consistency, could you
> please show me a hint how do you measure at the first place? I can do
> hit-rate, but I don't know how you measure cpu cycles. Could you
> elaborate?

I don't think there's a need to look for problems where there are none.

Have you observed a performance issue that might be improved by changing
the shift here?


Thanks,
Sasha

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

end of thread, other threads:[~2015-01-24  1:02 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-22  6:29 [PATCH] mm, vmacache: Add kconfig VMACACHE_SHIFT WANG Chao
2015-01-22  7:46 ` Davidlohr Bueso
2015-01-22  7:57   ` WANG Chao
2015-01-22 16:19     ` Davidlohr Bueso
2015-01-22 16:22       ` Rik van Riel
2015-01-23  5:14         ` WANG Chao
2015-01-24  1:02           ` Sasha Levin
2015-01-22 15:45 ` Vlastimil Babka

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).