* How to generate a Kerntypes file? @ 2009-01-22 10:59 jidong xiao 2009-01-22 13:31 ` Cliff Wickman 0 siblings, 1 reply; 5+ messages in thread From: jidong xiao @ 2009-01-22 10:59 UTC (permalink / raw) To: linux-kernel Hi,All, Sometimes when I install a kernel I saw there is a Kerntypes file installed under /boot directory, but sometimes no, I remember when I install a sles9 kernel, there must be a Kerntypes file installed, but most of other kernels doesn't include such a Kerntypes file. This file is very useful for me to do some analysis, so I hope I can generate it every time I build a kernel. Do I need a patch for this or there are already some patches I can take use of?Thanks. Regards Jason ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: How to generate a Kerntypes file? 2009-01-22 10:59 How to generate a Kerntypes file? jidong xiao @ 2009-01-22 13:31 ` Cliff Wickman 2009-01-23 6:37 ` jidong xiao 0 siblings, 1 reply; 5+ messages in thread From: Cliff Wickman @ 2009-01-22 13:31 UTC (permalink / raw) To: jidong xiao; +Cc: linux-kernel Hi Jason, On Thu, Jan 22, 2009 at 06:59:34PM +0800, jidong xiao wrote: > Hi,All, > > Sometimes when I install a kernel I saw there is a Kerntypes file > installed under /boot directory, but sometimes no, I remember when I > install a sles9 kernel, there must be a Kerntypes file installed, but > most of other kernels doesn't include such a Kerntypes file. This file > is very useful for me to do some analysis, so I hope I can generate it > every time I build a kernel. Do I need a patch for this or there are > already some patches I can take use of?Thanks. You had a init/kerntypes.c in sles9 and sles10. It included a lot of basic kernel types. It was compiled with -g to make the kerntypes. I presume that you used the LKCD project's lcrash with the kerntypes. If you download lkcd (lkcd.svn.sourceforge.net) you also build a tool called dwarfextract. It is able to pull all the structure definitions out of a -g (CONFIG_DEBUG_INFO) kernel and any selected modules. That is useful with the lcrash command. If you want to analyze your live system or a dump with the crash command (people.redhat.com/~anderson/) you don't need the kerntypes, as you use the -g kernel itself. Although you may make kerntypes with dwarfextract and use them with crash also. -Cliff > Regards > Jason > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- Cliff Wickman Silicon Graphics, Inc. cpw@sgi.com (651) 683-3824 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: How to generate a Kerntypes file? 2009-01-22 13:31 ` Cliff Wickman @ 2009-01-23 6:37 ` jidong xiao 2009-01-23 13:45 ` Cliff Wickman 0 siblings, 1 reply; 5+ messages in thread From: jidong xiao @ 2009-01-23 6:37 UTC (permalink / raw) To: Cliff Wickman; +Cc: linux-kernel On Thu, Jan 22, 2009 at 9:31 PM, Cliff Wickman <cpw@sgi.com> wrote: > Hi Jason, > > On Thu, Jan 22, 2009 at 06:59:34PM +0800, jidong xiao wrote: >> Hi,All, >> >> Sometimes when I install a kernel I saw there is a Kerntypes file >> installed under /boot directory, but sometimes no, I remember when I >> install a sles9 kernel, there must be a Kerntypes file installed, but >> most of other kernels doesn't include such a Kerntypes file. This file >> is very useful for me to do some analysis, so I hope I can generate it >> every time I build a kernel. Do I need a patch for this or there are >> already some patches I can take use of?Thanks. > > You had a init/kerntypes.c in sles9 and sles10. It included a lot > of basic kernel types. It was compiled with -g to make the kerntypes. > I presume that you used the LKCD project's lcrash with the kerntypes. > Hi, Cliff, Thanks for your guides. Well yes I am intending to use lcrash to load the kernel debug information. I noticed that recently kdb is going to be able to print out kernel structures, and now I want to test that feature, I started my experiments by reading the instructions inside kdb/modules/kdbm_debugtypes.c which is saying: * Usage: * in order for the insmod kdbm_debugtypes.ko to succeed in loading types * you must first use lcrash -t kerntypes.xxxx -o debug_info * and echo debug_info > /proc/kdb/debug_info_name so I have to generate kerntypes file. I looked into init/kerntypes.c, it seems there is nothing but just includes some header files, like below: 16 #include <linux/compile.h> 17 #include <linux/module.h> 18 #include <linux/mm.h> 19 #include <linux/vmalloc.h> 20 #include <linux/config.h> 21 #include <linux/utsname.h> 22 #include <linux/kernel_stat.h> 23 #include <linux/dump.h> 24 25 #include <asm/kerntypes.h> We can see here are 9 files are included, does this mean the resulted Kerntypes file only provides kernel structures that are defined within these 9 files? If I want to print out more kernel structures I need to change this file so as to include more header files? In addition, if I want to generate Kerntypes file via building a mainline kernel(rather than SLES kernel), the only thing I need to do is: 1. add this init/kerntypes.c and include/asm/kerntypes.h into kernel source code. 2. change the Makefile accordingly. After that I just compile the kernel as usual and I should be able to get the Kerntypes file(which is actually nothing but just init/kerntypes.o), right? Regards Jason > If you download lkcd (lkcd.svn.sourceforge.net) you also build a > tool called dwarfextract. It is able to pull all the structure > definitions out of a -g (CONFIG_DEBUG_INFO) kernel and any selected > modules. That is useful with the lcrash command. > > If you want to analyze your live system or a dump with the crash command > (people.redhat.com/~anderson/) you don't need the kerntypes, as you use > the -g kernel itself. Although you may make kerntypes with dwarfextract > and use them with crash also. > > -Cliff > >> Regards >> Jason >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html >> Please read the FAQ at http://www.tux.org/lkml/ > > -- > Cliff Wickman > Silicon Graphics, Inc. > cpw@sgi.com > (651) 683-3824 > ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: How to generate a Kerntypes file? 2009-01-23 6:37 ` jidong xiao @ 2009-01-23 13:45 ` Cliff Wickman 2009-01-24 9:07 ` jidong xiao 0 siblings, 1 reply; 5+ messages in thread From: Cliff Wickman @ 2009-01-23 13:45 UTC (permalink / raw) To: jidong xiao; +Cc: linux-kernel On Fri, Jan 23, 2009 at 02:37:12PM +0800, jidong xiao wrote: > On Thu, Jan 22, 2009 at 9:31 PM, Cliff Wickman <cpw@sgi.com> wrote: > > Hi Jason, > > > > On Thu, Jan 22, 2009 at 06:59:34PM +0800, jidong xiao wrote: > >> Hi,All, > >> > >> Sometimes when I install a kernel I saw there is a Kerntypes file > >> installed under /boot directory, but sometimes no, I remember when I > >> install a sles9 kernel, there must be a Kerntypes file installed, but > >> most of other kernels doesn't include such a Kerntypes file. This file > >> is very useful for me to do some analysis, so I hope I can generate it > >> every time I build a kernel. Do I need a patch for this or there are > >> already some patches I can take use of?Thanks. > > > > You had a init/kerntypes.c in sles9 and sles10. It included a lot > > of basic kernel types. It was compiled with -g to make the kerntypes. > > I presume that you used the LKCD project's lcrash with the kerntypes. > > > Hi, Cliff, > > Thanks for your guides. > > Well yes I am intending to use lcrash to load the kernel debug information. > > I noticed that recently kdb is going to be able to print out kernel > structures, and now I want to test that feature, I started my > experiments by reading the instructions inside > kdb/modules/kdbm_debugtypes.c which is saying: > > * Usage: > * in order for the insmod kdbm_debugtypes.ko to succeed in loading types > * you must first use lcrash -t kerntypes.xxxx -o debug_info > * and echo debug_info > /proc/kdb/debug_info_name > > so I have to generate kerntypes file. I looked into init/kerntypes.c, > it seems there is nothing but just includes some header files, like > below: > > 16 #include <linux/compile.h> > 17 #include <linux/module.h> > 18 #include <linux/mm.h> > 19 #include <linux/vmalloc.h> > 20 #include <linux/config.h> > 21 #include <linux/utsname.h> > 22 #include <linux/kernel_stat.h> > 23 #include <linux/dump.h> > 24 > 25 #include <asm/kerntypes.h> > > We can see here are 9 files are included, does this mean the resulted > Kerntypes file only provides kernel structures that are defined within > these 9 files? Yes > If I want to print out more kernel structures I need to > change this file so as to include more header files? Yes, in theory. But not so easily done, as you can't throw in any and every header and get a clean compile. > In addition, if I want to generate Kerntypes file via building a > mainline kernel(rather than SLES kernel), the only thing I need to do > is: > 1. add this init/kerntypes.c and include/asm/kerntypes.h into kernel > source code. > 2. change the Makefile accordingly. > > After that I just compile the kernel as usual and I should be able to > get the Kerntypes file(which is actually nothing but just > init/kerntypes.o), right? You wouldn't use init/kerntypes.c In your .config file set CONFIG_DEBUG_INFO=y That will cause the whole kernel to be compiled with -g. Then: dwarfextract -Pp vmlinux kerntypes You can append the structures from any modules: dwarfextract kerntypes -c xxx.ko,yyy.ko,zzz.ko kerntypes.with.modules > > Regards > Jason > > > If you download lkcd (lkcd.svn.sourceforge.net) you also build a > > tool called dwarfextract. It is able to pull all the structure > > definitions out of a -g (CONFIG_DEBUG_INFO) kernel and any selected > > modules. That is useful with the lcrash command. BTW there are recent additions to dwarfextract. you might want to re-download lkcd. -Cliff -- Cliff Wickman Silicon Graphics, Inc. cpw@sgi.com (651) 683-3824 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: How to generate a Kerntypes file? 2009-01-23 13:45 ` Cliff Wickman @ 2009-01-24 9:07 ` jidong xiao 0 siblings, 0 replies; 5+ messages in thread From: jidong xiao @ 2009-01-24 9:07 UTC (permalink / raw) To: Cliff Wickman; +Cc: linux-kernel On Fri, Jan 23, 2009 at 9:45 PM, Cliff Wickman <cpw@sgi.com> wrote: > On Fri, Jan 23, 2009 at 02:37:12PM +0800, jidong xiao wrote: >> On Thu, Jan 22, 2009 at 9:31 PM, Cliff Wickman <cpw@sgi.com> wrote: >> > Hi Jason, >> > >> > On Thu, Jan 22, 2009 at 06:59:34PM +0800, jidong xiao wrote: >> >> Hi,All, >> >> >> >> Sometimes when I install a kernel I saw there is a Kerntypes file >> >> installed under /boot directory, but sometimes no, I remember when I >> >> install a sles9 kernel, there must be a Kerntypes file installed, but >> >> most of other kernels doesn't include such a Kerntypes file. This file >> >> is very useful for me to do some analysis, so I hope I can generate it >> >> every time I build a kernel. Do I need a patch for this or there are >> >> already some patches I can take use of?Thanks. >> > >> > You had a init/kerntypes.c in sles9 and sles10. It included a lot >> > of basic kernel types. It was compiled with -g to make the kerntypes. >> > I presume that you used the LKCD project's lcrash with the kerntypes. >> > >> Hi, Cliff, >> >> Thanks for your guides. >> >> Well yes I am intending to use lcrash to load the kernel debug information. >> >> I noticed that recently kdb is going to be able to print out kernel >> structures, and now I want to test that feature, I started my >> experiments by reading the instructions inside >> kdb/modules/kdbm_debugtypes.c which is saying: >> >> * Usage: >> * in order for the insmod kdbm_debugtypes.ko to succeed in loading types >> * you must first use lcrash -t kerntypes.xxxx -o debug_info >> * and echo debug_info > /proc/kdb/debug_info_name >> >> so I have to generate kerntypes file. I looked into init/kerntypes.c, >> it seems there is nothing but just includes some header files, like >> below: >> >> 16 #include <linux/compile.h> >> 17 #include <linux/module.h> >> 18 #include <linux/mm.h> >> 19 #include <linux/vmalloc.h> >> 20 #include <linux/config.h> >> 21 #include <linux/utsname.h> >> 22 #include <linux/kernel_stat.h> >> 23 #include <linux/dump.h> >> 24 >> 25 #include <asm/kerntypes.h> >> >> We can see here are 9 files are included, does this mean the resulted >> Kerntypes file only provides kernel structures that are defined within >> these 9 files? > Yes >> If I want to print out more kernel structures I need to >> change this file so as to include more header files? > > Yes, in theory. But not so easily done, as you can't throw in any and every > header and get a clean compile. > >> In addition, if I want to generate Kerntypes file via building a >> mainline kernel(rather than SLES kernel), the only thing I need to do >> is: >> 1. add this init/kerntypes.c and include/asm/kerntypes.h into kernel >> source code. >> 2. change the Makefile accordingly. >> >> After that I just compile the kernel as usual and I should be able to >> get the Kerntypes file(which is actually nothing but just >> init/kerntypes.o), right? > > You wouldn't use init/kerntypes.c > In your .config file set CONFIG_DEBUG_INFO=y > That will cause the whole kernel to be compiled with -g. > Then: dwarfextract -Pp vmlinux kerntypes > You can append the structures from any modules: > dwarfextract kerntypes -c xxx.ko,yyy.ko,zzz.ko kerntypes.with.modules > Hmm,this is very cool, I usually enable the kernel debug options in config file. >> >> Regards >> Jason >> >> > If you download lkcd (lkcd.svn.sourceforge.net) you also build a >> > tool called dwarfextract. It is able to pull all the structure >> > definitions out of a -g (CONFIG_DEBUG_INFO) kernel and any selected >> > modules. That is useful with the lcrash command. > BTW there are recent additions to dwarfextract. you might want to > re-download lkcd. > Okay, I see. I will try dwarfextract first and let you know if I meet further issue. Thanks Regards Jason > -Cliff > -- > Cliff Wickman > Silicon Graphics, Inc. > cpw@sgi.com > (651) 683-3824 > ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2009-01-24 9:07 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-01-22 10:59 How to generate a Kerntypes file? jidong xiao 2009-01-22 13:31 ` Cliff Wickman 2009-01-23 6:37 ` jidong xiao 2009-01-23 13:45 ` Cliff Wickman 2009-01-24 9:07 ` jidong xiao
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox