X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=include%2Finstrumentation%2Fevents%2Fworkqueue.h;h=5693cf89c4685c7552fb91c31545622ea105447f;hb=c6da9604b1666780ea4725b3b3d1bfa1548f9c89;hp=023b65a8d8df00b2f62b5ca6a29e57eda0ed8f86;hpb=5e2f832d59d51589ab69479c7db43c7581fb9346;p=lttng-modules.git diff --git a/include/instrumentation/events/workqueue.h b/include/instrumentation/events/workqueue.h index 023b65a8..5693cf89 100644 --- a/include/instrumentation/events/workqueue.h +++ b/include/instrumentation/events/workqueue.h @@ -28,10 +28,35 @@ LTTNG_TRACEPOINT_EVENT_CLASS(workqueue_work, ) ) +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,19,0)) /** * workqueue_queue_work - called when a work gets queued * @req_cpu: the requested cpu - * @cwq: pointer to struct cpu_workqueue_struct + * @pwq: pointer to struct pool_workqueue + * @work: pointer to struct work_struct + * + * This event occurs when a work is queued immediately or once a + * delayed work is actually queued on a workqueue (ie: once the delay + * has been reached). + */ +LTTNG_TRACEPOINT_EVENT(workqueue_queue_work, + + TP_PROTO(int req_cpu, struct pool_workqueue *pwq, + struct work_struct *work), + + TP_ARGS(req_cpu, pwq, work), + + TP_FIELDS( + ctf_integer_hex(void *, work, work) + ctf_integer_hex(void *, function, work->func) + ctf_integer(int, req_cpu, req_cpu) + ) +) +#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,9,0)) +/** + * workqueue_queue_work - called when a work gets queued + * @req_cpu: the requested cpu + * @pwq: pointer to struct pool_workqueue * @work: pointer to struct work_struct * * This event occurs when a work is queued immediately or once a @@ -40,17 +65,34 @@ LTTNG_TRACEPOINT_EVENT_CLASS(workqueue_work, */ LTTNG_TRACEPOINT_EVENT(workqueue_queue_work, -#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,9,0)) TP_PROTO(unsigned int req_cpu, struct pool_workqueue *pwq, struct work_struct *work), TP_ARGS(req_cpu, pwq, work), + + TP_FIELDS( + ctf_integer_hex(void *, work, work) + ctf_integer_hex(void *, function, work->func) + ctf_integer(unsigned int, req_cpu, req_cpu) + ) +) #else +/** + * workqueue_queue_work - called when a work gets queued + * @req_cpu: the requested cpu + * @cwq: pointer to struct cpu_workqueue_struct + * @work: pointer to struct work_struct + * + * This event occurs when a work is queued immediately or once a + * delayed work is actually queued on a workqueue (ie: once the delay + * has been reached). + */ +LTTNG_TRACEPOINT_EVENT(workqueue_queue_work, + TP_PROTO(unsigned int req_cpu, struct cpu_workqueue_struct *cwq, struct work_struct *work), TP_ARGS(req_cpu, cwq, work), -#endif TP_FIELDS( ctf_integer_hex(void *, work, work) @@ -58,6 +100,7 @@ LTTNG_TRACEPOINT_EVENT(workqueue_queue_work, ctf_integer(unsigned int, req_cpu, req_cpu) ) ) +#endif /** * workqueue_activate_work - called when a work gets activated