On 12/8/2023 2:09 PM, Peter Newman wrote: > On Fri, Dec 8, 2023 at 1:57 PM Tony Luck <tony.luck@xxxxxxxxx> wrote: >> >> On Fri, Dec 08, 2023 at 10:17:08AM -0800, Peter Newman wrote: >>> Hi Tony, >>> >>> On Thu, Dec 7, 2023 at 11:56 AM Tony Luck <tony.luck@xxxxxxxxx> wrote: >>>> @@ -2715,7 +2723,25 @@ static int rdt_parse_param(struct fs_context *fc, struct fs_parameter *param) >>>> case Opt_mba_mbps: >>>> if (!supports_mba_mbps()) >>>> return -EINVAL; >>>> - ctx->enable_mba_mbps = true; >>>> + if (is_mbm_local_enabled()) >>>> + ctx->enable_mba_mbps_local = true; >>>> + else >>>> + return -EINVAL; >>>> + return 0; >>>> + case Opt_mba_mbps_event: >>>> + if (!supports_mba_mbps()) >>>> + return -EINVAL; >>>> + if (!strcmp("mbm_local_bytes", param->string)) { >>>> + if (!is_mbm_local_enabled()) >>>> + return -EINVAL; >>>> + ctx->enable_mba_mbps_local = true; >>>> + } else if (!strcmp("mbm_total_bytes", param->string)) { >>>> + if (!is_mbm_total_enabled()) >>>> + return -EINVAL; >>>> + ctx->enable_mba_mbps_total = true; >>>> + } else { >>>> + return -EINVAL; >>> >>> It looks like if I pass >>> "mba_MBps_event=mbm_total_bytes,mba_MBps_event=mbm_local_bytes" I can >>> set both flags true. >> >> That's going to be confusing. I'll add code to stop the user from >> passing both options. > > Also kind of confusing, after reading the second patch, I realized > "mba_MBps_event=mbm_total_bytes,mba_MBps" also results in both being > set. If you're able to fail the mount operation if both flags somehow > get set, that would address this one too. Are two separate flags required? All existing options within struct rdt_fs_context are of type bool but that does not imply that it is the required type for all. Reinette