SE_01_014 - QEMU query-cpu-model-expansion API

About

QEMU provides several APIs to deal with CPU features/extension probing. One of them is called query-cpu-model-expansion. It is used by tooling such as libvirt to query  features/extensions of a given CPU model. It is also used to query if the CPU model supports a certain configuration, e.g. if the CPU supports enabling/disabling a set of extensions. Its most common use, at least as far as libvirt is concerned, is to determine virtual machine compatibility with a QEMU binary if the virtual machine was created in an older QEMU version or if  the virtual machine was migrated from another host.

Most architectures supports this API in QEMU. RISC-V does not, which is a considerable gap that we need to cover.

The implementation proposed in this work also includes some enhancements in the core code as well.

Project Scope and Timelines

The project will take place during the QEMU 8.2 development cycle.

Components and Repos

Upstream Qemu.

Stakeholders and Partners

Other QEMU for RISC-V contributors, including:

  • RISE
    • Daniel Henrique Barboza
  • External
    • Alistair Francis (QEMU for RISC-V maintainer)

Dependencies

No dependencies.

Measure of Success

An accepted and tested design and implementation by end of 2H23 (slated for merging).

RISE Requirements

None (not accounting any of existing engineering investment against RISE resources).

Status

The table below is rolled up to the Simulator WG status page Simulator/Emulator 2023 Priorities .


Development

COMPLETED


Development Timeline

2H23


Dependencies



Upstreaming

COMPLETED


Upstream Version


Target 8.2

Contacts