#define pr_fmt(fmt) …
#include <linux/cpu.h>
#include <linux/slab.h>
#include <linux/err.h>
#include <linux/cpuhotplug.h>
#include <asm/cpu_device_id.h>
#include <asm/resctrl.h>
#include "internal.h"
static DEFINE_MUTEX(domain_list_lock);
DEFINE_PER_CPU(struct resctrl_pqr_state, pqr_state);
int max_name_width, max_data_width;
bool rdt_alloc_capable;
static void mba_wrmsr_intel(struct msr_param *m);
static void cat_wrmsr(struct msr_param *m);
static void mba_wrmsr_amd(struct msr_param *m);
#define ctrl_domain_init(id) …
#define mon_domain_init(id) …
struct rdt_hw_resource rdt_resources_all[] = …;
u32 resctrl_arch_system_num_rmid_idx(void)
{ … }
static inline void cache_alloc_hsw_probe(void)
{ … }
bool is_mba_sc(struct rdt_resource *r)
{ … }
static inline bool rdt_get_mb_table(struct rdt_resource *r)
{ … }
static __init bool __get_mem_config_intel(struct rdt_resource *r)
{ … }
static __init bool __rdt_get_mem_config_amd(struct rdt_resource *r)
{ … }
static void rdt_get_cache_alloc_cfg(int idx, struct rdt_resource *r)
{ … }
static void rdt_get_cdp_config(int level)
{ … }
static void rdt_get_cdp_l3_config(void)
{ … }
static void rdt_get_cdp_l2_config(void)
{ … }
static void mba_wrmsr_amd(struct msr_param *m)
{ … }
static u32 delay_bw_map(unsigned long bw, struct rdt_resource *r)
{ … }
static void mba_wrmsr_intel(struct msr_param *m)
{ … }
static void cat_wrmsr(struct msr_param *m)
{ … }
struct rdt_ctrl_domain *get_ctrl_domain_from_cpu(int cpu, struct rdt_resource *r)
{ … }
struct rdt_mon_domain *get_mon_domain_from_cpu(int cpu, struct rdt_resource *r)
{ … }
u32 resctrl_arch_get_num_closid(struct rdt_resource *r)
{ … }
void rdt_ctrl_update(void *arg)
{ … }
struct rdt_domain_hdr *rdt_find_domain(struct list_head *h, int id,
struct list_head **pos)
{ … }
static void setup_default_ctrlval(struct rdt_resource *r, u32 *dc)
{ … }
static void ctrl_domain_free(struct rdt_hw_ctrl_domain *hw_dom)
{ … }
static void mon_domain_free(struct rdt_hw_mon_domain *hw_dom)
{ … }
static int domain_setup_ctrlval(struct rdt_resource *r, struct rdt_ctrl_domain *d)
{ … }
static int arch_domain_mbm_alloc(u32 num_rmid, struct rdt_hw_mon_domain *hw_dom)
{ … }
static int get_domain_id_from_scope(int cpu, enum resctrl_scope scope)
{ … }
static void domain_add_cpu_ctrl(int cpu, struct rdt_resource *r)
{ … }
static void domain_add_cpu_mon(int cpu, struct rdt_resource *r)
{ … }
static void domain_add_cpu(int cpu, struct rdt_resource *r)
{ … }
static void domain_remove_cpu_ctrl(int cpu, struct rdt_resource *r)
{ … }
static void domain_remove_cpu_mon(int cpu, struct rdt_resource *r)
{ … }
static void domain_remove_cpu(int cpu, struct rdt_resource *r)
{ … }
static void clear_closid_rmid(int cpu)
{ … }
static int resctrl_arch_online_cpu(unsigned int cpu)
{ … }
static int resctrl_arch_offline_cpu(unsigned int cpu)
{ … }
static __init void rdt_init_padding(void)
{ … }
enum { … };
#define RDT_OPT(idx, n, f) …
struct rdt_options { … };
static struct rdt_options rdt_options[] __initdata = …;
#define NUM_RDT_OPTIONS …
static int __init set_rdt_options(char *str)
{ … }
__setup(…);
bool __init rdt_cpu_has(int flag)
{ … }
static __init bool get_mem_config(void)
{ … }
static __init bool get_slow_mem_config(void)
{ … }
static __init bool get_rdt_alloc_resources(void)
{ … }
static __init bool get_rdt_mon_resources(void)
{ … }
static __init void __check_quirks_intel(void)
{ … }
static __init void check_quirks(void)
{ … }
static __init bool get_rdt_resources(void)
{ … }
static __init void rdt_init_res_defs_intel(void)
{ … }
static __init void rdt_init_res_defs_amd(void)
{ … }
static __init void rdt_init_res_defs(void)
{ … }
static enum cpuhp_state rdt_online;
void resctrl_cpu_detect(struct cpuinfo_x86 *c)
{ … }
static int __init resctrl_late_init(void)
{ … }
late_initcall(resctrl_late_init);
static void __exit resctrl_exit(void)
{ … }
__exitcall(…);