Live data from Hacker News

QEMU 10.1.0

wiki.qemu.org

31–40 of 61 posts

Re: QEMU 10.1.0

#31
post #27
post #8

A great piece of software that makes my and my dev team's life infinitely better and easier. A big thank you to the QEMU developers :)

I couldn't find any way to donate to QEMU directly, only https://sfconservancy.org/donate/

are you by any chance a checker at a grocery store?

Re: QEMU 10.1.0

#32
post #3

QEMU is truly excellent software, from the perspective of a person who very rarely needs to emulate another architecture. It "just works" and has wonderful integrations with basically everything I could want.. sometimes it feels like magic: even if the commandline UX is a bit weird in places. I've always wondered though how it works with KVM: I know KVM is a virtualisation accelerator that enables passing through nat…

KVM is basically three components. * An abstraction over second level page tables to map some of a host user process as what the guest thinks of as physical memory. * An abstraction to jump into the context that uses those page tables, and traps back out in the case of anything that the hardware would normally handle, but the hypervisor wants to handle manually instead. * A collection of mechanisms to handle some of…

I thought part of vt-d/vt-x made the "virtual tables" actual tables.

Eg- the memory the VM can access is controlled by the MMU of the CPU (below ring0/kernel). Resulting in the only VM escapes being the Shim(s) for talking with the host (network, memory balloon, graphics).

Re: QEMU 10.1.0

#33
post #22

Earlier quoted context omitted.

Where could someone get started in terms of reading material to learn more about this in depth?

I would assume sooner or later you're going to end up in the Intel Developer manuals or the equivalent for whatever architecture you are interested in. The Intel ones are very complete at least.

The AMD Processor Programming Reference manuals are also good for this, if you like complete and detailed. They complement the Intel manuals. Much the material is duplicate because the processors are so similar, but written in a different way.

Re: QEMU 10.1.0

#34
post #25

Didn't realize there was a MIPS build of Windows NT. Which led me to wikipedia to find there were a lot of other architectures supported in the past.

In my last job, I was on the team that handled the Windows NT bulid on DEC Alpha. Native Alpha apps were much faster than the equivalent Intel NT machines. Apropos to this topic, DEC had a sybsystem called FX!32 that was sort of like what Rosetta does for Apple Silicon, allowing Intel apps to be run at useable speeds on Alpha.

https://en.wikipedia.org/wiki/FX!32

Re: QEMU 10.1.0

#35
post #3

QEMU is truly excellent software, from the perspective of a person who very rarely needs to emulate another architecture. It "just works" and has wonderful integrations with basically everything I could want.. sometimes it feels like magic: even if the commandline UX is a bit weird in places. I've always wondered though how it works with KVM: I know KVM is a virtualisation accelerator that enables passing through nat…

KVM is basically three components. * An abstraction over second level page tables to map some of a host user process as what the guest thinks of as physical memory. * An abstraction to jump into the context that uses those page tables, and traps back out in the case of anything that the hardware would normally handle, but the hypervisor wants to handle manually instead. * A collection of mechanisms to handle some of…

How does nested KVM work? Are all the page tables handled by the top level? Do the traps have to propagate up?

Re: QEMU 10.1.0

#37

Earlier quoted context omitted.

KVM is basically three components. * An abstraction over second level page tables to map some of a host user process as what the guest thinks of as physical memory. * An abstraction to jump into the context that uses those page tables, and traps back out in the case of anything that the hardware would normally handle, but the hypervisor wants to handle manually instead. * A collection of mechanisms to handle some of…

Where could someone get started in terms of reading material to learn more about this in depth?

if you want to look at existing implementations on top of kvm then these might be useful - rust-vmm is a core library for AWS' firecracker vmm.

https://github.com/rust-vmm/kvm https://github.com/kvmtool/kvmtool https://github.com/sysprog21/kvm-host

Re: QEMU 10.1.0

#38

Earlier quoted context omitted.

KVM is basically three components. * An abstraction over second level page tables to map some of a host user process as what the guest thinks of as physical memory. * An abstraction to jump into the context that uses those page tables, and traps back out in the case of anything that the hardware would normally handle, but the hypervisor wants to handle manually instead. * A collection of mechanisms to handle some of…

I thought part of vt-d/vt-x made the "virtual tables" actual tables. Eg- the memory the VM can access is controlled by the MMU of the CPU (below ring0/kernel). Resulting in the only VM escapes being the Shim(s) for talking with the host (network, memory balloon, graphics).

Yes, there are virtualization-specific page tables that convert guest physical to host physical addresses. KVM still haw to take host userspace's virtual addresses, convert them to host physical addresses, and make sure that the virtualization-specific page tables stay in sync with the kernel's usual page tables (which convery host virtual addresses to host physical)

Re: QEMU 10.1.0

#39

Earlier quoted context omitted.

KVM is basically three components. * An abstraction over second level page tables to map some of a host user process as what the guest thinks of as physical memory. * An abstraction to jump into the context that uses those page tables, and traps back out in the case of anything that the hardware would normally handle, but the hypervisor wants to handle manually instead. * A collection of mechanisms to handle some of…

How does nested KVM work? Are all the page tables handled by the top level? Do the traps have to propagate up?

Yes, the top level uses write protection of guest memory to combine the two levels of translation into one.
Post reply on HN