Re: [PATCH v4 2/2] perf record: Update docs regarding the maximum limitation of AUX area

From: Shuai Xue
Date: Fri Aug 04 2023 - 07:47:42 EST




On 2023/8/4 16:46, Leo Yan wrote:
> On Fri, Aug 04, 2023 at 03:29:45PM +0800, Shuai Xue wrote:
>> The maximum AUX area is limited by the page size of the system. Update
>> the documentation to reflect this.
>>
>> Signed-off-by: Shuai Xue <xueshuai@xxxxxxxxxxxxxxxxx>
>> ---
>> tools/perf/Documentation/perf-record.txt | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/tools/perf/Documentation/perf-record.txt b/tools/perf/Documentation/perf-record.txt
>> index 680396c56bd1..b0ee7b63da0e 100644
>> --- a/tools/perf/Documentation/perf-record.txt
>> +++ b/tools/perf/Documentation/perf-record.txt
>> @@ -292,6 +292,9 @@ OPTIONS
>> Also, by adding a comma, the number of mmap pages for AUX
>> area tracing can be specified.
>>
>> + The maximum AUX area is limited by the page size of the system. For
>> + example with 4K pages configured, the maximum is 2GiB.
>> +
>
> This statement is incorrect as it fails to give out prerequisites.
>
> E.g., on Arm64, for 4KiB, 16KiB or 64KiB base page size, different page
> size has different default values for MAX_ORDER. Furthermore, MAX_ORDER
> can be set by config ARCH_FORCE_MAX_ORDER, thus we cannot arbitrarily
> say the maximum allocation size is 2GiB for 4KiB page size.
>

Hi, Leo,

You are right, thank you for point this out.

Maybe we could consider to use a formula to present the avaliable
> maximum buffer size:
>
> PAGE_SIZE << MAX_ORDER
> ( ---------------------- ) * PAGE_SIZE
> sizeof(page_pointer)
>
> PAGE_SIZE << MAX_ORDER : the size of maximal physically
> contiguous allocations, which is the maximum size can be
> allocated by slab/slub.

I agree that a formula to present that limitation is more accurate. But as
@James commented in last v3, "Minor nit: I wouldn't expect a Perf tool user
to know what "MAX_ORDER" is", how about to keep both:

The maximum AUX area is limited by the maximum physically contiguous memory
allocated from slab/slub. It can be calculated with following formula:


PAGE_SIZE << MAX_ORDER
( ---------------------- ) * PAGE_SIZE
sizeof(page_pointer)

For example with 4K pages and MAX_ORDER=10 configured, the maximum AUX area
is 2GiB.

Thank you.

Best Regards,
Shuai