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

Michael Holzheu holzheu at linux.vnet.ibm.com
Wed Apr 22 16:38:29 UTC 2009


Hi Dave,

Am Mittwoch, den 22.04.2009, 09:18 -0400 schrieb Dave Anderson:
> ----- "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 every other directory under "./"?
Currently "mod -S" searches in all directories.

> And then my proposed enhancement would search for the associated 
> ko.debug files in:
> 
>   ./usr/lib/debug/lib/modules/...

... and every other directory under "./"?

> 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.

Yes! That would be a good solution.

> 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.

No.

I thought that you where suggesting to search only in
<-S dir>/lib/modules.. and <-S dir>/usr/lib/debug/..

As I said before, "mod -S <dir>" currently searches in all
subdirectories of <dir>.

Michael







More information about the Crash-utility mailing list