Defined in 1 files as a function:
Referenced in 6 files:
- arch/x86/kvm/pmu.c
- arch/x86/kvm/pmu.h
- arch/x86/kvm/svm/pmu.c
- arch/x86/kvm/svm/svm.c, line 759
- arch/x86/kvm/vmx/nested.c, line 713
- arch/x86/kvm/vmx/vmx.c
Smatch caller information:
arch/x86/kvm/svm/pmu.c amd_pmc_is_disabled_in_current_mode() -> kvm_vcpu_has_mediated_pmu()
| Type | Parameter | Key | Value |
|---|
arch/x86/kvm/svm/pmu.c amd_pmu_refresh() -> kvm_vcpu_has_mediated_pmu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | vcpu | 4096-ptr_max |
| DATA_SOURCE | 0 | vcpu | $0 |
arch/x86/kvm/svm/pmu.c pmc_read_counter() -> kvm_vcpu_has_mediated_pmu()
| Type | Parameter | Key | Value |
|---|
arch/x86/kvm/pmu.c kvm_handle_guest_mediated_pmi() -> kvm_vcpu_has_mediated_pmu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | vcpu | 4096-ptr_max |
| DATA_SOURCE | 0 | vcpu | r kvm_get_running_vcpu |
arch/x86/kvm/pmu.c kvm_mediated_pmu_load() -> kvm_vcpu_has_mediated_pmu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | vcpu | 4096-ptr_max |
| BUF_SIZE | 0 | vcpu | s32min-(-2),1-s32max |
| BUF_SIZE | 0 | vcpu | s32min-(-2),1-s32max |
| CAPPED_DATA | 0 | vcpu->arch.host_debugctl | 1 |
| CAPPED_DATA | 0 | vcpu->kvm | 1 |
| CAPPED_DATA | 0 | vcpu->kvm->mm | 1 |
| CAPPED_DATA | 0 | vcpu->kvm->srcu.srcu_ctrp | 1 |
| DATA_SOURCE | 0 | vcpu | $0 |
| NOSPEC | 0 | vcpu->arch.xen.runstate2_cache.pfn | |
| NOSPEC | 0 | vcpu->arch.xen.runstate_cache.pfn | |
| PREEMPT_ADD | |||
| HOST_DATA | 0 | vcpu->arch.host_debugctl | 0-u64max |
| USER_DATA | 0 | vcpu->arch.apic->lapic_timer.expired_tscdeadline | 0-u64max |
| USER_DATA | 0 | vcpu->arch.apic->lapic_timer.tscdeadline | 0-u64max |
| USER_DATA | 0 | vcpu->arch.apic->sipi_vector | 1-255[c] |
| USER_DATA | 0 | vcpu->arch.cr8 | 0-14 |
| USER_DATA | 0 | vcpu->arch.exception.payload | 0-u64max |
| USER_DATA | 0 | vcpu->arch.l1_tsc_offset | 0-u64max |
| USER_DATA | 0 | vcpu->arch.mmu->root.pgd | 0-u64max |
| USER_DATA | 0 | vcpu->arch.tsc_offset | 0-u64max |
| USER_DATA | 0 | vcpu->arch.xen.runstate2_cache.gpa | 0-18446744073709551614[c] |
| USER_DATA | 0 | vcpu->arch.xen.runstate2_cache.pfn | 0-4503599627370494[c] |
| USER_DATA | 0 | vcpu->arch.xen.runstate2_cache.uhva | 0-u64max[c] |
| USER_DATA | 0 | vcpu->arch.xen.runstate_cache.gpa | 0-18446744073709551614[c] |
| USER_DATA | 0 | vcpu->arch.xen.runstate_cache.pfn | 0-4503599627370494[c] |
| USER_DATA | 0 | vcpu->arch.xen.runstate_cache.uhva | 0-u64max[c] |
| USER_DATA | 0 | *vcpu->arch.emulate_ctxt->fetch.end | 0-255 |
| USER_DATA | 0 | *vcpu->arch.sev_pio_data | s64min-s64max |
| NO_OVERFLOW_SIMPLE | 0 | vcpu->arch.mmu_external_spt_cache.capacity | |
| NO_OVERFLOW_SIMPLE | 0 | vcpu->arch.mmu_external_spt_cache.kmem_cache->object_size | |
| NO_OVERFLOW_SIMPLE | 0 | vcpu->arch.mmu_external_spt_cache.kmem_cache->sheaf_capacity | |
| NO_OVERFLOW_SIMPLE | 0 | vcpu->arch.mmu_external_spt_cache.nobjs | |
| NO_OVERFLOW_SIMPLE | 0 | vcpu->arch.mmu_page_header_cache.capacity | |
| NO_OVERFLOW_SIMPLE | 0 | vcpu->arch.mmu_page_header_cache.kmem_cache->object_size | |
| NO_OVERFLOW_SIMPLE | 0 | vcpu->arch.mmu_page_header_cache.nobjs | |
| NO_OVERFLOW_SIMPLE | 0 | vcpu->arch.mmu_pte_list_desc_cache.capacity | |
| NO_OVERFLOW_SIMPLE | 0 | vcpu->arch.mmu_pte_list_desc_cache.kmem_cache->object_size | |
| NO_OVERFLOW_SIMPLE | 0 | vcpu->arch.mmu_pte_list_desc_cache.kmem_cache->sheaf_capacity | |
| NO_OVERFLOW_SIMPLE | 0 | vcpu->arch.mmu_pte_list_desc_cache.nobjs | |
| NO_OVERFLOW_SIMPLE | 0 | vcpu->arch.mmu_shadow_page_cache.capacity | |
| NO_OVERFLOW_SIMPLE | 0 | vcpu->arch.mmu_shadow_page_cache.kmem_cache->object_size | |
| NO_OVERFLOW_SIMPLE | 0 | vcpu->arch.mmu_shadow_page_cache.nobjs | |
| NO_OVERFLOW_SIMPLE | 0 | vcpu->arch.mmu_shadowed_info_cache.capacity | |
| NO_OVERFLOW_SIMPLE | 0 | vcpu->arch.mmu_shadowed_info_cache.kmem_cache->object_size | |
| NO_OVERFLOW_SIMPLE | 0 | vcpu->arch.mmu_shadowed_info_cache.nobjs | |
| NO_OVERFLOW_SIMPLE | 0 | vcpu->arch.pio.count | |
| NO_OVERFLOW_SIMPLE | 0 | vcpu->arch.pio.size | |
| NO_OVERFLOW_SIMPLE | 0 | vcpu->run->io.count | |
| NO_OVERFLOW_SIMPLE | 0 | vcpu->run->io.size | |
| USER_PTR | 0 | vcpu->arch.emulate_ctxt->fetch.end | |
| USER_PTR | 0 | vcpu->arch.pdptrs | |
| LOCK2 | irq | ||
| LOCK2 | 0 | &vcpu->mutex | |
| TYPE_LOCK | (struct kvm_vcpu)->mutex |
arch/x86/kvm/pmu.c kvm_mediated_pmu_put() -> kvm_vcpu_has_mediated_pmu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | vcpu | $0 |
arch/x86/kvm/pmu.c kvm_need_any_pmc_intercept() -> kvm_vcpu_has_mediated_pmu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | vcpu | 4096-ptr_max |
| DATA_SOURCE | 0 | vcpu | $0 |
arch/x86/kvm/pmu.c kvm_pmu_incr_counter() -> kvm_vcpu_has_mediated_pmu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | vcpu | 4096-ptr_max |
| LOCK2 | &vcpu->kvm->srcu | ||
| HALF_LOCKED2 | &vcpu->mutex | ||
| TYPE_LOCK | (struct kvm)->srcu |
arch/x86/kvm/pmu.c kvm_pmu_refresh() -> kvm_vcpu_has_mediated_pmu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | vcpu | 4096-ptr_max |
| BUF_SIZE | 0 | vcpu | s32min-(-1),1-s32max |
| BUF_SIZE | 0 | vcpu | s32min-(-1),1-s32max |
| BUF_SIZE | 0 | vcpu->arch.cpuid_entries | (-1)-0,40-10240 |
| BUF_SIZE | 0 | vcpu->arch.mce_banks | (-1),8 |
| BUF_SIZE | 0 | vcpu->arch.mci_ctl2_banks | (-1),8 |
| CAPPED_DATA | 0 | vcpu | 1 |
| DATA_SOURCE | 0 | vcpu | $0 |
| NOSPEC | 0 | vcpu->arch.cpuid_nent | |
| NOSPEC | 0 | vcpu->vcpu_id | |
| MEM_ZERO | 0 | vcpu->arch.pmu.pmc_has_mode_specific_enables | |
| USER_DATA | 0 | vcpu->arch.cpuid_entries->eax | 0-u32max |
| USER_DATA | 0 | vcpu->arch.cpuid_entries->ebx | 0-u32max |
| USER_DATA | 0 | vcpu->arch.cpuid_entries->ecx | 0-u32max |
| USER_DATA | 0 | vcpu->arch.cpuid_entries->edx | 0-u32max |
| USER_DATA | 0 | vcpu->arch.cpuid_entries->flags | 0-u32max |
| USER_DATA | 0 | vcpu->arch.cpuid_entries->function | 0-u32max |
| USER_DATA | 0 | vcpu->arch.cpuid_entries->index | 0-u32max |
| USER_DATA | 0 | vcpu->arch.cpuid_nent | 0-256[c] |
| USER_DATA | 0 | vcpu->arch.guest_supported_xcr0 | 0-393983[c] |
| USER_DATA | 0 | vcpu->arch.guest_supported_xss | 0-6144[c] |
| USER_DATA | 0 | vcpu->arch.is_amd_compatible | 0[c] |
| USER_DATA | 0 | vcpu->arch.l1_tsc_offset | 0-u64max |
| USER_DATA | 0 | vcpu->arch.maxphyaddr | 1-255[c] |
| USER_DATA | 0 | vcpu->arch.pv_cpuid.features | 0-u32max |
| USER_DATA | 0 | vcpu->arch.pv_time.kvm->arch.has_private_mem | 0[c] |
| USER_DATA | 0 | vcpu->arch.pv_time.kvm->arch.pre_fault_allowed | 0-1 |
| USER_DATA | 0 | vcpu->arch.pv_time.kvm->arch.vm_type | 0-5 |
| USER_DATA | 0 | vcpu->arch.tsc_offset | 0-u64max |
| USER_DATA | 0 | vcpu->arch.xen.runstate2_cache.kvm->arch.has_private_mem | 0[c] |
| USER_DATA | 0 | vcpu->arch.xen.runstate2_cache.kvm->arch.noncoherent_dma_count.counter | 0 |
| USER_DATA | 0 | vcpu->arch.xen.runstate2_cache.kvm->arch.pre_fault_allowed | 1[c] |
| USER_DATA | 0 | vcpu->arch.xen.runstate2_cache.kvm->arch.vm_type | 0-1 |
| USER_DATA | 0 | vcpu->arch.xen.runstate_cache.kvm->arch.has_private_mem | 0[c] |
| USER_DATA | 0 | vcpu->arch.xen.runstate_cache.kvm->arch.noncoherent_dma_count.counter | 0 |
| USER_DATA | 0 | vcpu->arch.xen.runstate_cache.kvm->arch.pre_fault_allowed | 1[c] |
| USER_DATA | 0 | vcpu->arch.xen.runstate_cache.kvm->arch.vm_type | 0-1 |
| USER_DATA | 0 | vcpu->arch.xen.vcpu_info_cache.kvm->arch.has_private_mem | 0[c] |
| USER_DATA | 0 | vcpu->arch.xen.vcpu_info_cache.kvm->arch.noncoherent_dma_count.counter | 0 |
| USER_DATA | 0 | vcpu->arch.xen.vcpu_info_cache.kvm->arch.pre_fault_allowed | 1[c] |
| USER_DATA | 0 | vcpu->arch.xen.vcpu_info_cache.kvm->arch.vm_type | 0-1 |
| USER_DATA | 0 | vcpu->arch.xen.vcpu_time_info_cache.kvm->arch.has_private_mem | 0[c] |
| USER_DATA | 0 | vcpu->arch.xen.vcpu_time_info_cache.kvm->arch.noncoherent_dma_count.counter | 0 |
| USER_DATA | 0 | vcpu->arch.xen.vcpu_time_info_cache.kvm->arch.pre_fault_allowed | 1[c] |
| USER_DATA | 0 | vcpu->arch.xen.vcpu_time_info_cache.kvm->arch.vm_type | 0-1 |
| USER_DATA | 0 | vcpu->vcpu_id | 1-16383[c] |
| USER_PTR | 0 | vcpu->arch.cpuid_entries | |
| USER_PTR | 0 | vcpu->arch.cpuid_entries->padding |
arch/x86/kvm/pmu.c kvm_pmu_refresh() -> kvm_vcpu_has_mediated_pmu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | vcpu | 4096-ptr_max |
| BUF_SIZE | 0 | vcpu | s32min-(-1),1-s32max |
| BUF_SIZE | 0 | vcpu | s32min-(-1),1-s32max |
| BUF_SIZE | 0 | vcpu->arch.cpuid_entries | (-1)-0,40-10240 |
| BUF_SIZE | 0 | vcpu->arch.mce_banks | (-1),8 |
| BUF_SIZE | 0 | vcpu->arch.mci_ctl2_banks | (-1),8 |
| CAPPED_DATA | 0 | vcpu | 1 |
| DATA_SOURCE | 0 | vcpu | $0 |
| NOSPEC | 0 | vcpu->arch.cpuid_nent | |
| NOSPEC | 0 | vcpu->vcpu_id | |
| MEM_ZERO | 0 | vcpu->arch.pmu.pmc_has_mode_specific_enables | |
| USER_DATA | 0 | vcpu->arch.cpuid_entries->eax | 0-u32max |
| USER_DATA | 0 | vcpu->arch.cpuid_entries->ebx | 0-u32max |
| USER_DATA | 0 | vcpu->arch.cpuid_entries->ecx | 0-u32max |
| USER_DATA | 0 | vcpu->arch.cpuid_entries->edx | 0-u32max |
| USER_DATA | 0 | vcpu->arch.cpuid_entries->flags | 0-u32max |
| USER_DATA | 0 | vcpu->arch.cpuid_entries->function | 0-u32max |
| USER_DATA | 0 | vcpu->arch.cpuid_entries->index | 0-u32max |
| USER_DATA | 0 | vcpu->arch.cpuid_nent | 0-256[c] |
| USER_DATA | 0 | vcpu->arch.guest_supported_xcr0 | 0-393983[c] |
| USER_DATA | 0 | vcpu->arch.guest_supported_xss | 0-6144[c] |
| USER_DATA | 0 | vcpu->arch.is_amd_compatible | 0[c] |
| USER_DATA | 0 | vcpu->arch.l1_tsc_offset | 0-u64max |
| USER_DATA | 0 | vcpu->arch.maxphyaddr | 1-255[c] |
| USER_DATA | 0 | vcpu->arch.pv_cpuid.features | 0-u32max |
| USER_DATA | 0 | vcpu->arch.pv_time.kvm->arch.has_private_mem | 0[c] |
| USER_DATA | 0 | vcpu->arch.pv_time.kvm->arch.pre_fault_allowed | 0-1 |
| USER_DATA | 0 | vcpu->arch.pv_time.kvm->arch.vm_type | 0-5 |
| USER_DATA | 0 | vcpu->arch.tsc_offset | 0-u64max |
| USER_DATA | 0 | vcpu->arch.xen.runstate2_cache.kvm->arch.has_private_mem | 0[c] |
| USER_DATA | 0 | vcpu->arch.xen.runstate2_cache.kvm->arch.noncoherent_dma_count.counter | 0 |
| USER_DATA | 0 | vcpu->arch.xen.runstate2_cache.kvm->arch.pre_fault_allowed | 1[c] |
| USER_DATA | 0 | vcpu->arch.xen.runstate2_cache.kvm->arch.vm_type | 0-1 |
| USER_DATA | 0 | vcpu->arch.xen.runstate_cache.kvm->arch.has_private_mem | 0[c] |
| USER_DATA | 0 | vcpu->arch.xen.runstate_cache.kvm->arch.noncoherent_dma_count.counter | 0 |
| USER_DATA | 0 | vcpu->arch.xen.runstate_cache.kvm->arch.pre_fault_allowed | 1[c] |
| USER_DATA | 0 | vcpu->arch.xen.runstate_cache.kvm->arch.vm_type | 0-1 |
| USER_DATA | 0 | vcpu->arch.xen.vcpu_info_cache.kvm->arch.has_private_mem | 0[c] |
| USER_DATA | 0 | vcpu->arch.xen.vcpu_info_cache.kvm->arch.noncoherent_dma_count.counter | 0 |
| USER_DATA | 0 | vcpu->arch.xen.vcpu_info_cache.kvm->arch.pre_fault_allowed | 1[c] |
| USER_DATA | 0 | vcpu->arch.xen.vcpu_info_cache.kvm->arch.vm_type | 0-1 |
| USER_DATA | 0 | vcpu->arch.xen.vcpu_time_info_cache.kvm->arch.has_private_mem | 0[c] |
| USER_DATA | 0 | vcpu->arch.xen.vcpu_time_info_cache.kvm->arch.noncoherent_dma_count.counter | 0 |
| USER_DATA | 0 | vcpu->arch.xen.vcpu_time_info_cache.kvm->arch.pre_fault_allowed | 1[c] |
| USER_DATA | 0 | vcpu->arch.xen.vcpu_time_info_cache.kvm->arch.vm_type | 0-1 |
| USER_DATA | 0 | vcpu->vcpu_id | 1-16383[c] |
| USER_PTR | 0 | vcpu->arch.cpuid_entries | |
| USER_PTR | 0 | vcpu->arch.cpuid_entries->padding |
arch/x86/kvm/pmu.c kvm_pmu_set_msr() -> kvm_vcpu_has_mediated_pmu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | vcpu | 4096-ptr_max |
| CAPPED_DATA | 0 | vcpu->kvm->arch.xen.hvm_config.msr | 1 |
| DATA_SOURCE | 0 | vcpu | $0 |
arch/x86/kvm/pmu.c pmc_read_counter() -> kvm_vcpu_has_mediated_pmu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
arch/x86/kvm/pmu.c pmc_write_counter() -> kvm_vcpu_has_mediated_pmu()
| Type | Parameter | Key | Value |
|---|
arch/x86/kvm/pmu.c reprogram_counter() -> kvm_vcpu_has_mediated_pmu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | vcpu | 4096-ptr_max |
| HALF_LOCKED2 | &vcpu->kvm->srcu | ||
| HALF_LOCKED2 | &vcpu->mutex |
arch/x86/kvm/vmx/nested.c nested_vmx_merge_pmu_msr_bitmaps() -> kvm_vcpu_has_mediated_pmu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | vcpu | 4096-ptr_max |
| DATA_SOURCE | 0 | vcpu | $0 |
| USER_PTR | 0 | vcpu->arch.hyperv->vp_assist_page.intercept_message | |
| USER_PTR | 0 | vcpu->arch.hyperv->vp_assist_page.reserved2 | |
| USER_PTR | 0 | vcpu->arch.hyperv->vp_assist_page.reserved3 | |
| USER_PTR | 0 | vcpu->arch.hyperv->vp_assist_page.reserved4 | |
| USER_PTR | 0 | vcpu->arch.hyperv->vp_assist_page.virtualization_fault_information | |
| USER_PTR | 0 | vcpu->arch.hyperv->vp_assist_page.vtl_ret_actions | |
| USER_PTR | 0 | vcpu->arch.pdptrs |
arch/x86/kvm/vmx/pmu_intel.c pmc_read_counter() -> kvm_vcpu_has_mediated_pmu()
| Type | Parameter | Key | Value |
|---|
arch/x86/kvm/x86.c kvm_pmu_is_fastpath_emulation_allowed() -> kvm_vcpu_has_mediated_pmu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | vcpu | 4096-ptr_max |
| DATA_SOURCE | 0 | vcpu | $0 |
arch/x86/kvm/svm/svm.c svm_recalc_pmu_msr_intercepts() -> kvm_vcpu_has_mediated_pmu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | vcpu | 4096-ptr_max |
| DATA_SOURCE | 0 | vcpu | $0 |
arch/x86/kvm/msrs.c kvm_pmu_is_fastpath_emulation_allowed() -> kvm_vcpu_has_mediated_pmu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | vcpu | 4096-ptr_max |
| DATA_SOURCE | 0 | vcpu | $0 |
arch/x86/kvm/vmx/vmx.c atomic_switch_perf_msrs() -> kvm_vcpu_has_mediated_pmu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | vcpu | 4096-ptr_max |
arch/x86/kvm/vmx/vmx.c vmx_recalc_pmu_msr_intercepts() -> kvm_vcpu_has_mediated_pmu()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | vcpu | 4096-ptr_max |
| DATA_SOURCE | 0 | vcpu | $0 |