aboutsummaryrefslogtreecommitdiffstats
path: root/executor/kvm_amd64.S
Commit message (Collapse)AuthorAgeFilesLines
* executor/kvm: bug fix and minor refactor in KVMMarios Pomonis2025-03-271-48/+48
| | | | | | | | | | | | | | | | * Fixes a bug when setting up a 64-bit guest by making the bit manipulation macros produce unsigned long long: To create a VCPU that has paging enabled, one needs to set the CR0.PE and CR0.PG bits in CR0. The latter is problematic when setting up a 64-bit guest since if the macro is not using 1ULL, it sign extends the output (in 64-bit mode the control registers are extended to 64-bits with some of the CR0[32:63] bits reserved). This results in either failing the KVM_SET_SREGS ioctl (in newer kernel versions) or just failing the KVM_RUN ioctl with EXIT_REASON_INVALID_STATE. * Moved the bit manipulation definitions from the amd64 specific to the generic kvm header to consolidate them with the already existing ones. Prefixed them with X86_ to avoid confusion.
* executor: use explicit lretl in kvm_amd64.SSpace Meyer2023-04-121-1/+1
| | | | | | | Without this change the following warning is generated: kvm_amd64.S:95: Warning: no instruction mnemonic suffix given and no register operands; using default for `lret' This does not change the generated code in kvm_amd64.S.h
* executor: changed initialization of VMCS fieldsAyomide Erinfolami2021-12-011-3/+3
| | | | | | | Initializing the VMCS fields Pin-based VM-execution controls and Primary processor-based VM-execution controls to 0 and setting their reserved bits using the appropriate MSRs increase coverage for arch/x86/kvm/vmx/nested.c from 19% to 43%.
* executor: prepare code generator to allow other achitecturesAlexey Kardashevskiy2021-07-191-0/+313
At the moment only AMD64 is supported, change file names to emphasise this. Signed-off-by: Alexey Kardashevskiy <aik@linux.ibm.com>