]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
x86/intel_rdt: Change closid type from int to u32
authorVikas Shivappa <vikas.shivappa@linux.intel.com>
Tue, 25 Jul 2017 21:14:33 +0000 (14:14 -0700)
committerSeth Forshee <seth.forshee@canonical.com>
Thu, 28 Sep 2017 20:54:04 +0000 (16:54 -0400)
BugLink: http://bugs.launchpad.net/bugs/1591609
OS associates a CLOSid(Class of service id) to a task by writing the
high 32 bits of per CPU IA32_PQR_ASSOC MSR when a task is scheduled in.
CPUID.(EAX=10H, ECX=1):EDX[15:0] enumerates the max CLOSID supported and
it is zero indexed. Hence change the type to u32 from int.

Signed-off-by: Vikas Shivappa <vikas.shivappa@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: ravi.v.shankar@intel.com
Cc: tony.luck@intel.com
Cc: fenghua.yu@intel.com
Cc: peterz@infradead.org
Cc: eranian@google.com
Cc: vikas.shivappa@intel.com
Cc: ak@linux.intel.com
Cc: davidcc@google.com
Cc: reinette.chatre@intel.com
Link: http://lkml.kernel.org/r/1501017287-28083-15-git-send-email-vikas.shivappa@linux.intel.com
(cherry picked from commit 0734ded1abee9439b0c5d7b62af1ead78aab895b)
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
arch/x86/include/asm/intel_rdt_sched.h
arch/x86/kernel/cpu/intel_rdt.h
arch/x86/kernel/cpu/intel_rdt_rdtgroup.c
include/linux/sched.h

index 4dee77b6de07500d29412a5c98876ff5fb7bebb8..1d8d45a773c25a7e4b8c9350fc0eb50e15a7008d 100644 (file)
@@ -46,7 +46,7 @@ static inline void intel_rdt_sched_in(void)
 {
        if (static_branch_likely(&rdt_alloc_enable_key)) {
                struct intel_pqr_state *state = this_cpu_ptr(&pqr_state);
-               int closid;
+               u32 closid;
 
                /*
                 * If this task has a closid assigned, use it.
index e8fb08f9ea891aface721911a28c01ce82823679..b2a2de360961ed7b731f7652cab8e1864e465074 100644 (file)
@@ -72,7 +72,7 @@ struct mongroup {
 struct rdtgroup {
        struct kernfs_node      *kn;
        struct list_head        rdtgroup_list;
-       int                     closid;
+       u32                     closid;
        struct cpumask          cpu_mask;
        int                     flags;
        atomic_t                waitcount;
index bee9f885dd200abcd9ef60c16f980a55d5e848eb..84040542184140cc2dc1d839e54bbe111c7a5e57 100644 (file)
@@ -77,7 +77,7 @@ static void closid_init(void)
 
 static int closid_alloc(void)
 {
-       int closid = ffs(closid_free_map);
+       u32 closid = ffs(closid_free_map);
 
        if (closid == 0)
                return -ENOSPC;
index f4e408fe855f91ffe6eb7bbf50b72bb1e023c5fa..b8b657dc9947dccd5f7ece04ec6694ec0e22a8d2 100644 (file)
@@ -899,7 +899,7 @@ struct task_struct {
        struct list_head                cg_list;
 #endif
 #ifdef CONFIG_INTEL_RDT
-       int                             closid;
+       u32                             closid;
 #endif
 #ifdef CONFIG_FUTEX
        struct robust_list_head __user  *robust_list;