Visual Studio for Windows has a great plugin available for download called Concurrency Visualizer. This profiling tool records a trace of a multithreaded application, visualizes the time slices, shows the call stacks for each time slice, and also the call stack of the unblocking threads as well.
Is there something comparable in the Linux land? I tried Perfetto and recording sched_switch ftrace events, but I can't see the stack traces.