Messages in this thread | | | Subject | Re: [PATCH] x86/resctrl: Check monitoring static key in MBM overflow handler | From | Xiaochen Shen <> | Date | Thu, 12 Dec 2019 03:18:37 +0800 |
| |
Hi,
I am sorry I sent out a wrong version of patch. Please ignore this patch. I will resend soon.
On 12/12/2019 1:41, Xiaochen Shen wrote: > Currently, there are three static keys in resctrl file system: > rdt_mon_enable_key and rdt_alloc_enable_key indicate if monitoring > feature and allocation feature is enabled respectively. rdt_enable_key > is enabled when either monitoring feature or allocation feature is > enabled. > > If no monitoring feature is supported (either hardware doesn't support > monitoring feature or the feature is disabled by kernel command line > option "rdt="), rdt_enable_key is still enabled but rdt_mon_enable_key > is disabled. > > MBM is a monitoring feature. MBM overflow handler intends to check if > monitoring feature is not enabled for fast return. So the accurate check > here is to check rdt_mon_enable_key instead of rdt_enable_key. > > Fixes: e33026831bdb ("x86/intel_rdt/mbm: Handle counter overflow") > Signed-off-by: Xiaochen Shen <xiaochen.shen@intel.com> > Reviewed-by: Fenghua Yu <fenghua.yu@intel.com> > Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> > --- > arch/x86/kernel/cpu/resctrl/internal.h | 1 + > arch/x86/kernel/cpu/resctrl/monitor.c | 4 ++-- > 2 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/arch/x86/kernel/cpu/resctrl/internal.h b/arch/x86/kernel/cpu/resctrl/internal.h > index e49b77283924..181c992f448c 100644 > --- a/arch/x86/kernel/cpu/resctrl/internal.h > +++ b/arch/x86/kernel/cpu/resctrl/internal.h > @@ -57,6 +57,7 @@ static inline struct rdt_fs_context *rdt_fc2context(struct fs_context *fc) > } > > DECLARE_STATIC_KEY_FALSE(rdt_enable_key); > +DECLARE_STATIC_KEY_FALSE(rdt_mon_enable_key); > > /** > * struct mon_evt - Entry in the event list of a resource > diff --git a/arch/x86/kernel/cpu/resctrl/monitor.c b/arch/x86/kernel/cpu/resctrl/monitor.c > index 397206f23d14..773124b0e18a 100644 > --- a/arch/x86/kernel/cpu/resctrl/monitor.c > +++ b/arch/x86/kernel/cpu/resctrl/monitor.c > @@ -514,7 +514,7 @@ void mbm_handle_overflow(struct work_struct *work) > > mutex_lock(&rdtgroup_mutex); > > - if (!static_branch_likely(&rdt_enable_key)) > + if (!static_branch_likely(&rdt_mon_enable_key)) > goto out_unlock; > > d = get_domain_from_cpu(cpu, &rdt_resources_all[RDT_RESOURCE_L3]); > @@ -543,7 +543,7 @@ void mbm_setup_overflow_handler(struct rdt_domain *dom, unsigned long delay_ms) > unsigned long delay = msecs_to_jiffies(delay_ms); > int cpu; > > - if (!static_branch_likely(&rdt_enable_key)) > + if (!static_branch_likely(&rdt_mon_enable_key)) > return; > cpu = cpumask_any(&dom->cpu_mask); > dom->mbm_work_cpu = cpu; >
-- Best regards, Xiaochen
| |