[PATCH v2 0/2] examples: systemtap: Fix/update 'amd-sev-es-vmsa.stp'

v2: - reword warning - drop runtime warning which made little sense - word commit message of patch 2 as a simple update to current state Peter Krempa (2): examples: systemtap: Warn users to properly update 'amd-sev-es-vmsa.stp' examples: systemtap: Update to linux-6.3 (rc1) examples/systemtap/amd-sev-es-vmsa.stp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) -- 2.39.2

The script references a very specific line in the kernel source code and a very specific struct. Further changes to the kernel are likely going to break it. Set the expectations by adding a warning to the reader. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- examples/systemtap/amd-sev-es-vmsa.stp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/examples/systemtap/amd-sev-es-vmsa.stp b/examples/systemtap/amd-sev-es-vmsa.stp index 551ed739b7..7bd079be71 100644 --- a/examples/systemtap/amd-sev-es-vmsa.stp +++ b/examples/systemtap/amd-sev-es-vmsa.stp @@ -19,6 +19,10 @@ # A script that captures the VMSA blob for the boot vCPU and # first additional vCPU, when a KVM guest is booted with SEV-ES # +# NOTE: This directly references specific structures and places in the +# kernel source code. It is expected that this example will need to be +# editted to match the kernel you intend to run it against. +# # The captured VMSA will be printed to the console in hex format, # and can be converted to the required binary format by feeding # it through -- 2.39.2

On Mon, Mar 06, 2023 at 12:39:12PM +0100, Peter Krempa wrote:
The script references a very specific line in the kernel source code and a very specific struct. Further changes to the kernel are likely going to break it. Set the expectations by adding a warning to the reader.
Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- examples/systemtap/amd-sev-es-vmsa.stp | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/examples/systemtap/amd-sev-es-vmsa.stp b/examples/systemtap/amd-sev-es-vmsa.stp index 551ed739b7..7bd079be71 100644 --- a/examples/systemtap/amd-sev-es-vmsa.stp +++ b/examples/systemtap/amd-sev-es-vmsa.stp @@ -19,6 +19,10 @@ # A script that captures the VMSA blob for the boot vCPU and # first additional vCPU, when a KVM guest is booted with SEV-ES # +# NOTE: This directly references specific structures and places in the +# kernel source code. It is expected that this example will need to be +# editted to match the kernel you intend to run it against. +# # The captured VMSA will be printed to the console in hex format, # and can be converted to the required binary format by feeding # it through
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

The 'vmsa' struct was moved out of 'struct vcpu_svm' into the 'sev_es' sub-struct in linux commit: commit b67a4cc35c9f726999fa29880713ce72d4e39e8d Author: Peter Gonda <pgonda@google.com> Date: Thu Oct 21 10:42:59 2021 -0700 KVM: SEV: Refactor out sev_es_state struct Move SEV-ES vCPU metadata into new sev_es_state struct from vcpu_svm. Also update the line reference to have more margin. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- examples/systemtap/amd-sev-es-vmsa.stp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/systemtap/amd-sev-es-vmsa.stp b/examples/systemtap/amd-sev-es-vmsa.stp index 7bd079be71..2ac0b6eb53 100644 --- a/examples/systemtap/amd-sev-es-vmsa.stp +++ b/examples/systemtap/amd-sev-es-vmsa.stp @@ -46,7 +46,7 @@ function dump_vmsa(addr:long) { # is the one beween the call to clflush_cache_range(...) and the # call to sev_issue_cmd(kvm, SEV_CMD_LAUNCH_UPDATE...). # -# Line 632 is correct for Linux v6.0 -probe module("kvm_amd").statement("__sev_launch_update_vmsa@arch/x86/kvm/svm/sev.c:632") { - dump_vmsa($svm->vmsa) +# Line 635 is correct for Linux v6.3 +probe module("kvm_amd").statement("__sev_launch_update_vmsa@arch/x86/kvm/svm/sev.c:635") { + dump_vmsa($svm->sev_es->vmsa) } -- 2.39.2

On Mon, Mar 06, 2023 at 12:39:13PM +0100, Peter Krempa wrote:
The 'vmsa' struct was moved out of 'struct vcpu_svm' into the 'sev_es' sub-struct in linux commit:
commit b67a4cc35c9f726999fa29880713ce72d4e39e8d Author: Peter Gonda <pgonda@google.com> Date: Thu Oct 21 10:42:59 2021 -0700
KVM: SEV: Refactor out sev_es_state struct
Move SEV-ES vCPU metadata into new sev_es_state struct from vcpu_svm.
Also update the line reference to have more margin.
Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- examples/systemtap/amd-sev-es-vmsa.stp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
participants (2)
-
Daniel P. Berrangé
-
Peter Krempa