Messages in this thread Patch in this message | | | From | Yang Jihong <> | Subject | [RFC 03/13] perf kwork: Add softirq record support | Date | Mon, 13 Jun 2022 17:45:55 +0800 |
| |
Record softirq events irq:softirq_raise, irq:softirq_entry & irq:softirq_exit.
Record all events:
# perf kwork record -o perf_kwork.date -- sleep 1 [ perf record: Woken up 0 times to write data ] [ perf record: Captured and wrote 0.736 MB perf_kwork.date ]
# perf evlist -i perf_kwork.date irq:irq_handler_entry irq:irq_handler_exit irq:softirq_raise irq:softirq_entry irq:softirq_exit dummy:HG
Record softirq events:
# perf kwork -k softirq record -o perf_kwork.date -- sleep 1 [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.165 MB perf_kwork.date ]
# perf evlist -i perf_kwork.date irq:softirq_raise irq:softirq_entry irq:softirq_exit dummy:HG
Signed-off-by: Yang Jihong <yangjihong1@huawei.com> --- tools/perf/builtin-kwork.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
diff --git a/tools/perf/builtin-kwork.c b/tools/perf/builtin-kwork.c index 822904b2597e..0da554e04f16 100644 --- a/tools/perf/builtin-kwork.c +++ b/tools/perf/builtin-kwork.c @@ -26,6 +26,7 @@ enum kwork_class_type { KWORK_CLASS_IRQ, + KWORK_CLASS_SOFTIRQ, KWORK_CLASS_MAX, }; @@ -80,8 +81,21 @@ static struct kwork_class kwork_irq = { .tp_handlers = irq_tp_handlers, }; +const struct evsel_str_handler softirq_tp_handlers[] = { + { "irq:softirq_raise", NULL, }, + { "irq:softirq_entry", NULL, }, + { "irq:softirq_exit", NULL, }, +}; + +static struct kwork_class kwork_softirq = { + .name = "softirq", + .nr_tracepoints = 3, + .tp_handlers = softirq_tp_handlers, +}; + static struct kwork_class *kwork_class_supported_list[KWORK_CLASS_MAX] = { [KWORK_CLASS_IRQ] = &kwork_irq, + [KWORK_CLASS_SOFTIRQ] = &kwork_softirq, }; static void setup_event_list(struct perf_kwork *kwork, -- 2.30.GIT
| |