[Crash-utility] Crash setup!

Jayaraman, Bhaskar Bhaskar.Jayaraman at lsi.com
Fri Oct 10 11:02:27 UTC 2008


Dave, my apologies for being ambiguous, I forgot to mention how I installed xen-3.3.0; since an upgrade of the xen kernel, which came with the CentOS 5.2 DVD, to xen-3.3.0 would fail the xen python scripts, a workaround was employed.
So we first install CentOS w/o Xen and then bring in the xen-3.3.0 sources and install it on top of this. In this procedure the crash.ko driver doesn't seem to be getting installed.
Now I'm facing two issues: -

1] I believe I will need the crash.ko driver to run the crash on a live kernel but I'm not able to find its source file in the linux sources that come with 3.3.0

2] I believe we have to build a debug kernel for crash to work with it. However when I enable the compile kernel with debug info in "make menuconfig", and make in the /xen-3.3.0/linux-2.6.18-xen.hg directory and do a make on /xen-3.3.0 directory, I keep getting an error which says: -

make -C /home/user/xen-3.3.0/linux-2.6.18-xen.hg O=/home/user/xen-3.3.0/build-linux-2.6.18-xen_x86_64 modules
  Using /home/user/xen-3.3.0/linux-2.6.18-xen.hg as source for kernel
  /home/user/xen-3.3.0/linux-2.6.18-xen.hg is not clean, please run 'make mrproper'
  in the '/home/user/xen-3.3.0/linux-2.6.18-xen.hg' directory.
make[5]: *** [prepare3] Error 1
make[4]: *** [modules] Error 2
make[3]: *** [modules] Error 2
make[3]: Leaving directory `/home/user/xen-3.3.0/build-linux-2.6.18-xen_x86_64'
make[2]: *** [build] Error 1
make[2]: Leaving directory `/home/user/xen-3.3.0'
make[1]: *** [linux-2.6-xen-install] Error 2
make[1]: Leaving directory `/home/user/xen-3.3.0'
make: *** [install-kernels] Error 1

Bhaskar.

-----Original Message-----
From: crash-utility-bounces at redhat.com [mailto:crash-utility-bounces at redhat.com] On Behalf Of Dave Anderson
Sent: Wednesday, October 08, 2008 7:13 PM
To: Discussion list for crash utility usage, maintenance and development
Subject: Re: [Crash-utility] Crash setup!


----- "Bhaskar Jayaraman" <Bhaskar.Jayaraman at lsi.com> wrote:

> Dave, I somehow didn't receive your previous thread and had to look it
> up on the mailing list website. I'm using the following configuration:
> -
> Dell T7400 with VT and VT-d enabled.
> CentOS 5.2 with 2.6.18 kernel

OK, I see that the CentOS 5.2 kernel-2.6.18-92.el5.src.rpm package contains
contains the crash driver, and in that package both kernel-2.6.18-x86_64.config
and kernel-2.6.18-x86_64-xen.config still have CONFIG_CRASH=m set.
But that's not surprising given that CentOS 5 is supposed to be identical
to RHEL5.

>
> I guess the default kernel doesn't build with crash and other
> debugging options. However when I do a "make menuconfig" I didn't see
> any option specific to crash in it.

When you say "default kernel", what kernel are you referring to?
If you're still talking about Centos kernel-2.6.18-92.el5.src.rpm, all you
have to do is install the kernel-2.6.18-92.el5.src.rpm, go the relevant
SPECS directory, and enter "rpmbuild -ba --target x86_64 kernel-2.6.spec".
It's built with debugging enabled, and creates a set of kernel debuginfo
packages that can be installed.

> So I applied the patch from
> sourcefourge but it is for 2.6.10 kernel. I am somehow trying to
> compile the code with my own hacks but if you have a better idea let
> me know.

Sorry, I have *no* idea what you're talking about w/respect to the
"patch from sourceforge"...

> I still haven't started compiling the crash utils.

Well, at least that's trivial.  The simplest way to do that
is to just download the latest tar.gz file from my web site.

 $ tar xzf crash-4.0-7.2.tar.gz
 ...
 $ cd crash-4.0-7.2
 $ make

>
> Since 2.6.18-92-el5 contains crash in it I was wondering if I simply
> get its sources from the CD and try and compile with my kernel but I
> got involved in trying to fix the 2.6.10 kernel so I have left it for
> later. I specifically need to compile crash with 2.6.18 right now and
> maybe later on for different versions of the kernel. Let me know what
> are your thoughts on it and if there's a place where I can find crash
> sources for all kernel flavors.

Now I'm getting more confused.  When you say "compile crash with 2.6.18",
are you talking about the crash utility?  The crash utility is designed
to be run on any kernel "flavor".  You just have to compile it on the
host machine where you want to run it.  It has no kernel version dependencies
because it is designed to maintain backwards compatibility while being
updated regularly to "keep up" with upstream kernel changes.

If you're still referring to the /dev/crash kernel driver, and given
that you are capable of rebuilding whatever kernel you're going to run
to run with, then I strongly suggest just using the /dev/mem driver.
I'm presuming that you're running the 64-bit x86_64 kernel given the
hardware you're running on.  With a 64-bit kernel, there's no benefit
in trying to backport the Red Hat /dev/crash driver into your kernel.

Dave


>
> Thanks,
> Bhaskar.
> ________________________________________
> From: crash-utility-bounces at redhat.com
> [crash-utility-bounces at redhat.com] On Behalf Of Dave Anderson
> [anderson at redhat.com]
> Sent: Tuesday, October 07, 2008 11:43 AM
> To: Discussion list for crash utility usage,    maintenance and
> development
> Subject: Re: [Crash-utility] Crash setup!
>
> > But the /dev/crash driver does require small modifications to the
> kernel source,
> > primarily to EXPORT_SYMBOL_GPL() the page_is_ram() function.
>
> Interesting -- FWIW, the EXPORT_SYMBOL_GPL() requirement for
> page_is_ram()
> may no longer be required if an analogous, static, version of
> page_is_ram()
> were to be written into the crash driver itself -- and that static
> version
> could use the e820_any_mapped() function, which is EXPORT_SYMBOL_GPL()
> in
> the upstream kernel:
>
>   /*
>    * This function checks if any part of the range <start,end> is
> mapped
>    * with type.
>    */
>   int
>   e820_any_mapped(u64 start, u64 end, unsigned type)
>   {
>           int i;
>           for (i = 0; i < e820.nr_map; i++) {
>                   const struct e820entry *ei = &e820.map[i];
>                   if (type && ei->type != type)
>                           continue;
>                   if (ei->addr >= end || ei->addr + ei->size <=
> start)
>                           continue;
>                   return 1;
>           }
>           return 0;
>   }
>   EXPORT_SYMBOL_GPL(e820_any_mapped);
>
> For that matter, e820_any_mapped() is also in RHEL5.  But it was not
> in the 2.6.9-based RHEL4 kernel, which was what the RHEL5 version of
> the
> crash driver was based upon.
>
> But RHEL5 also has modified the x86-only page_is_ram() to check for
> efi_enabled,
> and if it's set, to use the "memmap" efi_memory_map instead of the
> e820 map.
> Although, that's not done upstream.
>
> Anyway, just another data point...
>
> Dave
>
>
>
> --
> Crash-utility mailing list
> Crash-utility at redhat.com
> https://www.redhat.com/mailman/listinfo/crash-utility
>
> --
> Crash-utility mailing list
> Crash-utility at redhat.com
> https://www.redhat.com/mailman/listinfo/crash-utility

--
Crash-utility mailing list
Crash-utility at redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility




More information about the Crash-utility mailing list