aboutsummaryrefslogtreecommitdiff
path: root/hw/avr/arduino.c
diff options
context:
space:
mode:
authorTom Lendacky <thomas.lendacky@amd.com>2025-03-28 15:30:24 -0500
committerPaolo Bonzini <pbonzini@redhat.com>2025-06-06 14:32:54 +0200
commit4cdc489eb9c25f76255a550a4a0b19cda3435a76 (patch)
treead01a6baaecfae5f1001bdee2b69e4f43f14f7d0 /hw/avr/arduino.c
parentbc2a48d647752e4f99247184f5dfe00e67a2de8f (diff)
downloadqemu-4cdc489eb9c25f76255a550a4a0b19cda3435a76.zip
qemu-4cdc489eb9c25f76255a550a4a0b19cda3435a76.tar.gz
qemu-4cdc489eb9c25f76255a550a4a0b19cda3435a76.tar.bz2
i386/kvm: Prefault memory on page state change
A page state change is typically followed by an access of the page(s) and results in another VMEXIT in order to map the page into the nested page table. Depending on the size of page state change request, this can generate a number of additional VMEXITs. For example, under SNP, when Linux is utilizing lazy memory acceptance, memory is typically accepted in 4M chunks. A page state change request is submitted to mark the pages as private, followed by validation of the memory. Since the guest_memfd currently only supports 4K pages, each page validation will result in VMEXIT to map the page, resulting in 1024 additional exits. When performing a page state change, invoke KVM_PRE_FAULT_MEMORY for the size of the page state change in order to pre-map the pages and avoid the additional VMEXITs. This helps speed up boot times. Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com> Link: https://lore.kernel.org/r/f5411c42340bd2f5c14972551edb4e959995e42b.1743193824.git.thomas.lendacky@amd.com Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'hw/avr/arduino.c')
0 files changed, 0 insertions, 0 deletions