#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 X86_RESCTRL_EMPTY_CLOSID …
struct resctrl_pqr_state { … };
DECLARE_PER_CPU(struct resctrl_pqr_state, pqr_state);
extern bool rdt_alloc_capable;
extern bool rdt_mon_capable;
DECLARE_STATIC_KEY_FALSE(rdt_enable_key);
DECLARE_STATIC_KEY_FALSE(rdt_alloc_enable_key);
DECLARE_STATIC_KEY_FALSE(rdt_mon_enable_key);
static inline bool resctrl_arch_alloc_capable(void)
{ … }
static inline void resctrl_arch_enable_alloc(void)
{ … }
static inline void resctrl_arch_disable_alloc(void)
{ … }
static inline bool resctrl_arch_mon_capable(void)
{ … }
static inline void resctrl_arch_enable_mon(void)
{ … }
static inline void resctrl_arch_disable_mon(void)
{ … }
static inline void __resctrl_sched_in(struct task_struct *tsk)
{ … }
static inline unsigned int resctrl_arch_round_mon_val(unsigned int val)
{ … }
static inline void resctrl_arch_set_closid_rmid(struct task_struct *tsk,
u32 closid, u32 rmid)
{ … }
static inline bool resctrl_arch_match_closid(struct task_struct *tsk, u32 closid)
{ … }
static inline bool resctrl_arch_match_rmid(struct task_struct *tsk, u32 ignored,
u32 rmid)
{ … }
static inline void resctrl_sched_in(struct task_struct *tsk)
{ … }
static inline u32 resctrl_arch_system_num_rmid_idx(void)
{ … }
static inline void resctrl_arch_rmid_idx_decode(u32 idx, u32 *closid, u32 *rmid)
{ … }
static inline u32 resctrl_arch_rmid_idx_encode(u32 ignored, u32 rmid)
{ … }
struct rdt_resource;
static inline void *resctrl_arch_mon_ctx_alloc(struct rdt_resource *r, int evtid)
{
might_sleep();
return NULL;
};
static inline void resctrl_arch_mon_ctx_free(struct rdt_resource *r, int evtid,
void *ctx) { };
void resctrl_cpu_detect(struct cpuinfo_x86 *c);
#else
static inline void resctrl_sched_in(struct task_struct *tsk) {}
static inline void resctrl_cpu_detect(struct cpuinfo_x86 *c) {}
#endif
#endif