kdump: quad core Opteron

Chandru chandru at in.ibm.com
Wed Oct 8 09:51:49 EDT 2008

Bob Montgomery wrote:
> Here's the README for the patch:
> This patch changes the initialization of the GART (in
> pci-gart.c:init_k8_gatt) to set the DisGartCpu bit in the GART Aperture
> Control Register.  Setting the bit Disables requests from the CPUs from
> accessing the GART.  In other words, CPU memory accesses within the
> range of addresses in the aperture will not cause the GART to perform an
> address translation.  The aperture area was already being unmapped at
> the kernel level with clear_kernel_mapping() to prevent accesses from
> the CPU, but that kernel level unmapping is not in effect in the kexec'd
> kdump kernel.  By disabling the CPU-side accesses within the GART, which
> does persist through the kexec of the kdump kernel, the kdump kernel is
> prevented from interacting with the GART during accesses to the dump
> memory areas which include the address range of the GART aperture.
> Although the patch can be applied to the kdump kernel, it is not
> exercised there because the kdump kernel doesn't attempt to initialize
> the GART.
> Bob Montgomery
> working at HP

I made the following changes and it seems like it is working.

--- linux-2.6.27-rc8/include/asm-x86/gart.h.orig        2008-10-08 
09:41:23.000000000 -0400
+++ linux-2.6.27-rc8/include/asm-x86/gart.h     2008-10-08 
09:44:35.000000000 -0400
@@ -42,7 +42,8 @@ static inline void enable_gart_translati
         /* Enable GART translation for this hammer. */
         pci_read_config_dword(dev, AMD64_GARTAPERTURECTL, &ctl);
         ctl |= GARTEN;
-        ctl &= ~(DISGARTCPU | DISGARTIO);
+       ctl |= DISGARTCPU;
+       ctl &= ~(DISGARTIO);
         pci_write_config_dword(dev, AMD64_GARTAPERTURECTL, ctl);

The system doesn't reset now while copying /proc/vmcore. Thanks!


More information about the kexec mailing list