Re: [RFC v2 00/24] Add Realm support to QEMU-VMM

Kohei Enju <[email protected]>
Newsgroups gmane.comp.emulators.kvm.devel,gmane.comp.emulators.qemu
Message-ID <[email protected]>
On 07/28 13:26, Mathieu Poirier wrote:
> This patchset provides minimal functionality to start a Realm VM
> from an Arm RME capable host using the following command line:
> 
> qemu-system-aarch64 \
>  -M confidential-guest-support=rme0 -object rme-guest,id=rme0 \
>  -cpu host -M virt -enable-kvm -M gic-version=3,its=on -nodefaults ..
> 
> It is a refactoring of Jean-Philippe Brucker's initial work dating from a while
> back.  It is compatible with Steven Price's v14 revision [1] of his work adding
> CCA support to KVM.
> 
> * We are currently working on rebasing the work to v15.
> 
> It was tested on the QEMU SBSA machine.  For convenience, a repository is hosted
> here [2], along with the TF-A [3], RMM [4] and Linux kernel [5] for the SBSA
> machine (compatible with Steven's v14 patchset).
> 
> Instructions to compile and run the entire stack can be found here [6].
> 
> Device Assignment is not included.
> 
> Thanks,
> Mathieu

Hi Mathieu, thank you for your work on upstreaming CCA support. I've
tested this series in QEMU-TCG(x-rme=on) environments and confirmed
that the basic functionality works well.

I have a question about a QMP command for querying CCA capabilities.

Jean's tree contains the following commit adding such a QMP command. Was
this functionality intentionally omitted from this series?
https://git.codelinaro.org/linaro/dcap/qemu/-/commit/41f7852cc8590a38c47299a35a7238da09ff9a12

We are interested in adding this functionality because we are also
planning to upstream CCA support for libvirt, which will need a QMP
interface to query the CCA capabilities exposed by QEMU.

Since the Linux kernel dropped some configuration parameters such as the
hash algorithm, I need to rework the implementation of that QMP command
a bit. If it's okay with you, I'd be happy to send out the reworked
patch based on this series.

Thanks,
Kohei

> 
> [1]. https://lore.kernel.org/kvm/[email protected]/T/#m06dd14216aaf76acab65b0a76fb84653141ea64f
> [2]. https://gitlab.com/Linaro/cca-public/qemu/-/tree/upstream-v2?ref_type=heads
> [3]. https://gitlab.com/Linaro/cca-public/tf-a/trusted-firmware-a/-/tree/cca/v13?ref_type=heads
> [4]. https://gitlab.com/Linaro/cca-public/rmm/-/tree/cca/v14?ref_type=heads
> [5]. https://gitlab.com/Linaro/cca-public/linux/-/tree/upstream-v2?ref_type=heads 
> [6]. https://gitlab.com/Linaro/cca-public/build-instructions
> 
> RFC v1:
> https://lists.gnu.org/archive/html/qemu-devel/2026-07/msg02307.html
> 
> Changes for V2:
> - Fixed linux headers to include correct bit shift for Realm VM (Gavin).
> - Removed obsolete rme-guest options (Markus).
> - Set ConfidentialGuestSupportClass::kvm_init() to kvm_arm_rme_init() (Gavin).
> - Got rid of kvm_arm_rme_vm_type() (Gavin).
> - Used kvm_vm_check_extension() instead of kvm_check_extension() to avoid
>   error message when starting a Realm (Gavin).
> - Removed obsolete kvm_arm_rme_init_guest_ram() (Gavin).
> - Collected A-B and R-B.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.