Re: [PATCH] thp: reduce usage of huge zero page's atomic counter

From: Anshuman Khandual
Date: Tue Aug 30 2016 - 02:48:44 EST


On 08/30/2016 11:24 AM, Aaron Lu wrote:
> On 08/30/2016 12:44 PM, Anshuman Khandual wrote:
>> > On 08/30/2016 09:09 AM, Andrew Morton wrote:
>>> >> On Tue, 30 Aug 2016 11:09:15 +0800 Aaron Lu <aaron.lu@xxxxxxxxx> wrote:
>>> >>
>>>>>> >>>>> Case used for test on Haswell EP:
>>>>>> >>>>> usemem -n 72 --readonly -j 0x200000 100G
>>>>>> >>>>> Which spawns 72 processes and each will mmap 100G anonymous space and
>>>>>> >>>>> then do read only access to that space sequentially with a step of 2MB.
>>>>>> >>>>>
>>>>>> >>>>> perf report for base commit:
>>>>>> >>>>> 54.03% usemem [kernel.kallsyms] [k] get_huge_zero_page
>>>>>> >>>>> perf report for this commit:
>>>>>> >>>>> 0.11% usemem [kernel.kallsyms] [k] mm_get_huge_zero_page
>>>>> >>>>
>>>>> >>>> Does this mean that overall usemem runtime halved?
>>>> >>>
>>>> >>> Sorry for the confusion, the above line is extracted from perf report.
>>>> >>> It shows the percent of CPU cycles executed in a specific function.
>>>> >>>
>>>> >>> The above two perf lines are used to show get_huge_zero_page doesn't
>>>> >>> consume that much CPU cycles after applying the patch.
>>>> >>>
>>>>> >>>>
>>>>> >>>> Do we have any numbers for something which is more real-wordly?
>>>> >>>
>>>> >>> Unfortunately, no real world numbers.
>>>> >>>
>>>> >>> We think the global atomic counter could be an issue for performance
>>>> >>> so I'm trying to solve the problem.
>>> >>
>>> >> So, umm, we don't actually know if the patch is useful to anyone?
>> >
>> > On a POWER system it improves the CPU consumption of the above mentioned
>> > function a little bit. Dont think its going to improve actual throughput
>> > of the workload substantially.
>> >
>> > 0.07% usemem [kernel.vmlinux] [k] mm_get_huge_zero_page
> I guess this is the base commit? But there shouldn't be the new
> mm_get_huge_zero_page symbol before this patch. A typo perhaps?

Yeah, sorry about that.