Does the QEMU Architectural View Accurately Represent QEMU/KVM Relationships?

  • Thread starter Thread starter cianfa72
  • Start date Start date
Click For Summary
The discussion centers on the architectural representation of QEMU, particularly in relation to its operation with and without KVM (Kernel-based Virtual Machine) acceleration. The original poster questions the accuracy of a diagram that depicts QEMU's architecture, arguing that it only accurately represents QEMU without KVM, as it relies on TCG (Tiny Code Generator) for dynamic translation. With KVM, QEMU utilizes hardware virtualization features like Intel VT-x, which introduces distinct user and kernel modes for guest systems, complicating the diagram's representation. The response suggests that while the diagram may be confusing, it can be disregarded if it does not aid understanding, highlighting the complexity of the relationships involved in virtualization that may not be fully captured in visual formats.
cianfa72
Messages
2,880
Reaction score
302
TL;DR
About the QEMU/KVM virtualization architectural view
Hi,

I've a doubt about the QEMU architectural view as depicted in the following (and similar) pictures -- e.g. https://www.redhat.com/en/blog/introduction-virtio-networking-and-vhost-net.

2019-09-10-virtio-intro-fig1.jpg


To me this view makes sense for 'plane QEMU' only since it has not any homework acceleration (i.e. KVM). In fact, without any homework acceleration, QEMU employs TCG dynamic translation even if the emulated CPU (vCPU) is the same as the host physical CPU.

On the other hand QEMU/KVM leverages on CPU virtualization support (e.g. Intel VT-x) that provide root and non-root (guest) modes (e.g. VMX root vs VMX non-root mode). In that case CPU guest mode (VMX non-root) has got its own User and Kernel mode (Ring 3 vs Ring 0) so I believe that picture actually does not make sense -- since the Guest is not inside the the Host User mode.

What do you think about ?

p.s. same question is posted on other forum.
 
Technology news on Phys.org
Any feedback about it ?
 
These are complicated relationships which cannot be completely expressed in a diagram, even with pretty colours.

I think the diagram is fine, but if it is confusing you then just ignore it.
 
Learn If you want to write code for Python Machine learning, AI Statistics/data analysis Scientific research Web application servers Some microcontrollers JavaScript/Node JS/TypeScript Web sites Web application servers C# Games (Unity) Consumer applications (Windows) Business applications C++ Games (Unreal Engine) Operating systems, device drivers Microcontrollers/embedded systems Consumer applications (Linux) Some more tips: Do not learn C++ (or any other dialect of C) as a...