----- "Bhaskar Jayaraman" <Bhaskar.Jayaraman(a)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(a)redhat.com
[crash-utility-bounces(a)redhat.com] On Behalf Of Dave Anderson
[anderson(a)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(a)redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility
--
Crash-utility mailing list
Crash-utility(a)redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility