All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Kirill A. Shutemov" <kirill@shutemov.name>
To: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
Cc: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-mm@kvack.org, linux-arch@vger.kernel.org, x86@kernel.org,
	benh@kernel.crashing.org, paulus@samba.org,
	kirill.shutemov@linux.intel.com, rusty@rustcorp.com.au,
	akpm@linux-foundation.org, riel@redhat.com, mgorman@suse.de,
	ak@linux.intel.com, peterz@infradead.org, mingo@kernel.org
Subject: Re: [PATCH 1/1] mm: move FAULT_AROUND_ORDER to arch/
Date: Tue, 25 Mar 2014 19:36:05 +0200	[thread overview]
Message-ID: <20140325173605.GA21411@node.dhcp.inet.fi> (raw)
In-Reply-To: <1395730215-11604-2-git-send-email-maddy@linux.vnet.ibm.com>

On Tue, Mar 25, 2014 at 12:20:15PM +0530, Madhavan Srinivasan wrote:
> Kirill A. Shutemov with the commit 96bacfe542 introduced
> vm_ops->map_pages() for mapping easy accessible pages around
> fault address in hope to reduce number of minor page faults.
> Based on his workload runs, suggested FAULT_AROUND_ORDER
> (knob to control the numbers of pages to map) is 4.
> 
> This patch moves the FAULT_AROUND_ORDER macro to arch/ for
> architecture maintainers to decide on suitable FAULT_AROUND_ORDER
> value based on performance data for that architecture.
> 
> Signed-off-by: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
> ---
>  arch/powerpc/include/asm/pgtable.h |    6 ++++++
>  arch/x86/include/asm/pgtable.h     |    5 +++++
>  include/asm-generic/pgtable.h      |   10 ++++++++++
>  mm/memory.c                        |    2 --
>  4 files changed, 21 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
> index 3ebb188..9fcbd48 100644
> --- a/arch/powerpc/include/asm/pgtable.h
> +++ b/arch/powerpc/include/asm/pgtable.h
> @@ -19,6 +19,12 @@ struct mm_struct;
>  #endif
>  
>  /*
> + * With a few real world workloads that were run,
> + * the performance data showed that a value of 3 is more advantageous.
> + */
> +#define FAULT_AROUND_ORDER	3
> +
> +/*
>   * We save the slot number & secondary bit in the second half of the
>   * PTE page. We use the 8 bytes per each pte entry.
>   */
> diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
> index 938ef1d..8387a65 100644
> --- a/arch/x86/include/asm/pgtable.h
> +++ b/arch/x86/include/asm/pgtable.h
> @@ -7,6 +7,11 @@
>  #include <asm/pgtable_types.h>
>  
>  /*
> + * Based on Kirill's test results, fault around order is set to 4
> + */
> +#define FAULT_AROUND_ORDER 4
> +
> +/*
>   * Macro to mark a page protection value as UC-
>   */
>  #define pgprot_noncached(prot)					\
> diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
> index 1ec08c1..62f7f07 100644
> --- a/include/asm-generic/pgtable.h
> +++ b/include/asm-generic/pgtable.h
> @@ -7,6 +7,16 @@
>  #include <linux/mm_types.h>
>  #include <linux/bug.h>
>  
> +
> +/*
> + * Fault around order is a control knob to decide the fault around pages.
> + * Default value is set to 0UL (disabled), but the arch can override it as
> + * desired.
> + */
> +#ifndef FAULT_AROUND_ORDER
> +#define FAULT_AROUND_ORDER	0UL
> +#endif

FAULT_AROUND_ORDER == 0 case should be handled separately in
do_read_fault(): no reason to go to do_fault_around() if we are going to
fault in only one page.

-- 
 Kirill A. Shutemov

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

WARNING: multiple messages have this Message-ID (diff)
From: "Kirill A. Shutemov" <kirill@shutemov.name>
To: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
Cc: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-mm@kvack.org, linux-arch@vger.kernel.org, x86@kernel.org,
	benh@kernel.crashing.org, paulus@samba.org,
	kirill.shutemov@linux.intel.com, rusty@rustcorp.com.au,
	akpm@linux-foundation.org, riel@redhat.com, mgorman@suse.de,
	ak@linux.intel.com, peterz@infradead.org, mingo@kernel.org
