- The QEMU team announced the release of QEMU 7.1-rc0, which marks the hard feature freeze and the team will focus on fixing bugs from now on.
- QEMU 7.1 adds support for Cortex A76 and Neoverse N1 CPU types along with many more ARM CPU instruction set features.
- Before the final release, the team will release at least three more release candidates and the final release is expected to be available before August ends.
The QEMU team is currently working on the next major release, which is expected to be released between the 23rd and 30th of August if a 4th release candidate is not necessary. During this period, the team aims to release three more release candidates before the final release. QEMU 7.1-rc0 also means the hard feature freeze, from now on, the team will only focus on fixing bugs instead of adding new features.
What’s new?
QEMU 7.1 will come with support for Cortex A76 and Neoverse N1 CPU types. The new release emulates more ARM CPU instruction set features. These features are:
- FEAT_TTL (Translation Table Level)
- FEAT_BBM at level 2 (Translation table break-before-make levels)
- FEAT_Debugv8p2 (Debug changes for v8.2)
- FEAT_Debugv8p4 (Debug changes for v8.4)
- FEAT_DoubleFault
- FEAT_RAS (Reliability, Availability and Serviceability extension, minimal version only)
- FEAT_RASv1p1 (RAS extension v1.1, minimal version only)
- FEAT_IESB (Implicit error synchronization event)
- FEAT_CSV2 (Cache speculation variant 2)
- FEAT_CSV2_2 (Cache speculation variant 2, version 2)
- FEAT_CSV3 (Cache speculation variant 3)
- FEAT_DGH (Data gathering hint)
- FEAT_S2FWB (Stage 2 forced Write-Back)
- FEAT_IDST (ID space trap handling)
- FEAT_HCX (Support for the HCRX_EL2 register)
- FEAT_SME (Scalable Matrix Extension)
QEMU 7.1 also adds initial support for the LoongArch 64 architecture, including the Loongson 3A5000 multiprocessor SoC, and the Loongson 7A1000 host bridge. It supports privileged spec version 1.12.0 and uses privileged spec version 1.12.0 for the virtual machine by default. Other changes in RISC-V ISA and extensions are:
- Allow software access to MIP SEIP
- Add initial support for the Sdtrig extension
- Optimizations and improvements for the vector extension
- Improvements to the misa ISA string
- Add isa extension strings to the device tree
- Add and enable native debug feature
- Support configurable marchid, mvendorid, mimpid CSR values
- Add support for the Zbkb, Zbkc, Zbkx, Zknd/Zkne, Zknh, Zksed/Zksh and Zkr extensions
- Enforce floating point extension requirements
- Add support for Zmmul extension
- Support Vector extension tail agnostic setting elements’ bits to all 1
- Implement mcountinhibit CSR
- Add support for hpmcounters/hpmevents
- Improve PMU implenentation
- Support mcycle/minstret write operation
- AIA update to v0.3 of the spec
QEMU 7.1 also supports architectural LBRs on KVM virtual machines and the libopcode-based disassembler has been removed. Users can use Capstone instead. The latest version improves Solaris support, allows users to compile QEMU with the system slirp library even when using CFI, and supports zero-copy-send on Linux, to reduce CPU usage on the host. You can take a look at all the changes on the QEMU’s release notes page.
What is QEMU?
QEMU is an open-source machine emulator and virtualizer. It can be used as a machine emulator to run operating systems and programs, which are designed for one machine, on a different machine, by using dynamic translation. QEMU can also be used as a virtualizer that is capable of executing the guest code on the host to provide almost native performance. It supports virtualization when running under the Xen hypervisor or using the KVM kernel module in Linux as well.