• Arnaldo Carvalho de Melo's avatar
    tools arch x86: Sync the msr-index.h copy with the kernel sources to pick... · 17437266
    Arnaldo Carvalho de Melo authored
    tools arch x86: Sync the msr-index.h copy with the kernel sources to pick IA32_MKTME_KEYID_PARTITIONING
    
    To pick up the changes in:
    
      765a0542 ("x86/virt/tdx: Detect TDX during kernel boot")
    
    Addressing this tools/perf build warning:
    
      Warning: Kernel ABI header differences:
        diff -u tools/arch/x86/include/asm/msr-index.h arch/x86/include/asm/msr-index.h
    
    That makes the beautification scripts to pick some new entries:
    
      $ tools/perf/trace/beauty/tracepoints/x86_msr.sh > before
      $ cp arch/x86/include/asm/msr-index.h tools/arch/x86/include/asm/msr-index.h
      $ tools/perf/trace/beauty/tracepoints/x86_msr.sh > after
      $ diff -u before after
      --- before	2024-01-25 11:08:12.363223880 -0300
      +++ after	2024-01-25 11:08:24.839307699 -0300
      @@ -21,6 +21,7 @@
       	[0x0000004f] = "PPIN",
       	[0x00000060] = "LBR_CORE_TO",
       	[0x00000079] = "IA32_UCODE_WRITE",
      +	[0x00000087] = "IA32_MKTME_KEYID_PARTITIONING",
       	[0x0000008b] = "AMD64_PATCH_LEVEL",
       	[0x0000008C] = "IA32_SGXLEPUBKEYHASH0",
       	[0x0000008D] = "IA32_SGXLEPUBKEYHASH1",
      $
    
    Now one can trace systemwide asking to see backtraces to where that MSR
    is being read/written, see this example with a previous update:
    
      # perf trace -e msr:*_msr/max-stack=32/ --filter="msr==IA32_MKTME_KEYID_PARTITIONING"
      ^C#
    
    If we use -v (verbose mode) we can see what it does behind the scenes:
    
      # perf trace -v -e msr:*_msr/max-stack=32/ --filter="msr==IA32_MKTME_KEYID_PARTITIONING"
      Using CPUID GenuineIntel-6-8E-A
      0x87
      New filter for msr:read_msr: (msr==0x87) && (common_pid != 58627 && common_pid != 3792)
      0x87
      New filter for msr:write_msr: (msr==0x87) && (common_pid != 58627 && common_pid != 3792)
      mmap size 528384B
      ^C#
    
    Example with a frequent msr:
    
      # perf trace -v -e msr:*_msr/max-stack=32/ --filter="msr==IA32_SPEC_CTRL" --max-events 2
      Using CPUID AuthenticAMD-25-21-0
      0x48
      New filter for msr:read_msr: (msr==0x48) && (common_pid != 2612129 && common_pid != 3841)
      0x48
      New filter for msr:write_msr: (msr==0x48) && (common_pid != 2612129 && common_pid != 3841)
      mmap size 528384B
      Looking at the vmlinux_path (8 entries long)
      symsrc__init: build id mismatch for vmlinux.
      Using /proc/kcore for kernel data
      Using /proc/kallsyms for symbols
       0.000 Timer/2525383 msr:write_msr(msr: IA32_SPEC_CTRL, val: 6)
      				   do_trace_write_msr ([kernel.kallsyms])
      				   do_trace_write_msr ([kernel.kallsyms])
      				   __switch_to_xtra ([kernel.kallsyms])
      				   __switch_to ([kernel.kallsyms])
      				   __schedule ([kernel.kallsyms])
      				   schedule ([kernel.kallsyms])
      				   futex_wait_queue_me ([kernel.kallsyms])
      				   futex_wait ([kernel.kallsyms])
      				   do_futex ([kernel.kallsyms])
      				   __x64_sys_futex ([kernel.kallsyms])
      				   do_syscall_64 ([kernel.kallsyms])
      				   entry_SYSCALL_64_after_hwframe ([kernel.kallsyms])
      				   __futex_abstimed_wait_common64 (/usr/lib64/libpthread-2.33.so)
       0.030 :0/0 msr:write_msr(msr: IA32_SPEC_CTRL, val: 2)
      				   do_trace_write_msr ([kernel.kallsyms])
      				   do_trace_write_msr ([kernel.kallsyms])
      				   __switch_to_xtra ([kernel.kallsyms])
      				   __switch_to ([kernel.kallsyms])
      				   __schedule ([kernel.kallsyms])
      				   schedule_idle ([kernel.kallsyms])
      				   do_idle ([kernel.kallsyms])
      				   cpu_startup_entry ([kernel.kallsyms])
      				   secondary_startup_64_no_verify ([kernel.kallsyms])
      #
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Kai Huang <kai.huang@intel.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: https://lore.kernel.org/lkml/ZbJt27rjkQVU1YoP@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    17437266
msr-index.h 43.4 KB