[PATCH] coresight: catu: Fix number of pages while using 64k pages
Ilkka Koskinen
ilkka at os.amperecomputing.com
Fri Jan 10 13:32:43 PST 2025
Hi Suzuko,
On Fri, 10 Jan 2025, Suzuki K Poulose wrote:
> On 09/01/2025 21:53, Ilkka Koskinen wrote:
>> Trying to record a trace on kernel with 64k pages resulted in -ENOMEM.
>> This happens due to a bug in calculating the number of table pages, which
>> returns zero. Fix the issue by rounding up.
>>
>> $ perf record --kcore -e cs_etm/@tmc_etr55,cycacc,branch_broadcast/k
>> --per-thread taskset --cpu-list 1 dd if=/dev/zero of=/dev/null
>> failed to mmap with 12 (Cannot allocate memory)
>>
>
> Needs a Fixes tag.
>
> Fixes : 8ed536b1e283 ("coresight: catu: Add support for scatter gather
> tables")
That's a good point
>
>> Signed-off-by: Ilkka Koskinen <ilkka at os.amperecomputing.com>
>> ---
>> drivers/hwtracing/coresight/coresight-catu.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/hwtracing/coresight/coresight-catu.c
>> b/drivers/hwtracing/coresight/coresight-catu.c
>> index 275cc0d9f505..3378bb77e6b4 100644
>> --- a/drivers/hwtracing/coresight/coresight-catu.c
>> +++ b/drivers/hwtracing/coresight/coresight-catu.c
>> @@ -269,7 +269,7 @@ catu_init_sg_table(struct device *catu_dev, int node,
>> * Each table can address upto 1MB and we can have
>> * CATU_PAGES_PER_SYSPAGE tables in a system page.
>> */
>> - nr_tpages = DIV_ROUND_UP(size, SZ_1M) / CATU_PAGES_PER_SYSPAGE;
>> + nr_tpages = DIV_ROUND_UP(size, CATU_PAGES_PER_SYSPAGE * SZ_1M);
>> catu_table = tmc_alloc_sg_table(catu_dev, node, nr_tpages,
>> size >> PAGE_SHIFT, pages);
>> if (IS_ERR(catu_table))
>
> Looks good to me, I will queue this later for v6.15.
>
> Suzuki
Sounds great. Just to confirm, are you ok to add the fixes line or would
you prefer me to submit v2 with it?
Cheers, Ilkka
More information about the linux-arm-kernel
mailing list