x86/resctrl: Rename asm/resctrl_sched.h to asm/resctrl.h
authorReinette Chatre <reinette.chatre@intel.com>
Tue, 5 May 2020 22:36:12 +0000 (15:36 -0700)
committerBorislav Petkov <bp@suse.de>
Wed, 6 May 2020 15:45:22 +0000 (17:45 +0200)
asm/resctrl_sched.h is dedicated to the code used for configuration
of the CPU resource control state when a task is scheduled.

Rename resctrl_sched.h to resctrl.h in preparation of additions that
will no longer make this file dedicated to work done during scheduling.

No functional change.

Suggested-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Link: https://lkml.kernel.org/r/6914e0ef880b539a82a6d889f9423496d471ad1d.1588715690.git.reinette.chatre@intel.com
MAINTAINERS
arch/x86/include/asm/resctrl.h [new file with mode: 0644]
arch/x86/include/asm/resctrl_sched.h [deleted file]
arch/x86/kernel/cpu/resctrl/core.c
arch/x86/kernel/cpu/resctrl/pseudo_lock.c
arch/x86/kernel/cpu/resctrl/rdtgroup.c
arch/x86/kernel/process_32.c
arch/x86/kernel/process_64.c

index 2926327e497665ecacffdb4b89f438c14432e434..ecfb07ab49b0b58734e979e1463104c4032c3b7d 100644 (file)
@@ -14227,7 +14227,7 @@ M:      Reinette Chatre <reinette.chatre@intel.com>
 L:     linux-kernel@vger.kernel.org
 S:     Supported
 F:     Documentation/x86/resctrl*
-F:     arch/x86/include/asm/resctrl_sched.h
+F:     arch/x86/include/asm/resctrl.h
 F:     arch/x86/kernel/cpu/resctrl/
 F:     tools/testing/selftests/resctrl/
 
