2006-03-21 01:05:40

by Roland Dreier

[permalink] [raw]
Subject: nommu_map_sg: overflow with ata_piix?

I just got a new dual Xeon system with 4 GB of RAM and SATA drives.
It boots fine with Debian's 2.6.15 kernel, but I just tried building a
kernel from an up-to-date Linus tree, and I get the following on boot:

scsi0 : ata_piix
ATA: abnormal status 0x7F on port 0x405F
scsi1 : ata_piix
Vendor: ATA Model: Maxtor 6L080M0 Rev: BACE
Type: Direct-Access ANSI SCSI revision: 05
SCSI device sda: 156301488 512-byte hdwr sectors (80026 MB)
sda: Write Protect is off
SCSI device sda: drive cache: write through
SCSI device sda: 156301488 512-byte hdwr sectors (80026 MB)
sda: Write Protect is off
SCSI device sda: drive cache: write through
sda:<3>nommu_map_sg: overflow 11b8a9000+4096 of device mask ffffffff
nommu_map_sg: overflow 11b8a9000+4096 of device mask ffffffff
nommu_map_sg: overflow 11b8a9000+4096 of device mask ffffffff
nommu_map_sg: overflow 11b8a9000+4096 of device mask ffffffff
nommu_map_sg: overflow 11b8a9000+4096 of device mask ffffffff
nommu_map_sg: overflow 11b8a9000+4096 of device mask ffffffff
sd 0:0:0:0: SCSI error: return code = 0x70000

and then of course it panics because it can't find the root partition.

Some RAM is being remapped above 4 GB:

BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 00000000dfff3000 (usable)
BIOS-e820: 00000000dfff3000 - 00000000dfffb000 (ACPI data)
BIOS-e820: 00000000dfffb000 - 00000000e0000000 (reserved)
BIOS-e820: 00000000fec00000 - 00000000fed00000 (reserved)
BIOS-e820: 00000000fee00000 - 00000000fee10000 (reserved)
BIOS-e820: 00000000ffc00000 - 0000000100000000 (reserved)
BIOS-e820: 0000000100000000 - 000000011bfff000 (usable)

Any suggestions? I can provide more debugging info if required.

Thanks,
Roland


2006-03-21 03:16:43

by Roland Dreier

[permalink] [raw]
Subject: Re: nommu_map_sg: overflow with ata_piix?

> nommu_map_sg: overflow 11b8a9000+4096 of device mask ffffffff

Never mind, I'm (sort of) an idiot. The kernel that complained like
that had CONFIG_GART_IOMMU=n -- I foolishly thought, "I have a Xeon,
which can't do GART IOMMU, so I don't need that option." I didn't
realize that it also enables swiotlb. Once I read the help text I was
OK.

- R.

2006-03-21 07:12:14

by Muli Ben-Yehuda

[permalink] [raw]
Subject: Re: nommu_map_sg: overflow with ata_piix?

On Mon, Mar 20, 2006 at 07:16:37PM -0800, Roland Dreier wrote:
> > nommu_map_sg: overflow 11b8a9000+4096 of device mask ffffffff
>
> Never mind, I'm (sort of) an idiot. The kernel that complained like
> that had CONFIG_GART_IOMMU=n -- I foolishly thought, "I have a Xeon,
> which can't do GART IOMMU, so I don't need that option." I didn't
> realize that it also enables swiotlb. Once I read the help text I was
> OK.

In theory it should be possible to turn just swiotlb on, but at the
moment it requires gart due to the way pci-dma is structured. If
someone is looking for a little side project, this could be a good
one.

Cheers,
Muli
--
Muli Ben-Yehuda
http://www.mulix.org | http://mulix.livejournal.com/