Subject: Re: [PATCH 1/1] mm: move FAULT_AROUND_ORDER to arch/
Date: Tue, 25 Mar 2014 19:36:05 +0200	[thread overview]
Message-ID: <20140325173605.GA21411@node.dhcp.inet.fi> (raw)
Message-ID: <20140325173605.4IJP8dguODwCPk64FESc1wkhucdkg-0C2pApFmViusA@z> (raw)
In-Reply-To: <1395730215-11604-2-git-send-email-maddy@linux.vnet.ibm.com>

On Tue, Mar 25, 2014 at 12:20:15PM +0530, Madhavan Srinivasan wrote:
> Kirill A. Shutemov with the commit 96bacfe542 introduced
> vm_ops->map_pages() for mapping easy accessible pages around
> fault address in hope to reduce number of minor page faults.
> Based on his workload runs, suggested FAULT_AROUND_ORDER
> (knob to control the numbers of pages to map) is 4.
> 
> This patch moves the FAULT_AROUND_ORDER macro to arch/ for
> architecture maintainers to decide on suitable FAULT_AROUND_ORDER
> value based on performance data for that architecture.
> 
> Signed-off-by: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
> ---
>  arch/powerpc/include/asm/pgtable.h |    6 ++++++
>  arch/x86/include/asm/pgtable.h     |    5 +++++
>  include/asm-generic/pgtable.h      |   10 ++++++++++
>  mm/memory.c                        |    2 --
>  4 files changed, 21 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
> index 3ebb188..9fcbd48 100644
> --- a/arch/powerpc/include/asm/pgtable.h
> +++ b/arch/powerpc/include/asm/pgtable.h
> @@ -19,6 +19,12 @@ struct mm_struct;
>  #endif
>  
>  /*
> + * With a few real world workloads that were run,
> + * the performance data showed that a value of 3 is more advantageous.
> + */
> +#define FAULT_AROUND_ORDER	3
> +
> +/*
>   * We save the slot number & secondary bit in the second half of the
>   * PTE page. We use the 8 bytes per each pte entry.
>   */
> diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
> index 938ef1d..8387a65 100644
> --- a/arch/x86/include/asm/pgtable.h
> +++ b/arch/x86/include/asm/pgtable.h
> @@ -7,6 +7,11 @@
>  #include <asm/pgtable_types.h>
>  
>  /*
> + * Based on Kirill's test results, fault around order is set to 4
> + */
> +#define FAULT_AROUND_ORDER 4
> +
> +/*
>   * Macro to mark a page protection value as UC-
>   */
>  #define pgprot_noncached(prot)					\
> diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
> index 1ec08c1..62f7f07 100644
> --- a/include/asm-generic/pgtable.h
> +++ b/include/asm-generic/pgtable.h
> @@ -7,6 +7,16 @@
>  #include <linux/mm_types.h>
>  #include <linux/bug.h>
>  
> +
> +/*
> + * Fault around order is a control knob to decide the fault around pages.
> + * Default value is set to 0UL (disabled), but the arch can override it as
> + * desired.
> + */
> +#ifndef FAULT_AROUND_ORDER
> +#define FAULT_AROUND_ORDER	0UL
> +#endif

FAULT_AROUND_ORDER == 0 case should be handled separately in
do_read_fault(): no reason to go to do_fault_around() if we are going to
fault in only one page.

-- 
 Kirill A. Shutemov

WARNING: multiple messages have this Message-ID (diff)
From: "Kirill A. Shutemov" <kirill@shutemov.name>
To: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
Cc: linux-arch@vger.kernel.org, riel@redhat.com,
	rusty@rustcorp.com.au, peterz@infradead.org, x86@kernel.org,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	ak@linux.intel.com, paulus@samba.org, mgorman@suse.de,
	akpm@linux-foundation.org, linuxppc-dev@lists.ozlabs.org,
	mingo@kernel.org, kirill.shutemov@linux.intel.com
Subject: Re: [PATCH 1/1] mm: move FAULT_AROUND_ORDER to arch/
Date: Tue, 25 Mar 2014 19:36:05 +0200	[thread overview]
Message-ID: <20140325173605.GA21411@node.dhcp.inet.fi> (raw)
In-Reply-To: <1395730215-11604-2-git-send-email-maddy@linux.vnet.ibm.com>

