Ksymoops
Has anyone here used ksymoops on ia64? I don't know if I am doing anything wrong but I get an awful lot of warnings when I try to run a panic through it on ia64. I have done these lots of times on i386 with no problems..
Before I run my test that panics the system I boot with the console redirected to the serial port. I cat /proc/ksyms to a file. Then after the panic I reboot and run the captured text through with the ksyms file I grabbed and the rest are defaults.
I get lots of warnings on my System.map. I also get the complaint that it can't find my /lib/qla1280.o scsi module but I know thats because it came from an initrd image. (Does anyone else think thats a bug? Should the initrd library be at the same path as the real module when the system is loaded? ie /lib/modules/2.4.4/kernel/drivers/scsi/qla1280.o)
I can post my panic here if anyone is interested. I just fear that I'm not doing something right and I want to make sure I'm reporting good bug reports!
:-)
Thanks!
Quoted 1 line · william
Has anyone here used ksymoops on ia64?
All the time.
Quoted 1 line
I get lots of warnings on my System.map.
Send me the ksymoops output, I will see if the System.map warnings are user error (wrong System.map) or something else.
Quoted 5 lines
I also get the complaint that it
can't find my/lib/qla1280.oscsi module but I know thats because it came from an initrd image. (Does anyone else think thats a bug? Should the initrd library be at the same path as the real module when the system is loaded? ie/lib/modules/2.4.4/kernel/drivers/scsi/qla1280.o)
It is a bug, and will be fixed in the next ksymoops release, but only if you supply an extra flag to ksymoops. The extra flag will ignore the path part of __insmod_..O names, instead it will look for the named object in your current /lib/modules. The assumption is that /lib/modules always contains the same objects as used when mkinitrd was run. I hope to release the new ksymoops later this weekend.
Quoted 3 lines · william
Has anyone here used ksymoops on ia64? I don't know if I am doing anything wrong but I get an awful lot of warnings when I try to run a panic through it on ia64.
Thanks for the test reports (off list). It is obvious what is wrong, /proc/ksyms does not list the address of functions, instead it lists the address of the function pointer which contains { &function, GP }. That breaks all the assumptions used by ksymoops and other debuggers which rely on symbol tables. System.map lists the real function addresses. By coincidence, all my ia64 ksymoops runs were done from ix86 (cross debug mode) using just System.map, no ksyms.
I need to think about the best way of handling this. insmod needs the function pointer, ksymoops needs the real function address. Ideally ksyms should list both addresses, the pointer and the real function address. That will be tricky given the current EXPORT_SYMBOL() mechanism, there is no obvious way to distinguish between functions and other addresses, this problem only applies to functions.