Re: USB problem on x86_64: nommu_map_single() issue?

From: FUJITA Tomonori
Date: Tue Oct 14 2008 - 07:15:36 EST


On Tue, 14 Oct 2008 13:05:39 +0200
Nicolas Bareil <nico@xxxxxxxxx> wrote:

> On Tue, Oct 14, 2008 at 08:00:09PM +0900, FUJITA Tomonori wrote:
> > > > Is this a regression? Did it work on earlier kernels?
> > >
> > > Yes this is a regression: USB works in 2.6.26.x with (almost) the same configuration.
> >
> > With old kernels, you can find something like the following line in
> > the boot log?
> >
> > PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
>
> Indeed, I have this line:
>
> Oct 14 12:46:29 brew kernel: [ 0.004000] Calgary: detecting Calgary via BIOS EBDA area
> Oct 14 12:46:29 brew kernel: [ 0.004000] Calgary: Unable to locate Rio Grande table in EBDA - bailing!
> Oct 14 12:46:29 brew kernel: [ 0.004000] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
> Oct 14 12:46:29 brew kernel: [ 0.004000] Placing software IO TLB between 0x4000000 - 0x8000000
> Oct 14 12:46:29 brew kernel: [ 0.004000] Memory: 4055544k/4980736k available (2225k kernel code, 138092k reserved, 1079k data, 392k init)
> Oct 14 12:46:29 brew kernel: [ 0.004000] CPA: page pool initialized 1 of 1 pages preallocated

Probably, the changes to the initial memory setup code breaks the
following code:

void __init pci_swiotlb_init(void)
{
/* don't initialize swiotlb if iommu=off (no_iommu=1) */
if (!iommu_detected && !no_iommu && max_pfn > MAX_DMA32_PFN)
swiotlb = 1;


SWIOTLB should be used for your box but somehow pci-nommu is used.


> The whole kern.log and my config are available here :
> http://chdir.org/~nbareil/kern.log

The following part in the 2.6.27 boot log looks suspicious:

Oct 13 15:43:48 brew kernel: last_pfn = 0x130000 max_arch_pfn = 0x3ffffffff
Oct 13 15:43:48 brew kernel: x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
Oct 13 15:43:48 brew kernel: last_pfn = 0xcffc2 max_arch_pfn = 0x3ffffffff


CC'ed Yinghai and Ingo, who might have clues.
--
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/