Re: [PATCH v5 2/3] perf mmap: declare type for cpu mask of arbitrary length

From: Alexey Budankov
Date: Thu Dec 05 2019 - 02:31:23 EST


On 04.12.2019 16:49, Arnaldo Carvalho de Melo wrote:
> Em Tue, Dec 03, 2019 at 02:44:18PM +0300, Alexey Budankov escreveu:
>>
>> Declare a dedicated struct map_cpu_mask type for cpu masks of
>> arbitrary length. Mask is available thru bits pointer and the
>> mask length is kept in nbits field. MMAP_CPU_MASK_BYTES() macro
>> returns mask storage size in bytes. mmap_cpu_mask__scnprintf()
>> function can be used to log text representation of the mask.
>>
>> Signed-off-by: Alexey Budankov <alexey.budankov@xxxxxxxxxxxxxxx>
>> ---
>> tools/perf/util/mmap.c | 12 ++++++++++++
>> tools/perf/util/mmap.h | 11 +++++++++++
>> 2 files changed, 23 insertions(+)
>>
>> diff --git a/tools/perf/util/mmap.c b/tools/perf/util/mmap.c
>> index 063d1b93c53d..43c12b4a3e17 100644
>> --- a/tools/perf/util/mmap.c
>> +++ b/tools/perf/util/mmap.c
>> @@ -23,6 +23,18 @@
>> #include "mmap.h"
>> #include "../perf.h"
>> #include <internal/lib.h> /* page_size */
>> +#include <linux/bitmap.h>
>> +
>> +#define MASK_SIZE 1023
>> +void mmap_cpu_mask__scnprintf(struct mmap_cpu_mask *mask, const char *tag)
>> +{
>> + char buf[MASK_SIZE + 1];
>> + size_t len;
>> +
>> + len = bitmap_scnprintf(mask->bits, mask->nbits, buf, MASK_SIZE);
>> + buf[len] = '\0';
>> + pr_debug("%p: %s mask[%ld]: %s\n", mask, tag, mask->nbits, buf);
>> +}
>
> Above should also be %zd, fixed.

Thanks Arnaldo, Jiri! Appreciate you collaboration and help.

~Alexey

>
> - Arnaldo
>