/linux-5.19.10/arch/x86/kvm/svm/ |
D | nested.c | 66 if (vmcb12_is_intercept(&svm->nested.ctl, in nested_svm_handle_page_fault_workaround() 68 !WARN_ON_ONCE(svm->nested.nested_run_pending)) { in nested_svm_handle_page_fault_workaround() 83 u64 cr3 = svm->nested.ctl.nested_cr3; in nested_svm_get_tdp_pdptr() 98 return svm->nested.ctl.nested_cr3; in nested_svm_get_tdp_cr3() 116 svm->nested.ctl.nested_cr3); in nested_svm_init_mmu_context() 137 if (!(svm->nested.ctl.virt_ext & VIRTUAL_VMLOAD_VMSAVE_ENABLE_MASK)) in nested_vmcb_needs_vls_intercept() 156 g = &svm->nested.ctl; in recalc_intercepts() 205 (struct hv_enlightenments *)svm->nested.ctl.reserved_sw; in nested_svm_vmrun_msrpm() 216 if (!svm->nested.force_msr_bitmap_recalc && in nested_svm_vmrun_msrpm() 219 (svm->nested.ctl.clean & BIT(VMCB_HV_NESTED_ENLIGHTENMENTS))) in nested_svm_vmrun_msrpm() [all …]
|
D | svm.h | 227 struct svm_nested_state nested; member 463 return svm->vgif_enabled && (svm->nested.ctl.int_ctl & V_GIF_ENABLE_MASK); in nested_vgif_enabled() 472 return svm->nested.vmcb02.ptr; in get_vgif_vmcb() 509 return svm->nested.ctl.nested_ctl & SVM_NESTED_CTL_NP_ENABLE; in nested_npt_enabled() 550 return is_guest_mode(vcpu) && (svm->nested.ctl.int_ctl & V_INTR_MASKING_MASK); in nested_svm_virtualize_tpr() 555 return vmcb12_is_intercept(&svm->nested.ctl, INTERCEPT_SMI); in nested_exit_on_smi() 560 return vmcb12_is_intercept(&svm->nested.ctl, INTERCEPT_INTR); in nested_exit_on_intr() 565 return vmcb12_is_intercept(&svm->nested.ctl, INTERCEPT_NMI); in nested_exit_on_nmi()
|
D | svm.c | 162 static int nested = true; variable 163 module_param(nested, int, S_IRUGO); 661 msrpm = is_guest_mode(vcpu) ? to_svm(vcpu)->nested.msrpm: in msr_write_intercepted() 707 svm->nested.force_msr_bitmap_recalc = true; in set_msr_interception_bitmap() 897 if (unlikely(svm->nested.ctl.virt_ext & LBR_CTL_ENABLE_MASK)) in svm_update_lbrv() 999 return svm->nested.ctl.tsc_offset; in svm_get_l2_tsc_offset() 1189 svm->nested.vmcb12_gpa = INVALID_GPA; in init_vmcb() 1190 svm->nested.last_vmcb12_gpa = INVALID_GPA; in init_vmcb() 1501 (svm->nested.ctl.int_ctl & V_TPR_MASK)); in svm_clear_vintr() 1503 svm->vmcb->control.int_ctl |= svm->nested.ctl.int_ctl & in svm_clear_vintr() [all …]
|
/linux-5.19.10/arch/x86/kvm/vmx/ |
D | nested.c | 181 if (to_vmx(vcpu)->nested.hv_evmcs_vmptr != EVMPTR_INVALID) in nested_vmx_failValid() 182 to_vmx(vcpu)->nested.need_vmcs12_to_shadow_sync = true; in nested_vmx_failValid() 195 if (vmx->nested.current_vmptr == INVALID_GPA && in nested_vmx_fail() 196 !evmptr_is_valid(vmx->nested.hv_evmcs_vmptr)) in nested_vmx_fail() 223 vmx->nested.need_vmcs12_to_shadow_sync = false; in vmx_disable_shadow_vmcs() 230 if (evmptr_is_valid(vmx->nested.hv_evmcs_vmptr)) { in nested_release_evmcs() 231 kvm_vcpu_unmap(vcpu, &vmx->nested.hv_evmcs_map, true); in nested_release_evmcs() 232 vmx->nested.hv_evmcs = NULL; in nested_release_evmcs() 235 vmx->nested.hv_evmcs_vmptr = EVMPTR_INVALID; in nested_release_evmcs() 293 if (!vmx->nested.vmxon && !vmx->nested.smm.vmxon) in free_nested() [all …]
|
D | nested.h | 43 return to_vmx(vcpu)->nested.cached_vmcs12; in get_vmcs12() 48 return to_vmx(vcpu)->nested.cached_shadow_vmcs12; in get_shadow_vmcs12() 61 return vmx->nested.current_vmptr != -1ull || in vmx_has_valid_vmcs12() 62 vmx->nested.hv_evmcs_vmptr != EVMPTR_INVALID; in vmx_has_valid_vmcs12() 69 return vmx->nested.vpid02 ? vmx->nested.vpid02 : vmx->vpid; in nested_get_vpid02() 101 return vmx_misc_cr3_count(to_vmx(vcpu)->nested.msrs.misc_low); in nested_cpu_vmx_misc_cr3_count() 111 return to_vmx(vcpu)->nested.msrs.misc_low & in nested_cpu_has_vmwrite_any_field() 117 return to_vmx(vcpu)->nested.msrs.misc_low & VMX_MISC_ZERO_LEN_INS; in nested_cpu_has_zero_length_injection() 122 return to_vmx(vcpu)->nested.msrs.procbased_ctls_high & in nested_cpu_supports_monitor_trap_flag() 128 return to_vmx(vcpu)->nested.msrs.secondary_ctls_high & in nested_cpu_has_vmx_shadow_vmcs() [all …]
|
D | vmx.c | 113 static bool __read_mostly nested = 1; variable 114 module_param(nested, bool, S_IRUGO); 1209 if (vmx->nested.need_vmcs12_to_shadow_sync) in vmx_prepare_switch_to_guest() 1655 vmx->nested.mtf_pending = true; in vmx_update_emulated_instruction() 1657 vmx->nested.mtf_pending = false; in vmx_update_emulated_instruction() 1810 return nested && guest_cpuid_has(vcpu, X86_FEATURE_VMX); in nested_vmx_allowed() 1825 if (!nested) in vmx_get_msr_feature() 1827 return vmx_get_vmx_msr(&vmcs_config.nested, msr->index, &msr->data); in vmx_get_msr_feature() 1915 if (vmx_get_vmx_msr(&vmx->nested.msrs, msr_info->index, in vmx_get_msr() 1926 vmx->nested.enlightened_vmcs_enabled) in vmx_get_msr() [all …]
|
/linux-5.19.10/Documentation/virt/kvm/x86/ |
D | running-nested-guests.rst | 4 Running nested guests with KVM 7 A nested guest is the ability to run a guest inside another guest (it 36 - L2 – level-2 guest; a VM running on L1, this is the "nested guest" 44 resulting in at least four levels in a nested setup — L0 (bare 46 (guest hypervisor), L3 (nested guest). 56 There are several scenarios where nested KVM can be useful, to name a 61 Provider, using nested KVM lets you rent a large enough "guest 63 multiple nested guests (level-2 guests), running different OSes, on 66 - Live migration of "guest hypervisors" and their nested guests, for 76 Enabling "nested" (x86) [all …]
|
D | index.rst | 17 nested-vmx 18 running-nested-guests
|
D | nested-vmx.rst | 16 hypervisors (which use VMX) with their own nested guests. It does so by 20 We describe in much greater detail the theory behind the nested VMX feature, 32 In nested virtualization, we have three levels: The host (KVM), which we call 33 L0, the guest hypervisor, which we call L1, and its nested guest, which we 37 Running nested VMX 40 The nested VMX feature is enabled by default since Linux kernel v4.20. For 41 older Linux kernel, it can be enabled by giving the "nested=1" option to the 65 As a VMX implementation, nested VMX presents a VMCS structure to L1.
|
/linux-5.19.10/Documentation/networking/ |
D | ethtool-netlink.rst | 53 Each request or reply message contains a nested attribute with common header. 89 type is used. For arbitrary length bitmaps, ethtool netlink uses a nested 109 Compact form: nested (bitset) atrribute contents: 134 Bit-by-bit form: nested (bitset) attribute contents: 141 | ``ETHTOOL_A_BITSET_BITS`` | nested | array of bits | 143 | | ``ETHTOOL_A_BITSET_BITS_BIT+`` | nested | one bit | 309 | ``ETHTOOL_A_STRSET_HEADER`` | nested | request header | 311 | ``ETHTOOL_A_STRSET_STRINGSETS`` | nested | string set to request | 313 | | ``ETHTOOL_A_STRINGSETS_STRINGSET+`` | nested | one string set | 321 | ``ETHTOOL_A_STRSET_HEADER`` | nested | reply header | [all …]
|
/linux-5.19.10/tools/perf/bench/ |
D | epoll-ctl.c | 56 static unsigned int nested = 0; variable 78 …OPT_UINTEGER( 'N', "nested", &nested, "Nesting level epoll hierarchy (default is 0, no nesting)… 104 if (nested > EPOLL_MAXNESTS) in nest_epollfd() 105 nested = EPOLL_MAXNESTS; in nest_epollfd() 106 printinfo("Nesting level(s): %d\n", nested); in nest_epollfd() 108 epollfdp = calloc(nested, sizeof(int)); in nest_epollfd() 112 for (i = 0; i < nested; i++) { in nest_epollfd() 121 for (i = nested - 1; i; i--) { in nest_epollfd() 344 if (nested) in bench_epoll_ctl()
|
D | epoll-wait.c | 104 static unsigned int nested = 0; variable 137 …OPT_UINTEGER( 'N', "nested", &nested, "Nesting level epoll hierarchy (default is 0, no nesting)… 245 if (nested > EPOLL_MAXNESTS) in nest_epollfd() 246 nested = EPOLL_MAXNESTS; in nest_epollfd() 248 epollfdp = calloc(nested, sizeof(*epollfdp)); in nest_epollfd() 252 for (i = 0; i < nested; i++) { in nest_epollfd() 261 for (i = nested - 1; i; i--) { in nest_epollfd() 324 if (nested) in do_threads() 459 if (nested) in bench_epoll_wait() 464 printinfo("Nesting level(s): %d\n", nested); in bench_epoll_wait()
|
/linux-5.19.10/net/netfilter/ipset/ |
D | ip_set_bitmap_gen.h | 95 struct nlattr *nested; in mtype_head() local 98 nested = nla_nest_start(skb, IPSET_ATTR_DATA); in mtype_head() 99 if (!nested) in mtype_head() 108 nla_nest_end(skb, nested); in mtype_head() 207 struct nlattr *adt, *nested; in mtype_list() local 229 nested = nla_nest_start(skb, IPSET_ATTR_DATA); in mtype_list() 230 if (!nested) { in mtype_list() 243 nla_nest_end(skb, nested); in mtype_list() 253 nla_nest_cancel(skb, nested); in mtype_list()
|
D | ip_set_list_set.c | 462 struct nlattr *nested; in list_set_head() local 465 nested = nla_nest_start(skb, IPSET_ATTR_DATA); in list_set_head() 466 if (!nested) in list_set_head() 475 nla_nest_end(skb, nested); in list_set_head() 487 struct nlattr *atd, *nested; in list_set_list() local 505 nested = nla_nest_start(skb, IPSET_ATTR_DATA); in list_set_list() 506 if (!nested) in list_set_list() 513 nla_nest_end(skb, nested); in list_set_list() 523 nla_nest_cancel(skb, nested); in list_set_list()
|
/linux-5.19.10/scripts/coccinelle/locks/ |
D | flags.cocci | 2 /// Find nested lock+irqsave functions that use the same flags variables 73 cocci.print_secs("nested lock+irqsave that reuses flags",p2) 80 msg="ERROR: nested lock+irqsave that reuses flags from line %s." % (p1[0].line)
|
/linux-5.19.10/arch/um/os-Linux/ |
D | signal.c | 184 int nested, bail; in hard_handler() local 200 nested = pending & 1; in hard_handler() 215 if (!nested) in hard_handler() 216 pending = from_irq_stack(nested); in hard_handler()
|
/linux-5.19.10/arch/powerpc/kvm/ |
D | book3s_64_mmu_radix.c | 105 if (vcpu->arch.nested) in kvmhv_copy_tofrom_guest_radix() 106 lpid = vcpu->arch.nested->shadow_lpid; in kvmhv_copy_tofrom_guest_radix() 786 bool kvmppc_hv_handle_set_rc(struct kvm *kvm, bool nested, bool writing, in kvmppc_hv_handle_set_rc() argument 802 if (nested) in kvmppc_hv_handle_set_rc() 1298 struct kvm_nested_guest *nested; in debugfs_radix_read() local 1334 nested = NULL; in debugfs_radix_read() 1340 if (nested) { in debugfs_radix_read() 1341 kvmhv_put_nested(nested); in debugfs_radix_read() 1342 nested = NULL; in debugfs_radix_read() 1353 nested = kvmhv_get_nested(kvm, p->lpid, false); in debugfs_radix_read() [all …]
|
D | book3s_hv_p9_entry.c | 121 if (!vcpu->arch.nested && in switch_pmu_to_guest() 192 if (!vcpu->arch.nested) in switch_pmu_to_host() 358 if (!vcpu->arch.nested) { in store_vcpu_state() 422 if (!vcpu->arch.nested) { in restore_p9_host_os_sprs() 531 struct kvm_nested_guest *nested = vcpu->arch.nested; in switch_mmu_to_guest_radix() local 535 lpid = nested ? nested->shadow_lpid : kvm->arch.lpid; in switch_mmu_to_guest_radix() 682 struct kvm_nested_guest *nested) in check_need_tlb_flush() argument 688 if (nested) in check_need_tlb_flush() 689 need_tlb_flush = &nested->need_tlb_flush; in check_need_tlb_flush() 764 struct kvm_nested_guest *nested = vcpu->arch.nested; in kvmhv_vcpu_entry_p9() local [all …]
|
/linux-5.19.10/Documentation/dev-tools/ |
D | ktap.rst | 16 KTAP test results describe a series of tests (which may be nested: i.e., test 29 information, in particular nested test results, may be lost. Also note that 46 start of the nested test results. This differs from TAP14, which uses a 59 Plan lines follow version lines to indicate the number of nested tests. 185 In KTAP, tests can be nested. This is done by having a test include within its 201 An example of a test with two nested subtests: 214 An example format with multiple levels of nested testing: 240 allows an arbitrary number of tests to be nested no yes 245 The TAP14 specification does permit nested tests, but instead of using another 246 nested version line, uses a line of the form
|
/linux-5.19.10/Documentation/x86/ |
D | kernel-stacks.rst | 28 hardware interrupt (i.e. not a nested hardware interrupt) then the 54 nested IST interrupts then the handler must adjust the IST values on 59 nested. For example, a debug interrupt can safely be interrupted by an 62 IST events with the same code to be nested. However in most cases, the 95 To handle nested #DB correctly there exist two instances of DB stacks. On 97 so a nested #DB starts from a clean stack. The nested #DB switches
|
/linux-5.19.10/arch/x86/kvm/ |
D | Makefile | 25 vmx/evmcs.o vmx/nested.o vmx/posted_intr.o 28 kvm-amd-y += svm/svm.o svm/vmenter.o svm/pmu.o svm/nested.o svm/avic.o svm/sev.o
|
/linux-5.19.10/tools/testing/selftests/kvm/lib/ |
D | perf_test_util.c | 142 if (pta->nested) in perf_test_create_vm() 163 if (pta->nested) in perf_test_create_vm() 202 if (pta->nested) { in perf_test_create_vm()
|
/linux-5.19.10/arch/um/kernel/ |
D | irq.c | 711 int nested; in to_irq_stack() local 733 nested = (ti->real_thread != NULL); in to_irq_stack() 734 if (!nested) { in to_irq_stack() 747 *mask_out |= mask | nested; in to_irq_stack() 751 unsigned long from_irq_stack(int nested) in from_irq_stack() argument
|
/linux-5.19.10/scripts/coccinelle/misc/ |
D | irqf_oneshot.cocci | 106 …ING: Threaded IRQ with no primary handler requested without IRQF_ONESHOT (unless it is nested IRQ)" 112 …ING: Threaded IRQ with no primary handler requested without IRQF_ONESHOT (unless it is nested IRQ)"
|
/linux-5.19.10/tools/perf/scripts/python/Perf-Trace-Util/ |
D | Build | 3 …EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-nested-externs
|