]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
tools headers UAPI: Sync linux/prctl.h with the kernel sources
authorArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 27 May 2024 15:15:27 +0000 (12:15 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 27 May 2024 15:20:02 +0000 (12:20 -0300)
To pick the changes in:

  628d701f2de5b9a1 ("powerpc/dexcr: Add DEXCR prctl interface")
  6b9391b581fddd85 ("riscv: Include riscv_set_icache_flush_ctx prctl")

That adds some PowerPC and a RISC-V specific prctl options:

  $ tools/perf/trace/beauty/prctl_option.sh > before
  $ cp include/uapi/linux/prctl.h tools/perf/trace/beauty/include/uapi/linux/prctl.h
  $ tools/perf/trace/beauty/prctl_option.sh > after
  $ diff -u before after
  --- before 2024-05-27 12:14:21.358032781 -0300
  +++ after 2024-05-27 12:14:32.364530185 -0300
  @@ -65,6 +65,9 @@
    [68] = "GET_MEMORY_MERGE",
    [69] = "RISCV_V_SET_CONTROL",
    [70] = "RISCV_V_GET_CONTROL",
  + [71] = "RISCV_SET_ICACHE_FLUSH_CTX",
  + [72] = "PPC_GET_DEXCR",
  + [73] = "PPC_SET_DEXCR",
   };
   static const char *prctl_set_mm_options[] = {
    [1] = "START_CODE",
  $

That now will be used to decode the syscall option and also to compose
filters, for instance:

  [root@five ~]# perf trace -e syscalls:sys_enter_prctl --filter option==SET_NAME
       0.000 Isolated Servi/3474327 syscalls:sys_enter_prctl(option: SET_NAME, arg2: 0x7f23f13b7aee)
       0.032 DOM Worker/3474327 syscalls:sys_enter_prctl(option: SET_NAME, arg2: 0x7f23deb25670)
       7.920 :3474328/3474328 syscalls:sys_enter_prctl(option: SET_NAME, arg2: 0x7f23e24fbb10)
       7.935 StreamT~s #374/3474328 syscalls:sys_enter_prctl(option: SET_NAME, arg2: 0x7f23e24fb970)
       8.400 Isolated Servi/3474329 syscalls:sys_enter_prctl(option: SET_NAME, arg2: 0x7f23e24bab10)
       8.418 StreamT~s #374/3474329 syscalls:sys_enter_prctl(option: SET_NAME, arg2: 0x7f23e24ba970)
  ^C[root@five ~]#

This addresses this perf build warning:

  Warning: Kernel ABI header differences:
    diff -u tools/include/uapi/linux/prctl.h include/uapi/linux/prctl.h

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Benjamin Gray <bgray@linux.ibm.com>
Cc: Charlie Jenkins <charlie@rivosinc.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Palmer Dabbelt <palmer@rivosinc.com>
Link: https://lore.kernel.org/lkml/ZlSklGWp--v_Ije7@x1
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/trace/beauty/include/uapi/linux/prctl.h

index 370ed14b1ae0928ce23312ac8a882db89a78dfdc..35791791a879b288f02fecb6803e5eaeec609fc4 100644 (file)
@@ -306,4 +306,26 @@ struct prctl_mm_map {
 # define PR_RISCV_V_VSTATE_CTRL_NEXT_MASK      0xc
 # define PR_RISCV_V_VSTATE_CTRL_MASK           0x1f
 
+#define PR_RISCV_SET_ICACHE_FLUSH_CTX  71
+# define PR_RISCV_CTX_SW_FENCEI_ON     0
+# define PR_RISCV_CTX_SW_FENCEI_OFF    1
+# define PR_RISCV_SCOPE_PER_PROCESS    0
+# define PR_RISCV_SCOPE_PER_THREAD     1
+
+/* PowerPC Dynamic Execution Control Register (DEXCR) controls */
+#define PR_PPC_GET_DEXCR               72
+#define PR_PPC_SET_DEXCR               73
+/* DEXCR aspect to act on */
+# define PR_PPC_DEXCR_SBHE             0 /* Speculative branch hint enable */
+# define PR_PPC_DEXCR_IBRTPD           1 /* Indirect branch recurrent target prediction disable */
+# define PR_PPC_DEXCR_SRAPD            2 /* Subroutine return address prediction disable */
+# define PR_PPC_DEXCR_NPHIE            3 /* Non-privileged hash instruction enable */
+/* Action to apply / return */
+# define PR_PPC_DEXCR_CTRL_EDITABLE     0x1 /* Aspect can be modified with PR_PPC_SET_DEXCR */
+# define PR_PPC_DEXCR_CTRL_SET          0x2 /* Set the aspect for this process */
+# define PR_PPC_DEXCR_CTRL_CLEAR        0x4 /* Clear the aspect for this process */
+# define PR_PPC_DEXCR_CTRL_SET_ONEXEC   0x8 /* Set the aspect on exec */
+# define PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC        0x10 /* Clear the aspect on exec */
+# define PR_PPC_DEXCR_CTRL_MASK                0x1f
+
 #endif /* _LINUX_PRCTL_H */