Re: Problem with DMA on x86_64 with 3 GB RAM

From: Ray Lee
Date: Mon Nov 20 2006 - 23:40:34 EST


Hey there,

Haven't seen any follow ups to this, so I'm going to ask stupid questions. (I
only have 1G of RAM on my x86_64, so I'm no help.)

First off, have you pinged David Miller (davem at davemloft.net)? He seems to
have the DMA API tattooed on a body part, I think.

Larry Finger wrote:
> I am trying to debug a bcm43xx DMA problem on an x86_64 system with 3 GB
> RAM. Depending on the particular chip and its implementation, dma
> transfers may use 64-, 32-, or 30-bit addressing, with the problem
> interface using 30-bit addressing. From test prints, the correct mask
> (0x3FFFFFFF) is supplied to pci_set_dma_mask and
> pci_set_consistent_dma_mask. Neither call returns an error. In addition,
> several x86_64 systems with more than 1 GB RAM have worked with the
> current code.
>
> If the system is booted with mem=1024M on the command line, it operates
> normally; however, it gets a kernel NULL pointer dereference and panics
> when booted with either 2 or 3 GB RAM.

Confused. As in, once the bcm43xx module initcall happens? Or without bcm43xx
at all? If the former, is the behavior different when built as a module versus
built-in? (ie, are there ordering problems.)

> The config parameters in the processor section are as follows:
>
> CONFIG_X86_64=y
> CONFIG_64BIT=y
> CONFIG_X86=y
> CONFIG_ZONE_DMA32=y
> CONFIG_LOCKDEP_SUPPORT=y
> CONFIG_STACKTRACE_SUPPORT=y
> CONFIG_SEMAPHORE_SLEEPERS=y
> CONFIG_MMU=y
> CONFIG_RWSEM_GENERIC_SPINLOCK=y
> CONFIG_GENERIC_HWEIGHT=y
> CONFIG_GENERIC_CALIBRATE_DELAY=y
> CONFIG_X86_CMPXCHG=y
> CONFIG_EARLY_PRINTK=y
> CONFIG_GENERIC_ISA_DMA=y
> CONFIG_GENERIC_IOMAP=y
> CONFIG_ARCH_MAY_HAVE_PC_FDC=y
> CONFIG_ARCH_POPULATES_NODE_MAP=y
> CONFIG_DMI=y
> CONFIG_AUDIT_ARCH=y
> CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
>
> I would appreciate any tips on debugging this problem. Are there any
> quantities that should be dumped, etc?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/