On 5/3/24 14:47, Daniel P. Berrangé wrote:
On Wed, Oct 04, 2023 at 04:34:10PM -0400, Tyler Fanelli wrote:
The Rust sev library provides a C API for the AMD SEV launch ioctls, as
well as the ability to build with meson. Add the Rust sev library as a
QEMU subproject with the goal of outsourcing all SEV launch ioctls to C
APIs provided by it.

Signed-off-by: Tyler Fanelli <[email protected]>
---
  meson.build                   | 8 ++++++++
  meson_options.txt             | 2 ++
  scripts/meson-buildoptions.sh | 3 +++
  subprojects/sev.wrap          | 6 ++++++
  target/i386/meson.build       | 2 +-
  5 files changed, 20 insertions(+), 1 deletion(-)
  create mode 100644 subprojects/sev.wrap


Now, the second issue is that my patch to QEMU's meson.build where
I look for "CONFIG_SEV" is wrong. I've not tested whether it behaves
correctly on non-x86 hosts - basically I'm hoping that CONFIG_SEV is
*NOT* present if building qemu-system-x86_64 on an aarch64 host.

See hw/i386/Kconfig:

  config SEV
      bool
      ...
      depends on KVM

and meson.build ($cpu is the host):

  ...
elif cpu == 'x86'
  host_arch = 'i386'

if cpu in ['x86', 'x86_64']
  kvm_targets = ['i386-softmmu', 'x86_64-softmmu']

So SEV is only on selectable on x86 hosts, with KVM enabled.

Assuming we get this logic correct though, this unblocks one issue
with getting this merged - Rust platform support.

We've said we want Rust platform support to be a match for QEMU's
platform support. We're probably pretty close, but still it is a
review stumbling block.

If, however, we demonstrate that we /only/ try to use libsev crate
when building on an x86_64 host, then we don't need to think about
Rust platform support in any detail. We know Rust is fully supported
on x86_64 on Linux, and we're not introducing any Rust dependency
for QEMU on other build target arches.

With regards,
Daniel


Reply via email to