Hi Dave,
Am Mittwoch, den 22.04.2009, 09:18 -0400 schrieb Dave Anderson:
 ----- "Michael Holzheu" <holzheu(a)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