diff mbox series

[2/2] perf/arm-cmn: Improve format attr printing

Message ID 50459f2d48fc62310a566863dbf8a7c14361d363.1725474584.git.robin.murphy@arm.com (mailing list archive)
State New
Headers show
Series [1/2] perf/arm-cmn: Clean up unnecessary NUMA_NO_NODE check | expand

Commit Message

Robin Murphy Sept. 4, 2024, 6:41 p.m. UTC
Take full advantage of our formats being stored in bitfield form, and
make the printing even more robust and simple by letting printk do all
the hard work of formatting bitlists.

Signed-off-by: Robin Murphy <robin.murphy@arm.com>
---
 drivers/perf/arm-cmn.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

Comments

Ilkka Koskinen Sept. 5, 2024, 8:12 p.m. UTC | #1
On Wed, 4 Sep 2024, Robin Murphy wrote:
> Take full advantage of our formats being stored in bitfield form, and
> make the printing even more robust and simple by letting printk do all
> the hard work of formatting bitlists.
>
> Signed-off-by: Robin Murphy <robin.murphy@arm.com>

Reviewed-by: Ilkka Koskinen <ilkka@os.amperecomputing.com>

--Ilkka


> ---
> drivers/perf/arm-cmn.c | 8 ++------
> 1 file changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/perf/arm-cmn.c b/drivers/perf/arm-cmn.c
> index 62d4782da7e4..397a46410f7c 100644
> --- a/drivers/perf/arm-cmn.c
> +++ b/drivers/perf/arm-cmn.c
> @@ -1280,15 +1280,11 @@ static ssize_t arm_cmn_format_show(struct device *dev,
> 				   struct device_attribute *attr, char *buf)
> {
> 	struct arm_cmn_format_attr *fmt = container_of(attr, typeof(*fmt), attr);
> -	int lo = __ffs(fmt->field), hi = __fls(fmt->field);
> -
> -	if (lo == hi)
> -		return sysfs_emit(buf, "config:%d\n", lo);
>
> 	if (!fmt->config)
> -		return sysfs_emit(buf, "config:%d-%d\n", lo, hi);
> +		return sysfs_emit(buf, "config:%*pbl\n", 64, &fmt->field);
>
> -	return sysfs_emit(buf, "config%d:%d-%d\n", fmt->config, lo, hi);
> +	return sysfs_emit(buf, "config%d:%*pbl\n", fmt->config, 64, &fmt->field);
> }
>
> #define _CMN_FORMAT_ATTR(_name, _cfg, _fld)				\
> -- 
> 2.39.2.101.g768bb238c484.dirty
diff mbox series

Patch

diff --git a/drivers/perf/arm-cmn.c b/drivers/perf/arm-cmn.c
index 62d4782da7e4..397a46410f7c 100644
--- a/drivers/perf/arm-cmn.c
+++ b/drivers/perf/arm-cmn.c
@@ -1280,15 +1280,11 @@  static ssize_t arm_cmn_format_show(struct device *dev,
 				   struct device_attribute *attr, char *buf)
 {
 	struct arm_cmn_format_attr *fmt = container_of(attr, typeof(*fmt), attr);
-	int lo = __ffs(fmt->field), hi = __fls(fmt->field);
-
-	if (lo == hi)
-		return sysfs_emit(buf, "config:%d\n", lo);
 
 	if (!fmt->config)
-		return sysfs_emit(buf, "config:%d-%d\n", lo, hi);
+		return sysfs_emit(buf, "config:%*pbl\n", 64, &fmt->field);
 
-	return sysfs_emit(buf, "config%d:%d-%d\n", fmt->config, lo, hi);
+	return sysfs_emit(buf, "config%d:%*pbl\n", fmt->config, 64, &fmt->field);
 }
 
 #define _CMN_FORMAT_ATTR(_name, _cfg, _fld)				\