On Wed, Apr 30, 2008 at 8:21 PM, Dave Anderson <anderson(a)redhat.com> wrote:
 Mike Snitzer wrote:
 > On Wed, Apr 30, 2008 at 7:41 PM, Dave Anderson <anderson(a)redhat.com>
 wrote:
 >
 >
 > > Mike Snitzer wrote:
 > >
 > >
 > >
 > > > On Wed, Apr 30, 2008 at 6:43 PM, Dave Anderson
<anderson(a)redhat.com>
 > > >
 > > >
 > >
 >
 >
 >
 > >
 > > >
 > > > >  Anyway, there are no kernel patches applied to RHEL5 kernels
 > > > >  to make it work that I'm aware of.  That being said, I
don't
 > > > >  have an answer as to why they don't work for modules on your
 > > > >  custom kernel (or why they don't work in RHEL4 kernels...).
 > > > >
 > > > >
 > > > >
 > > > >
 > > > I configured my x86_64 kernel to be relocatable.  Could this be the
 > > > reason for modules' line number debug data being off?  From:
 > > > 
http://people.redhat.com/anderson/crash.changelog.html#4_0_4_5
 > > >
 > > > "Using /proc/kallsyms or a --reloc=[size] as a command line argument
 > > >  is similar to using a System.map file, in that it results in the loss
 > > >  of the use of line number debug data."
 > > >
 > > >
 > > >
 > > >
 > >  No, that particular issue only applies to the base kernel, and is
 > > irrelevant with respect to modules.
 > >  (Note that the RHEL5 kernel is relocatable as well.)
 > >
 > >
 >
 > OK, yeah making the base kernel non-relocatable didn't help.
 >
 >
 >
 > >  What you might confirm is whether you're getting any debuginfo data
 when
 > > you load the module?  Are you sure that your modules are being built
 with -g?
 > >
 > >
 >
 > How would I confirm that I'm getting debuginfo data when I 'mod -s
 > ext3'?  I'm using an spec file that is based heavily (at least
 > relative to debuginfo) on the redhat kernel-2.6.spec but I'll have to
 > verify that I'm building with -g...
 >
 > Mike
 >
 >
  So your build procedure ends up with a kernel-debuginfo package that
 contains a set of "split" <module-name>.ko.debug files? 
Yes.
 If you take the module filename displayed after the "mod
-s" is done,
 and run it through "readelf -a", you'll see a .gnu_debuglink section.
My kernel's ext3.ko has:
  [23] .gnu_debuglink    PROGBITS         0000000000000000  00036558
       0000000000000014  0000000000000000           0     0     4
which would appear fairly comparable to what the RHEL5 kernel's ext3.ko has:
  [22] .gnu_debuglink    PROGBITS         0000000000000000  00037418
       0000000000000014  0000000000000000           0     0     4
 That /lib/modules/<path-to>/module.ko module will have
  a link to its partner in
 /usr/lib/debug/lib/modules/<path-to>/module.ko.debug. 
readelf -x $SECTION /lib/modules/<path-to>/ext3.ko shows that
.gnu_debuglink points to ext3.ko.debug as expected.
Given the "so far so good" nature of what you're helping me verify
here it still begs the question: so why doesn't it work on my
2.6.22.19 x86_64 kernel? ;)
Where does the line number debug data get stored in the
module.ko.debug?  In my case the source comes up as
"include/linux/clocksource.h: 121" for all kernel modules' symbols.
Any further pointers would be greatly appreciated, thanks a lot for
your time already!
Mike