[Crash-utility] Crash setup!

Jayaraman, Bhaskar Bhaskar.Jayaraman at lsi.com
Wed Oct 8 05:25:06 UTC 2008


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

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. 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. I still haven't started compiling the crash utils.

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.

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




More information about the Crash-utility mailing list