diff --git a/arch/x86/include/asm/resctrl.h b/arch/x86/include/asm/resctrl.h
new file mode 100644 (file)
index 0000000..99b5728
--- /dev/null
@@ -0,0 +1,93 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _ASM_X86_RESCTRL_H
+#define _ASM_X86_RESCTRL_H
+
+#ifdef CONFIG_X86_CPU_RESCTRL
+
+#include <linux/sched.h>
+#include <linux/jump_label.h>
+
+#define IA32_PQR_ASSOC 0x0c8f
+
+/**
+ * struct resctrl_pqr_state - State cache for the PQR MSR
+ * @cur_rmid:          The cached Resource Monitoring ID
+ * @cur_closid:        The cached Class Of Service ID
+ * @default_rmid:      The user assigned Resource Monitoring ID
+ * @default_closid:    The user assigned cached Class Of Service ID
+ *
+ * The upper 32 bits of IA32_PQR_ASSOC contain closid and the
+ * lower 10 bits rmid. The update to IA32_PQR_ASSOC always
+ * contains both parts, so we need to cache them. This also
+ * stores the user configured per cpu CLOSID and RMID.
+ *
+ * The cache also helps to avoid pointless updates if the value does
+ * not change.
+ */
+struct resctrl_pqr_state {
+       u32                     cur_rmid;
+       u32                     cur_closid;
+       u32                     default_rmid;
+       u32                     default_closid;
+};
+
+DECLARE_PER_CPU(struct resctrl_pqr_state, pqr_state);
+
+DECLARE_STATIC_KEY_FALSE(rdt_enable_key);
+DECLARE_STATIC_KEY_FALSE(rdt_alloc_enable_key);
+DECLARE_STATIC_KEY_FALSE(rdt_mon_enable_key);
+
+/*
+ * __resctrl_sched_in() - Writes the task's CLOSid/RMID to IA32_PQR_MSR
+ *
+ * Following considerations are made so that this has minimal impact
+ * on scheduler hot path:
+ * - This will stay as no-op unless we are running on an Intel SKU
+ *   which supports resource control or monitoring and we enable by
+ *   mounting the resctrl file system.
+ * - Caches the per cpu CLOSid/RMID values and does the MSR write only
+ *   when a task with a different CLOSid/RMID is scheduled in.
+ * - We allocate RMIDs/CLOSids globally in order to keep this as
+ *   simple as possible.
+ * Must be called with preemption disabled.
+ */
+static void __resctrl_sched_in(void)
+{
+       struct resctrl_pqr_state *state = this_cpu_ptr(&pqr_state);
+       u32 closid = state->default_closid;
+       u32 rmid = state->default_rmid;
+
+       /*
+        * If this task has a closid/rmid assigned, use it.
+        * Else use the closid/rmid assigned to this cpu.
+        */
+       if (static_branch_likely(&rdt_alloc_enable_key)) {
+               if (current->closid)
+                       closid = current->closid;
+       }
+
+       if (static_branch_likely(&rdt_mon_enable_key)) {
+               if (current->rmid)
+                       rmid = current->rmid;
+       }
+
+       if (closid != state->cur_closid || rmid != state->cur_rmid) {
+               state->cur_closid = closid;
+               state->cur_rmid = rmid;
+               wrmsr(IA32_PQR_ASSOC, rmid, closid);
+       }
+}
+
+static inline void resctrl_sched_in(void)
+{
+       if (static_branch_likely(&rdt_enable_key))
+               __resctrl_sched_in();
+}
+
+#else
+
+static inline void resctrl_sched_in(void) {}
+
+#endif /* CONFIG_X86_CPU_RESCTRL */
+
+#endif /* _ASM_X86_RESCTRL_H */
diff --git a/arch/x86/include/asm/resctrl_sched.h b/arch/x86/include/asm/resctrl_sched.h
deleted file mode 100644 (file)
index f6b7fe2..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _ASM_X86_RESCTRL_SCHED_H
-#define _ASM_X86_RESCTRL_SCHED_H
-
-#ifdef CONFIG_X86_CPU_RESCTRL
-
-#include <linux/sched.h>
-#include <linux/jump_label.h>
-
-#define IA32_PQR_ASSOC 0x0c8f
-
-/**
- * struct resctrl_pqr_state - State cache for the PQR MSR
- * @cur_rmid:          The cached Resource Monitoring ID
- * @cur_closid:        The cached Class Of Service ID
- * @default_rmid:      The user assigned Resource Monitoring ID
- * @default_closid:    The user assigned cached Class Of Service ID
- *
- * The upper 32 bits of IA32_PQR_ASSOC contain closid and the
- * lower 10 bits rmid. The update to IA32_PQR_ASSOC always
- * contains both parts, so we need to cache them. This also
- * stores the user configured per cpu CLOSID and RMID.
- *
- * The cache also helps to avoid pointless updates if the value does
- * not change.
- */
-struct resctrl_pqr_state {
-       u32                     cur_rmid;
-       u32                     cur_closid;
-       u32                     default_rmid;
-       u32                     default_closid;
-};
-
-DECLARE_PER_CPU(struct resctrl_pqr_state, pqr_state);
-
-DECLARE_STATIC_KEY_FALSE(rdt_enable_key);
-DECLARE_STATIC_KEY_FALSE(rdt_alloc_enable_key);
-DECLARE_STATIC_KEY_FALSE(rdt_mon_enable_key);
-
-/*
- * __resctrl_sched_in() - Writes the task's CLOSid/RMID to IA32_PQR_MSR
- *
- * Following considerations are made so that this has minimal impact
- * on scheduler hot path:
- * - This will stay as no-op unless we are running on an Intel SKU
- *   which supports resource control or monitoring and we enable by
- *   mounting the resctrl file system.
- * - Caches the per cpu CLOSid/RMID values and does the MSR write only
- *   when a task with a different CLOSid/RMID is scheduled in.
- * - We allocate RMIDs/CLOSids globally in order to keep this as
- *   simple as possible.
- * Must be called with preemption disabled.
- */
-static void __resctrl_sched_in(void)
-{
-       struct resctrl_pqr_state *state = this_cpu_ptr(&pqr_state);
-       u32 closid = state->default_closid;
-       u32 rmid = state->default_rmid;
-
-       /*
-        * If this task has a closid/rmid assigned, use it.
-        * Else use the closid/rmid assigned to this cpu.
-        */
-       if (static_branch_likely(&rdt_alloc_enable_key)) {
-               if (current->closid)
-                       closid = current->closid;
-       }
-
-       if (static_branch_likely(&rdt_mon_enable_key)) {
-               if (current->rmid)
-                       rmid = current->rmid;
-       }
-
-       if (closid != state->cur_closid || rmid != state->cur_rmid) {
-               state->cur_closid = closid;
-               state->cur_rmid = rmid;
-               wrmsr(IA32_PQR_ASSOC, rmid, closid);
-       }
-}
-
-static inline void resctrl_sched_in(void)
-{
-       if (static_branch_likely(&rdt_enable_key))
-               __resctrl_sched_in();
-}
-
-#else
-
-static inline void resctrl_sched_in(void) {}
-
-#endif /* CONFIG_X86_CPU_RESCTRL */
-
-#endif /* _ASM_X86_RESCTRL_SCHED_H */
index d8cc5223b7ce89e8dc3703bc714b0fe5d29d1d8e..6f38c88226afc16ef10e65b78ba048e9444dd0cb 100644 (file)
@@ -22,7 +22,7 @@
 #include <linux/cpuhotplug.h>
 
 #include <asm/intel-family.h>
