Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v6.2-rc4 52 lines 1.5 kB view raw
1// SPDX-License-Identifier: GPL-2.0-only 2 3/* 4 * Privileged (non-hypervisor) host registers to save. 5 */ 6struct p9_host_os_sprs { 7 unsigned long iamr; 8 unsigned long amr; 9 10 unsigned int pmc1; 11 unsigned int pmc2; 12 unsigned int pmc3; 13 unsigned int pmc4; 14 unsigned int pmc5; 15 unsigned int pmc6; 16 unsigned long mmcr0; 17 unsigned long mmcr1; 18 unsigned long mmcr2; 19 unsigned long mmcr3; 20 unsigned long mmcra; 21 unsigned long siar; 22 unsigned long sier1; 23 unsigned long sier2; 24 unsigned long sier3; 25 unsigned long sdar; 26}; 27 28static inline bool nesting_enabled(struct kvm *kvm) 29{ 30 return kvm->arch.nested_enable && kvm_is_radix(kvm); 31} 32 33bool load_vcpu_state(struct kvm_vcpu *vcpu, 34 struct p9_host_os_sprs *host_os_sprs); 35void store_vcpu_state(struct kvm_vcpu *vcpu); 36void save_p9_host_os_sprs(struct p9_host_os_sprs *host_os_sprs); 37void restore_p9_host_os_sprs(struct kvm_vcpu *vcpu, 38 struct p9_host_os_sprs *host_os_sprs); 39void switch_pmu_to_guest(struct kvm_vcpu *vcpu, 40 struct p9_host_os_sprs *host_os_sprs); 41void switch_pmu_to_host(struct kvm_vcpu *vcpu, 42 struct p9_host_os_sprs *host_os_sprs); 43 44#ifdef CONFIG_KVM_BOOK3S_HV_P9_TIMING 45void accumulate_time(struct kvm_vcpu *vcpu, struct kvmhv_tb_accumulator *next); 46#define start_timing(vcpu, next) accumulate_time(vcpu, next) 47#define end_timing(vcpu) accumulate_time(vcpu, NULL) 48#else 49#define accumulate_time(vcpu, next) do {} while (0) 50#define start_timing(vcpu, next) do {} while (0) 51#define end_timing(vcpu) do {} while (0) 52#endif