lkml.org 
[lkml]   [2018]   [Jun]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH V7 24/41] x86/intel_rdt: Introduce pseudo-locked region
    Date
    A pseudo-locked region is introduced representing an instance of a
    pseudo-locked cache region. Each cache instance (domain) can support one
    pseudo-locked region. Similarly a resource group can be used for one
    pseudo-locked region.

    Include a pointer to a pseudo-locked region from the domain and resource
    group structures.

    Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: fenghua.yu@intel.com
    Cc: tony.luck@intel.com
    Cc: vikas.shivappa@linux.intel.com
    Cc: gavin.hindman@intel.com
    Cc: jithu.joseph@intel.com
    Cc: dave.hansen@intel.com
    Cc: hpa@zytor.com
    Link: https://lkml.kernel.org/r/9bdcbce670d1ca6067d6a0f2d1c27297901bc56a.1527593971.git.reinette.chatre@intel.com
    ---
    arch/x86/kernel/cpu/intel_rdt.h | 64 +++++++++++++++++++++------------
    1 file changed, 41 insertions(+), 23 deletions(-)

    diff --git a/arch/x86/kernel/cpu/intel_rdt.h b/arch/x86/kernel/cpu/intel_rdt.h
    index c9b8d3d1d413..02ae088fd745 100644
    --- a/arch/x86/kernel/cpu/intel_rdt.h
    +++ b/arch/x86/kernel/cpu/intel_rdt.h
    @@ -122,6 +122,20 @@ struct mongroup {
    u32 rmid;
    };

    +/**
    + * struct pseudo_lock_region - pseudo-lock region information
    + * @r: RDT resource to which this pseudo-locked region
    + * belongs
    + * @d: RDT domain to which this pseudo-locked region
    + * belongs
    + * @cbm: bitmask of the pseudo-locked region
    + */
    +struct pseudo_lock_region {
    + struct rdt_resource *r;
    + struct rdt_domain *d;
    + u32 cbm;
    +};
    +
    /**
    * struct rdtgroup - store rdtgroup's data in resctrl file system.
    * @kn: kernfs node
    @@ -135,17 +149,19 @@ struct mongroup {
    * monitor only or ctrl_mon group
    * @mon: mongroup related data
    * @mode: mode of resource group
    + * @plr: pseudo-locked region
    */
    struct rdtgroup {
    - struct kernfs_node *kn;
    - struct list_head rdtgroup_list;
    - u32 closid;
    - struct cpumask cpu_mask;
    - int flags;
    - atomic_t waitcount;
    - enum rdt_group_type type;
    - struct mongroup mon;
    - enum rdtgrp_mode mode;
    + struct kernfs_node *kn;
    + struct list_head rdtgroup_list;
    + u32 closid;
    + struct cpumask cpu_mask;
    + int flags;
    + atomic_t waitcount;
    + enum rdt_group_type type;
    + struct mongroup mon;
    + enum rdtgrp_mode mode;
    + struct pseudo_lock_region *plr;
    };

    /* rdtgroup.flags */
    @@ -246,22 +262,24 @@ struct mbm_state {
    * @mbps_val: When mba_sc is enabled, this holds the bandwidth in MBps
    * @new_ctrl: new ctrl value to be loaded
    * @have_new_ctrl: did user provide new_ctrl for this domain
    + * @plr: pseudo-locked region (if any) associated with domain
    */
    struct rdt_domain {
    - struct list_head list;
    - int id;
    - struct cpumask cpu_mask;
    - unsigned long *rmid_busy_llc;
    - struct mbm_state *mbm_total;
    - struct mbm_state *mbm_local;
    - struct delayed_work mbm_over;
    - struct delayed_work cqm_limbo;
    - int mbm_work_cpu;
    - int cqm_work_cpu;
    - u32 *ctrl_val;
    - u32 *mbps_val;
    - u32 new_ctrl;
    - bool have_new_ctrl;
    + struct list_head list;
    + int id;
    + struct cpumask cpu_mask;
    + unsigned long *rmid_busy_llc;
    + struct mbm_state *mbm_total;
    + struct mbm_state *mbm_local;
    + struct delayed_work mbm_over;
    + struct delayed_work cqm_limbo;
    + int mbm_work_cpu;
    + int cqm_work_cpu;
    + u32 *ctrl_val;
    + u32 *mbps_val;
    + u32 new_ctrl;
    + bool have_new_ctrl;
    + struct pseudo_lock_region *plr;
    };

    /**
    --
    2.17.0
    \
     
     \ /
      Last update: 2018-06-23 00:48    [W:4.346 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site