-#include <asm/resctrl_sched.h>
+#include <asm/resctrl.h>
 #include "internal.h"
 
 /* Mutex to protect rdtgroup access. */
index d7623e1b927d1d9fbdc53c59dd8ed4c06c9e64dd..4bd28b388a1aa77af2b3fca81a27b4e5f1ce8173 100644 (file)
@@ -24,7 +24,7 @@
 
 #include <asm/cacheflush.h>
 #include <asm/intel-family.h>
-#include <asm/resctrl_sched.h>
+#include <asm/resctrl.h>
 #include <asm/perf_event.h>
 
 #include "../../events/perf_event.h" /* For X86_CONFIG() */
index 5a359d9fcc055701956d36a4857f15853702e1c6..6276ae0159458f8ec8bf7d5dc7662cc505e59677 100644 (file)
@@ -29,7 +29,7 @@
 
 #include <uapi/linux/magic.h>
 
-#include <asm/resctrl_sched.h>
+#include <asm/resctrl.h>
 #include "internal.h"
 
 DEFINE_STATIC_KEY_FALSE(rdt_enable_key);
index 954b013cc585f1e1972396b9a57761c69b939ad5..538d4e8d6589d4cb6206df7988b3ff6e6cc84f83 100644 (file)
@@ -52,7 +52,7 @@
 #include <asm/debugreg.h>
 #include <asm/switch_to.h>
 #include <asm/vm86.h>
-#include <asm/resctrl_sched.h>
+#include <asm/resctrl.h>
 #include <asm/proto.h>
 
 #include "process.h"
index 5ef9d8f25b0e809e186d86f5cfb0daf004a2a2c7..0c169a5687e1caa56b49306b570f3cb678bc34d2 100644 (file)
@@ -52,7 +52,7 @@
 #include <asm/switch_to.h>
 #include <asm/xen/hypervisor.h>
 #include <asm/vdso.h>
-#include <asm/resctrl_sched.h>
+#include <asm/resctrl.h>
 #include <asm/unistd.h>
 #include <asm/fsgsbase.h>
 #ifdef CONFIG_IA32_EMULATION