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
next prev parent 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.