task.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #undef TRACE_SYSTEM
  3. #define TRACE_SYSTEM task
  4. #if !defined(_TRACE_TASK_H) || defined(TRACE_HEADER_MULTI_READ)
  5. #define _TRACE_TASK_H
  6. #include <linux/tracepoint.h>
  7. TRACE_EVENT(task_newtask,
  8. TP_PROTO(struct task_struct *task, u64 clone_flags),
  9. TP_ARGS(task, clone_flags),
  10. TP_STRUCT__entry(
  11. __field( pid_t, pid)
  12. __array( char, comm, TASK_COMM_LEN)
  13. __field( u64, clone_flags)
  14. __field( short, oom_score_adj)
  15. ),
  16. TP_fast_assign(
  17. __entry->pid = task->pid;
  18. memcpy(__entry->comm, task->comm, TASK_COMM_LEN);
  19. __entry->clone_flags = clone_flags;
  20. __entry->oom_score_adj = task->signal->oom_score_adj;
  21. ),
  22. TP_printk("pid=%d comm=%s clone_flags=%llx oom_score_adj=%hd",
  23. __entry->pid, __entry->comm,
  24. __entry->clone_flags, __entry->oom_score_adj)
  25. );
  26. TRACE_EVENT(task_rename,
  27. TP_PROTO(struct task_struct *task, const char *comm),
  28. TP_ARGS(task, comm),
  29. TP_STRUCT__entry(
  30. __field( pid_t, pid)
  31. __array( char, oldcomm, TASK_COMM_LEN)
  32. __array( char, newcomm, TASK_COMM_LEN)
  33. __field( short, oom_score_adj)
  34. ),
  35. TP_fast_assign(
  36. __entry->pid = task->pid;
  37. memcpy(entry->oldcomm, task->comm, TASK_COMM_LEN);
  38. strscpy(entry->newcomm, comm, TASK_COMM_LEN);
  39. __entry->oom_score_adj = task->signal->oom_score_adj;
  40. ),
  41. TP_printk("pid=%d oldcomm=%s newcomm=%s oom_score_adj=%hd",
  42. __entry->pid, __entry->oldcomm,
  43. __entry->newcomm, __entry->oom_score_adj)
  44. );
  45. /**
  46. * task_prctl_unknown - called on unknown prctl() option
  47. * @option: option passed
  48. * @arg2: arg2 passed
  49. * @arg3: arg3 passed
  50. * @arg4: arg4 passed
  51. * @arg5: arg5 passed
  52. *
  53. * Called on an unknown prctl() option.
  54. */
  55. TRACE_EVENT(task_prctl_unknown,
  56. TP_PROTO(int option, unsigned long arg2, unsigned long arg3,
  57. unsigned long arg4, unsigned long arg5),
  58. TP_ARGS(option, arg2, arg3, arg4, arg5),
  59. TP_STRUCT__entry(
  60. __field( int, option)
  61. __field( unsigned long, arg2)
  62. __field( unsigned long, arg3)
  63. __field( unsigned long, arg4)
  64. __field( unsigned long, arg5)
  65. ),
  66. TP_fast_assign(
  67. __entry->option = option;
  68. __entry->arg2 = arg2;
  69. __entry->arg3 = arg3;
  70. __entry->arg4 = arg4;
  71. __entry->arg5 = arg5;
  72. ),
  73. TP_printk("option=%d arg2=%ld arg3=%ld arg4=%ld arg5=%ld",
  74. __entry->option, __entry->arg2, __entry->arg3, __entry->arg4, __entry->arg5)
  75. );
  76. #endif
  77. /* This part must be outside protection */
  78. #include <trace/define_trace.h>