On Tue, Mar 25, 2014 at 12:20:15PM +0530, Madhavan Srinivasan wrote:
> Kirill A. Shutemov with the commit 96bacfe542 introduced
> vm_ops->map_pages() for mapping easy accessible pages around
> fault address in hope to reduce number of minor page faults.
> Based on his workload runs, suggested FAULT_AROUND_ORDER
> (knob to control the numbers of pages to map) is 4.
> 
> This patch moves the FAULT_AROUND_ORDER macro to arch/ for
> architecture maintainers to decide on suitable FAULT_AROUND_ORDER
> value based on performance data for that architecture.
> 
> Signed-off-by: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
> ---
>  arch/powerpc/include/asm/pgtable.h |    6 ++++++
>  arch/x86/include/asm/pgtable.h     |    5 +++++
>  include/asm-generic/pgtable.h      |   10 ++++++++++
>  mm/memory.c                        |    2 --
>  4 files changed, 21 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
> index 3ebb188..9fcbd48 100644
> --- a/arch/powerpc/include/asm/pgtable.h
> +++ b/arch/powerpc/include/asm/pgtable.h
> @@ -19,6 +19,12 @@ struct mm_struct;
>  #endif
>  
>  /*
> + * With a few real world workloads that were run,
> + * the performance data showed that a value of 3 is more advantageous.
> + */
> +#define FAULT_AROUND_ORDER	3
> +
> +/*
>   * We save the slot number & secondary bit in the second half of the
>   * PTE page. We use the 8 bytes per each pte entry.
>   */
> diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
> index 938ef1d..8387a65 100644
> --- a/arch/x86/include/asm/pgtable.h
> +++ b/arch/x86/include/asm/pgtable.h
> @@ -7,6 +7,11 @@
>  #include <asm/pgtable_types.h>
>  
>  /*
> + * Based on Kirill's test results, fault around order is set to 4
> + */
> +#define FAULT_AROUND_ORDER 4
> +
> +/*
>   * Macro to mark a page protection value as UC-
>   */
>  #define pgprot_noncached(prot)					\
> diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
> index 1ec08c1..62f7f07 100644
> --- a/include/asm-generic/pgtable.h
> +++ b/include/asm-generic/pgtable.h
> @@ -7,6 +7,16 @@
>  #include <linux/mm_types.h>
>  #include <linux/bug.h>
>  
> +
> +/*
> + * Fault around order is a control knob to decide the fault around pages.
> + * Default value is set to 0UL (disabled), but the arch can override it as
> + * desired.
> + */
> +#ifndef FAULT_AROUND_ORDER
> +#define FAULT_AROUND_ORDER	0UL
> +#endif

FAULT_AROUND_ORDER == 0 case should be handled separately in
do_read_fault(): no reason to go to do_fault_around() if we are going to
fault in only one page.

-- 
 Kirill A. Shutemov

  reply	other threads:[~2014-03-25 17:36 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-25  6:50 [PATCH 0/1] mm: FAULT_AROUND_ORDER patchset performance data for powerpc Madhavan Srinivasan
2014-03-25  6:50 ` Madhavan Srinivasan
2014-03-25  6:50 ` Madhavan Srinivasan
2014-03-25  6:50 ` [PATCH 1/1] mm: move FAULT_AROUND_ORDER to arch/ Madhavan Srinivasan
2014-03-25  6:50   ` Madhavan Srinivasan
2014-03-25  6:50   ` Madhavan Srinivasan
2014-03-25 17:36   ` Kirill A. Shutemov [this message]
2014-03-25 17:36     ` Kirill A. Shutemov
2014-03-25 17:36     ` Kirill A. Shutemov
2014-03-25 17:50     ` Dave Hansen
2014-03-25 17:50       ` Dave Hansen
2014-03-25 17:50       ` Dave Hansen
2014-04-02  4:45       ` Madhavan Srinivasan
2014-04-02  4:45         ` Madhavan Srinivasan
2014-04-02  4:45         ` Madhavan Srinivasan
2014-03-27  6:20     ` Madhavan Srinivasan
2014-03-27  6:20       ` Madhavan Srinivasan
2014-03-27  6:20       ` Madhavan Srinivasan
2014-03-25  8:11 ` [PATCH 0/1] mm: FAULT_AROUND_ORDER patchset performance data for powerpc Ingo Molnar
2014-03-25  8:11   ` Ingo Molnar
2014-03-25  8:11   ` Ingo Molnar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140325173605.GA21411@node.dhcp.inet.fi \
    --to=kirill@shutemov.name \
    --cc=ak@linux.intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=benh@kernel.crashing.org \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=maddy@linux.vnet.ibm.com \
    --cc=mgorman@suse.de \
    --cc=mingo@kernel.org \
    --cc=paulus@samba.org \
    --cc=peterz@infradead.org \
    --cc=riel@redhat.com \
    --cc=rusty@rustcorp.com.au \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.