:p
atchew
Login
Peter Krempa (2): examples: systemtap: Warn users to properly update 'amd-sev-es-vmsa.stp' examples: systemtap: Update to linux-6.3 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 thus may need to be updated to work properly. Add a warning into the comment and also print it to warn users. 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 XXXXXXX..XXXXXXX 100644 --- a/examples/systemtap/amd-sev-es-vmsa.stp +++ b/examples/systemtap/amd-sev-es-vmsa.stp @@ -XXX,XX +XXX,XX @@ # 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. If the code changes this example will break. +# # 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 @@ -XXX,XX +XXX,XX @@ # probe begin { + printf("WARNING: Make sure this script is updated according to your kernel source!\n") printf("Running\n") } -- 2.39.2
The 'vmsa' struct was moved out of 'struct vcpu_svm' 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 for linux-6.3. NB: I strongly considered removing the example as it's impossible to keep in sync. With the warning added by previous commit I think we can give it one more chance. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2175598 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 XXXXXXX..XXXXXXX 100644 --- a/examples/systemtap/amd-sev-es-vmsa.stp +++ b/examples/systemtap/amd-sev-es-vmsa.stp @@ -XXX,XX +XXX,XX @@ 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
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 XXXXXXX..XXXXXXX 100644 --- a/examples/systemtap/amd-sev-es-vmsa.stp +++ b/examples/systemtap/amd-sev-es-vmsa.stp @@ -XXX,XX +XXX,XX @@ # 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
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 XXXXXXX..XXXXXXX 100644 --- a/examples/systemtap/amd-sev-es-vmsa.stp +++ b/examples/systemtap/amd-sev-es-vmsa.stp @@ -XXX,XX +XXX,XX @@ 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