Hi Babu, On 7/25/25 11:29 AM, Babu Moger wrote: > diff --git a/fs/resctrl/rdtgroup.c b/fs/resctrl/rdtgroup.c > index 1aeac350774d..68ba08e95a54 100644 > --- a/fs/resctrl/rdtgroup.c > +++ b/fs/resctrl/rdtgroup.c > @@ -1865,6 +1865,75 @@ static int resctrl_mbm_assign_mode_show(struct kernfs_open_file *of, > return 0; > } > > +static ssize_t resctrl_mbm_assign_mode_write(struct kernfs_open_file *of, > + char *buf, size_t nbytes, loff_t off) Please move to monitor.c > +{ > + struct rdt_resource *r = rdt_kn_parent_priv(of->kn); > + struct rdt_mon_domain *d; > + int ret = 0; > + bool enable; > + > + /* Valid input requires a trailing newline */ > + if (nbytes == 0 || buf[nbytes - 1] != '\n') > + return -EINVAL; > + > + buf[nbytes - 1] = '\0'; > + > + cpus_read_lock(); > + mutex_lock(&rdtgroup_mutex); > + > + rdt_last_cmd_clear(); > + > + if (!strcmp(buf, "default")) { > + enable = 0; > + } else if (!strcmp(buf, "mbm_event")) { > + if (r->mon.mbm_cntr_assignable) { > + enable = 1; > + } else { > + ret = -EINVAL; > + rdt_last_cmd_puts("mbm_event mode is not supported\n"); > + goto out_unlock; > + } > + } else { > + ret = -EINVAL; > + rdt_last_cmd_puts("Unsupported assign mode\n"); > + goto out_unlock; > + } > + > + if (enable != resctrl_arch_mbm_cntr_assign_enabled(r)) { > + ret = resctrl_arch_mbm_cntr_assign_set(r, enable); > + if (ret) > + goto out_unlock; > + > + /* Update the visibility of BMEC related files */ > + resctrl_bmec_files_show(r, NULL, !enable); > + > + /* > + * Initialize the default memory transaction values for > + * total and local events. > + */ > + if (resctrl_is_mon_event_enabled(QOS_L3_MBM_TOTAL_EVENT_ID)) > + mon_event_all[QOS_L3_MBM_TOTAL_EVENT_ID].evt_cfg = MAX_EVT_CONFIG_BITS; > + if (resctrl_is_mon_event_enabled(QOS_L3_MBM_LOCAL_EVENT_ID)) > + mon_event_all[QOS_L3_MBM_LOCAL_EVENT_ID].evt_cfg = READS_TO_LOCAL_MEM | > + READS_TO_LOCAL_S_MEM | > + NON_TEMP_WRITE_TO_LOCAL_MEM; This needs to take into account the configurations that hardware supports. Reinette