因为应用程序oprofiled将采样地址trans->pc认作64位,如0xffffffff80200000,而将内核image(/boot/vmlinux)的start和end认作32位(因为loongson3A用的vmlinux是vmlinux.32),所以在判断trans->pc是否在start和end之间时,永远是no,导致无法采样内核函数。
解决方法如下:opcontrol--vmlinux=/boot/vmlinux.64,即oprofile用64位内核作为符号分析对象
本文介绍了一个关于oprofile在Loongson 3A平台上进行内核采样时遇到的问题及其解决方案。由于oprofile将采样地址视为64位,而内核映像被当作32位处理,导致无法正确采样内核函数。解决方法是通过使用64位内核映像作为符号分析对象。
因为应用程序oprofiled将采样地址trans->pc认作64位,如0xffffffff80200000,而将内核image(/boot/vmlinux)的start和end认作32位(因为loongson3A用的vmlinux是vmlinux.32),所以在判断trans->pc是否在start和end之间时,永远是no,导致无法采样内核函数。
解决方法如下:
2997
663

被折叠的 条评论
为什么被折叠?