[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID:
<OSZPR01MB87987EEDAD9B27BEDCFB37A08BEE2@OSZPR01MB8798.jpnprd01.prod.outlook.com>
Date: Wed, 29 Jan 2025 10:57:04 +0000
From: "Shaopeng Tan (Fujitsu)" <tan.shaopeng@...itsu.com>
To: 'Dave Martin' <Dave.Martin@....com>, "linux-kernel@...r.kernel.org"
<linux-kernel@...r.kernel.org>
CC: "linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>, Zeng Heng <zengheng4@...wei.com>,
James Morse <james.morse@....com>
Subject: RE: [RFC PATCH v2 07/11] arm_mpam: [NFU] Rework ID remapping to use a
kernel command-line argument
Hello,
> Hacking the source is an acceptable interface for experimentation, but not very
> convenient.
>
> Instead, add a kernel command-line parameter mpam_partid_per_closid=<n>
> to specify how many PARTIDs are used to provide monitoring groups for each
> resctrl CLOSID.
>
> This change is not intended for upstream.
Are you looking for an alternative to using kernel command-line parameter?
Specifying the number of monitoring groups under one resource control group might make it easier for users to understand. For example, mongrps_per_ctrlgrp.
Best regards,
Shaopeng TAN
> Signed-off-by: Dave Martin <Dave.Martin@....com>
> ---
> drivers/platform/arm64/mpam/mpam_resctrl.c | 22
> ++++++++++++++++++++++
> 1 file changed, 22 insertions(+)
>
> diff --git a/drivers/platform/arm64/mpam/mpam_resctrl.c
> b/drivers/platform/arm64/mpam/mpam_resctrl.c
> index f834753a3274..eb1ef5d2bc57 100644
> --- a/drivers/platform/arm64/mpam/mpam_resctrl.c
> +++ b/drivers/platform/arm64/mpam/mpam_resctrl.c
> @@ -3,6 +3,9 @@
>
> #define pr_fmt(fmt) "mpam: resctrl: " fmt
>
> +#undef KBUILD_MODNAME
> +#define KBUILD_MODNAME "mpam"
> +
> #include <linux/arm_mpam.h>
> #include <linux/cacheinfo.h>
> #include <linux/cpu.h>
> @@ -10,6 +13,7 @@
> #include <linux/errno.h>
> #include <linux/limits.h>
> #include <linux/list.h>
> +#include <linux/moduleparam.h>
> #include <linux/printk.h>
> #include <linux/rculist.h>
> #include <linux/resctrl.h>
> @@ -158,6 +162,24 @@ static bool mpam_resctrl_hide_cdp(enum
> resctrl_res_level rid)
>
> static unsigned int partid_per_closid = 1;
>
> +static int mpam_resctrl_partid_per_closid_set(const char *val,
> + const struct kernel_param *kp)
> {
> + /*
> + * 16 in an arbitrary maximum, sufficient for experimentation
> + * but not ridiculously large:
> + */
> + return param_set_uint_minmax(val, kp, 1, 16); }
> +
> +static const struct kernel_param_ops mpam_resctrl_partid_per_closid_ops
> = {
> + .set = mpam_resctrl_partid_per_closid_set,
> + .get = param_get_uint,
> +};
> +
> +device_param_cb(partid_per_closid, &mpam_resctrl_partid_per_closid_ops,
> + &partid_per_closid, 0444);
> +
> static unsigned int mpam_num_pmg(void)
> {
> return mpam_pmg_max + 1;
> --
> 2.34.1
Powered by blists - more mailing lists