[Crash-utility] mod -S and debuginfo kernel rpm

Dave Anderson anderson at redhat.com
Wed Apr 22 13:18:58 UTC 2009


----- "Michael Holzheu" <holzheu at linux.vnet.ibm.com> wrote:

> > So for example, if the target "mod -S [directory]" was specified to be ".",
> > there would be "./lib/modules" and "./usr/lib/debug/lib/modules" subdirectory
> > trees.  
> > 
> > And then "mod -S [directory]" would just work.
> 
> Doesn't this change the current behavior? Currently the search is
> restricted to the directory specified with mod -S. You would change that
> and search only <-S dir>/lib/modules.. and <-S dir>/usr/lib/debug/..> ?

It doesn't change the current behavior, but rather enhances it to
also make the search for the associated ko.debug files in the same
subdirectory tree.  

The current behavior of "mod -S [directory]" is to restrict the search
for the stripped .ko files to the specified directory.  But then if
the "found" stripped .ko file is linked to a .ko.debug file, then
the standard gdb rules are applied for finding the associated ko.debug
files, i.e., in that same directory where the stripped .ko file
exists, in a .debug subdirectory there, or finally, in the global
/usr/lib/debug/lib/modules/<release>/... tree.

Sorry if I keep repeating myself...   

> 
> So maybe a new prefix option (-P ?) might be better:
> 
> (4) Search stripped modules in <-P dir>/lib/modules/ and debug modules
>     in <-P dir>/usr/lib/debug/lib/modules/

We already have the "Search stripped modules in <-P dir>/lib/modules"
capability in place.  That's "mod -S [dir]" as it works now.

The question is whether it makes sense to restrict the location
of the associated debuginfo tree to the same root directory as
the "mod -S [dir]" directory.  

So when you stated: 

> That's what I used. In particular I did the following:
>
> # mkdir mydump
> # cd mydump
> # rpm2cpio kernel-2.6.18-128.el5.s390x.rpm | cpio -idv
> # rpm2cpio kernel-debuginfo-2.6.18-128.el5.s390x.rpm | cpio -idv
>
> Then I called:
>
> # mod -S lib/modules/2.6.18-128.el5/
> 
> That only loads the stripped modules. It does not search locally.

My suggestion would allow you to do this:

  # mkdir mydump
  # cd mydump
  # rpm2cpio kernel-2.6.18-128.el5.s390x.rpm | cpio -idv
  # rpm2cpio kernel-debuginfo-2.6.18-128.el5.s390x.rpm | cpio -idv
  # crash 
  ...
  crash> mod -S .

and then the stripped modules would be searched for in:

  ./lib/modules/...

And then my proposed enhancement would search for the associated 
ko.debug files in:

  ./usr/lib/debug/lib/modules/...

So no changes to the current "mod" command options would be required.

And taking Guy's request, where a central machine may be dedicated
to storing dumpfiles, they could to the "double-rpm2cpio" in a
static location, with one "double-tree" per kernel release.  With
that in place, the would always have the double-tree in place,
and then could run:

  crash> mod -S <path-to>/<release-double-tree>

Seems pretty straight forward to me.  And as always, I'm just
trying to keep things as simple as possible.

The question is whether you are suggesting that it would be
common to have the /lib/modules tree rooted in one location,
and the /usr/lib/debug/lib/modules tree rooted elsewhere.

Is that what you're saying?  

Dave







More information about the Crash-utility mailing list