Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prepare for update to COCONUT linux host and QEMU 9.0 #415

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 15 additions & 2 deletions scripts/launch_guest.sh
Original file line number Diff line number Diff line change
Expand Up @@ -62,12 +62,24 @@ QEMU_MINOR=${QEMU_MINOR%%.$QEMU_BUILD}

# The QEMU machine and memory command line changed after QEMU 8.2.0 from
# the coconut-svsm git repository.
if (( (QEMU_MAJOR > 8) || ((QEMU_MAJOR == 8) && (QEMU_MINOR >= 2)) )); then
if (( QEMU_MAJOR >= 9 )); then
MACHINE=q35,confidential-guest-support=sev0,memory-backend=mem0,igvm-cfg=igvm0
IGVM_OBJECT=
Copy link
Contributor

@stefano-garzarella stefano-garzarella Jul 24, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess it's a left over. Can we remove this line (67)?

MEMORY=memory-backend-memfd,size=8G,id=mem0,share=true,prealloc=false,reserve=false
IGVM_OBJECT="-object igvm-cfg,id=igvm0,file=$IGVM"
INIT_FLAGS=
IGVM_FILE=
elif (( (QEMU_MAJOR > 8) || ((QEMU_MAJOR == 8) && (QEMU_MINOR >= 2)) )); then
MACHINE=q35,confidential-guest-support=sev0,memory-backend=mem0
MEMORY=memory-backend-memfd,size=8G,id=mem0,share=true,prealloc=false,reserve=false
IGVM_FILE=",igvm-file=$IGVM"
IGVM_OBJECT=
INIT_FLAGS=,init-flags=5
else
MACHINE=q35,confidential-guest-support=sev0,memory-backend=mem0,kvm-type=protected
MEMORY=memory-backend-memfd-private,size=8G,id=mem0,share=true
IGVM_OBJECT=
INIT_FLAGS=,init-flags=5
fi

# Setup a disk if an image has been specified
Expand Down Expand Up @@ -103,7 +115,8 @@ $SUDO_CMD \
-cpu EPYC-v4 \
-machine $MACHINE \
-object $MEMORY \
-object sev-snp-guest,id=sev0,cbitpos=$C_BIT_POS,reduced-phys-bits=1,init-flags=5,igvm-file=$IGVM \
-object sev-snp-guest,id=sev0,cbitpos=$C_BIT_POS,reduced-phys-bits=1$INIT_FLAGS$IGVM_FILE \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not a strong opinion, but what about defining an SEV_SNP_OBJECT and assign it for each QEMU version, so it's a bit clear also for the reader the differences between the versions?

I mean something like this:

if (( QEMU_MAJOR >= 9 )); then
    ...
    SEV_SNP_OBJECT="-object sev-snp-guest,id=sev0,cbitpos=$C_BIT_POS,reduced-phys-bits=1"
elif (( (QEMU_MAJOR > 8) || ((QEMU_MAJOR == 8) && (QEMU_MINOR >= 2)) )); then
    ...
    SEV_SNP_OBJECT="-object sev-snp-guest,id=sev0,cbitpos=$C_BIT_POS,reduced-phys-bits=1,init-flags=5,igvm-file=$IGVM"
   ...

$IGVM_OBJECT \
-smp 4 \
-no-reboot \
-netdev user,id=vmnic -device e1000,netdev=vmnic,romfile= \
Expand Down