<div dir="auto"><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 18 Oct 2021, 11:18 Dongliang Mu, <<a href="mailto:mudongliangabcd@gmail.com">mudongliangabcd@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">+Brendan Gregg<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Good catch!</div><div dir="auto"><br></div><div dir="auto">Take a look at his "System Performance, 2nd ed., ISBN 978-0-13-682015-4.</div><div dir="auto"><br></div><div dir="auto">He has an interesting blog at <a href="https://www.brendangregg.com/blog/index.html">https://www.brendangregg.com/blog/index.html</a></div><div dir="auto"><br></div><div dir="auto">As Greg, Pavel, and I said, use GDB if you need it. However I'd still consider using the "func_graph" tracer of ftrace in order to know where to attach GDB in the calls chain.</div><div dir="auto"><br></div><div dir="auto">With ftrace you'll also get info about which CPU is running (you wrote that you need to know this information).</div><div dir="auto"><br></div><div dir="auto">Now I recall that, by using Perf,  somehow I was able to go interactively down to the assembly code and see where it was stuck in an endless loop.</div><div dir="auto"><br></div><div dir="auto">Unfortunately at this moment I cannot remember how I did that and I cannot try to reproduce it for you because these days I'm away from my PC (I'm writing with a smartphone). Please try to figure it out by your own.<br></div><div dir="auto"><br></div><div dir="auto">Regards,</div><div dir="auto"><br></div><div dir="auto">Fabio</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br><br>
</blockquote></div></div></div>