因为应用程序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位内核作为符号分析对象
因为应用程序oprofiled将采样地址trans->pc认作64位,如0xffffffff80200000,而将内核image(/boot/vmlinux)的start和end认作32位(因为loongson3A用的vmlinux是vmlinux.32),所以在判断trans->pc是否在start和end之间时,永远是no,导致无法采样内核函数。
解决方法如下: