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

From: Arnaldo Carvalho de Melo
Date: Wed Dec 04 2019 - 08:49:17 EST


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.

- Arnaldo