[PATCH V4 0/2] mm: FAULT_AROUND_ORDER patchset performance data for powerpc
maddy at linux.vnet.ibm.com
Mon May 19 13:05:53 EST 2014
On Monday 19 May 2014 05:42 AM, Rusty Russell wrote:
> Hugh Dickins <hughd at google.com> writes:
>> On Thu, 15 May 2014, Madhavan Srinivasan wrote:
>>> Hi Ingo,
>>> Do you have any comments for the latest version of the patchset. If
>>> not, kindly can you pick it up as is.
>>> With regards
>>>> Kirill A. Shutemov with 8c6e50b029 commit introduced
>>>> vm_ops->map_pages() for mapping easy accessible pages around
>>>> fault address in hope to reduce number of minor page faults.
>>>> This patch creates infrastructure to modify the FAULT_AROUND_ORDER
>>>> value using mm/Kconfig. This will enable architecture maintainers
>>>> to decide on suitable FAULT_AROUND_ORDER value based on
>>>> performance data for that architecture. First patch also defaults
>>>> FAULT_AROUND_ORDER Kconfig element to 4. Second patch list
>>>> out the performance numbers for powerpc (platform pseries) and
>>>> initialize the fault around order variable for pseries platform of
>> Sorry for not commenting earlier - just reminded by this ping to Ingo.
>> I didn't study your numbers, but nowhere did I see what PAGE_SIZE you use.
>> arch/powerpc/Kconfig suggests that Power supports base page size of
>> 4k, 16k, 64k or 256k.
>> I would expect your optimal fault_around_order to depend very much on
>> the base page size.
> It was 64k, which is what PPC64 uses on all the major distributions.
> You really only get a choice of 4k and 64k with 64 bit power.
This is true. PPC64 support multiple pagesize and yes the default page
size of 64k, is taken as base pagesize for the tests.
>> Perhaps fault_around_size would provide a more useful default?
> That seems to fit. With 4k pages and order 4, you're asking for 64k.
> Maddy's result shows 64k is also reasonable for 64k pages.
> Perhaps we try to generalize from two data points (a slight improvement
> over doing it from 1!), eg:
> /* 4 seems good for 4k-page x86, 0 seems good for 64k page ppc64, so: */
> unsigned int fault_around_order __read_mostly =
> (16 - PAGE_SHIFT < 0 ? 0 : 16 - PAGE_SHIFT);
This may be right. But these are the concerns, will not this make other
arch to pick default without any tuning and also this will remove the
compile time option to disable the feature?
Thanks for review
More information about the Linuxppc-dev