KVM
|
#include <linux/nospec.h>
Go to the source code of this file.
Classes | |
struct | kvm_pmu_ops |
Macros | |
#define | vcpu_to_pmu(vcpu) (&(vcpu)->arch.pmu) |
#define | pmu_to_vcpu(pmu) (container_of((pmu), struct kvm_vcpu, arch.pmu)) |
#define | pmc_to_pmu(pmc) (&(pmc)->vcpu->arch.pmu) |
#define | MSR_IA32_MISC_ENABLE_PMU_RO_MASK |
#define | fixed_ctrl_field(ctrl_reg, idx) (((ctrl_reg) >> ((idx)*4)) & 0xf) |
#define | VMWARE_BACKDOOR_PMC_HOST_TSC 0x10000 |
#define | VMWARE_BACKDOOR_PMC_REAL_TIME 0x10001 |
#define | VMWARE_BACKDOOR_PMC_APPARENT_TIME 0x10002 |
Functions | |
void | kvm_pmu_ops_update (const struct kvm_pmu_ops *pmu_ops) |
static bool | kvm_pmu_has_perf_global_ctrl (struct kvm_pmu *pmu) |
static u64 | pmc_bitmask (struct kvm_pmc *pmc) |
static u64 | pmc_read_counter (struct kvm_pmc *pmc) |
void | pmc_write_counter (struct kvm_pmc *pmc, u64 val) |
static bool | pmc_is_gp (struct kvm_pmc *pmc) |
static bool | pmc_is_fixed (struct kvm_pmc *pmc) |
static bool | kvm_valid_perf_global_ctrl (struct kvm_pmu *pmu, u64 data) |
static struct kvm_pmc * | get_gp_pmc (struct kvm_pmu *pmu, u32 msr, u32 base) |
static struct kvm_pmc * | get_fixed_pmc (struct kvm_pmu *pmu, u32 msr) |
static bool | pmc_speculative_in_use (struct kvm_pmc *pmc) |
static void | kvm_init_pmu_capability (const struct kvm_pmu_ops *pmu_ops) |
static void | kvm_pmu_request_counter_reprogram (struct kvm_pmc *pmc) |
static void | reprogram_counters (struct kvm_pmu *pmu, u64 diff) |
static bool | pmc_is_globally_enabled (struct kvm_pmc *pmc) |
void | kvm_pmu_deliver_pmi (struct kvm_vcpu *vcpu) |
void | kvm_pmu_handle_event (struct kvm_vcpu *vcpu) |
int | kvm_pmu_rdpmc (struct kvm_vcpu *vcpu, unsigned pmc, u64 *data) |
bool | kvm_pmu_is_valid_rdpmc_ecx (struct kvm_vcpu *vcpu, unsigned int idx) |
bool | kvm_pmu_is_valid_msr (struct kvm_vcpu *vcpu, u32 msr) |
int | kvm_pmu_get_msr (struct kvm_vcpu *vcpu, struct msr_data *msr_info) |
int | kvm_pmu_set_msr (struct kvm_vcpu *vcpu, struct msr_data *msr_info) |
void | kvm_pmu_refresh (struct kvm_vcpu *vcpu) |
void | kvm_pmu_init (struct kvm_vcpu *vcpu) |
void | kvm_pmu_cleanup (struct kvm_vcpu *vcpu) |
void | kvm_pmu_destroy (struct kvm_vcpu *vcpu) |
int | kvm_vm_ioctl_set_pmu_event_filter (struct kvm *kvm, void __user *argp) |
void | kvm_pmu_trigger_event (struct kvm_vcpu *vcpu, u64 perf_hw_id) |
bool | is_vmware_backdoor_pmc (u32 pmc_idx) |
Variables | |
struct x86_pmu_capability | kvm_pmu_cap |
struct kvm_pmu_ops | intel_pmu_ops |
struct kvm_pmu_ops | amd_pmu_ops |
#define fixed_ctrl_field | ( | ctrl_reg, | |
idx | |||
) | (((ctrl_reg) >> ((idx)*4)) & 0xf) |
#define MSR_IA32_MISC_ENABLE_PMU_RO_MASK |
#define pmu_to_vcpu | ( | pmu | ) | (container_of((pmu), struct kvm_vcpu, arch.pmu)) |
|
inlinestatic |
|
inlinestatic |
bool is_vmware_backdoor_pmc | ( | u32 | pmc_idx | ) |
|
inlinestatic |
void kvm_pmu_cleanup | ( | struct kvm_vcpu * | vcpu | ) |
Definition at line 767 of file pmu.c.
void kvm_pmu_deliver_pmi | ( | struct kvm_vcpu * | vcpu | ) |
Definition at line 594 of file pmu.c.
void kvm_pmu_destroy | ( | struct kvm_vcpu * | vcpu | ) |
int kvm_pmu_get_msr | ( | struct kvm_vcpu * | vcpu, |
struct msr_data * | msr_info | ||
) |
void kvm_pmu_handle_event | ( | struct kvm_vcpu * | vcpu | ) |
|
inlinestatic |
void kvm_pmu_init | ( | struct kvm_vcpu * | vcpu | ) |
bool kvm_pmu_is_valid_msr | ( | struct kvm_vcpu * | vcpu, |
u32 | msr | ||
) |
bool kvm_pmu_is_valid_rdpmc_ecx | ( | struct kvm_vcpu * | vcpu, |
unsigned int | idx | ||
) |
void kvm_pmu_ops_update | ( | const struct kvm_pmu_ops * | pmu_ops | ) |
int kvm_pmu_rdpmc | ( | struct kvm_vcpu * | vcpu, |
unsigned | pmc, | ||
u64 * | data | ||
) |
Definition at line 568 of file pmu.c.
void kvm_pmu_refresh | ( | struct kvm_vcpu * | vcpu | ) |
|
inlinestatic |
int kvm_pmu_set_msr | ( | struct kvm_vcpu * | vcpu, |
struct msr_data * | msr_info | ||
) |
Definition at line 650 of file pmu.c.
void kvm_pmu_trigger_event | ( | struct kvm_vcpu * | vcpu, |
u64 | perf_hw_id | ||
) |
|
inlinestatic |
int kvm_vm_ioctl_set_pmu_event_filter | ( | struct kvm * | kvm, |
void __user * | argp | ||
) |
Definition at line 928 of file pmu.c.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
void pmc_write_counter | ( | struct kvm_pmc * | pmc, |
u64 | val | ||
) |
|
inlinestatic |
|
extern |
|
extern |