![qemu-kvm qemu-kvm](https://forum.endeavouros.com/uploads/default/original/2X/c/c240c22ea722ba60ace4f1d45c391b82fcc1eab9.png)
Apic regions would belong in the first few gigabytes Mov, rax map ecx-th entryĬmp ecx, 0x20 if counter = 32, 32 entries in P3 table is mapped Or rax, 0b10000011 present + writable + huge map ecx-th P3 entry to a huge page that starts at address 1GiB*ecx Here is our pagetable setup, trying to direct-map the first 32GiBs of memory: setup_huge_page_tables: We wanted more memory and decided to support huge pagetables (1GiB pages). We started our development with a 3 level pagetable with 2MiB hugepages. Goal with this post is to share the tricks that allow us to debug similar So if you simply want to get it running scroll to the bottom. Spoiler: our bug is trivial, we just did not pass the correct CPU model asĪn argument. Here, we describe ourĮxperience of debugging 1GB page support with KVM. It took us some time to debug several things thatĭid not work as expected when run on top of QEMU/KVM. We will describe what we’ve learned in a collection of posts and hopefully, our
#QEMU KVM PLUS#
Plus it removes an extremely annoying long Opportunities (e.g., attaching GDB, dumping page tables from QEMU, QEMU/KVM has a much quicker development cycle and gives a ton of debugging This was the first time we used QEMU/KVM pairįor development and found it extremely effective. In the end, we were reluctant to take this Virtualization, but we needed support for features like extended page table ForĬache-coherence protocol and support for nested virtualization (both systems In our previous projects, we always did all development on real hardware. Debugging QEMU/KVM Setup If Something Goes Wrong (e.g., Support for 1GB Pages)