google / schedviz

A tool for gathering and visualizing kernel scheduling traces on Linux machines
Apache License 2.0
519 stars 34 forks source link

some extension poc about irq #31

Open yinan1995 opened 2 years ago

yinan1995 commented 2 years ago

Schedviz is very useful, but it is only limited to 4 sched trace_point. Recently I wanted to observe the triggering status of reschedule irq , and find them in the trace event. I tried processing in the back-end logic of schedViz, converting the format of reschedule_entry and reschedule_exit to sched_switch and visualizing it. Fortunately, it succeeded. Through some settings, comm and illegal pid, we can distinguish these events that we have joined. What do you think of this approach?

ilhamster commented 2 years ago

Hi, thanks for your note.

There are two possibilities to support what you describe.

If you want to use other events to gather scheduling information, you can do so with a custom event loader, like at https://github.com/google/schedviz/blob/master/analysis/sched_event_loaders.go. You could add your fake pids as waiting here to see them in the per-cpu waitqueues.

If you just want to see other event types at the time and on the CPU where they occurred, you can collect the extra events then add them as a layer. This doesn't yet downsample or aggregate, so I'd zoom in a good deal to the area of interest before turning it on, to save JavaScript from trying to render millions of objects.

We're working on ways to improve this kind of thing.

Lee

On Fri, Nov 19, 2021, 01:17 yinan1995 @.***> wrote:

Schedviz is very useful, but it is only limited to 4 sched trace_point. Recently I wanted to observe the triggering status of reschedule irq , and find them in the trace event. I tried processing in the back-end logic of schedViz, converting the format of reschedule_entry and reschedule_exit to sched_switch and visualizing it. Fortunately, it succeeded. Through some settings, comm and illegal pid, we can distinguish these events that we have joined. What do you think of this approach?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/google/schedviz/issues/31, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA27XB6N7Q24RLKI3MZAT3TUMYI4BANCNFSM5ILVFNWA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

yinan1995 commented 2 years ago

Hi,thanks for you answer.

Recently, I am busy with my work, violently modifying the format to observe irq events so that I can quickly achieve my goals. In some sense, that is enough.

Will you do related expansion work? If so, I think schedViz will attract more users.

best regards

-- yinan