> 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@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility