Re: swiotlb default size (64 MB) too small?

From: FUJITA Tomonori
Date: Tue Jan 20 2009 - 17:44:42 EST


On Tue, 20 Jan 2009 21:10:48 +0100
Stefan Richter <stefanr@xxxxxxxxxxxxxxxxx> wrote:

> somebody reported frequent "Out of SW-IOMMU space" failures when copying
> between a FireWire and a USB disk. swiotlb=512M on the kernel command
> line fixes it for him. https://bugzilla.redhat.com/show_bug.cgi?id=478567
>
> Should the default be raised?

I don't think so. Reserving large memory like 512MB for swiotlb? It
means that you waste 512MB if you use decent HBAs (having no dma mask
limit) or fast storage, or when there is few I/O activity.

The bug reporter said that copying stooped but it should not
happen. It doesn't happen with SCSI (copying can continue a bit
slowly). dma mapping errors are transient so SCSI retries.

I guess that it would be better to remove the misleading error
message. Sane IOMMUs don't do that.

If the bug report is true, then the FireWire stack or the driver (or
both) has problems. Make sure that FireWire can work even with dma
mapping failures. My dma mapping debug patchset might be useful:

git://git.kernel.org/pub/scm/linux/kernel/git/tomo/linux-2.6-misc.git dmafault

You can inject dma mapping failures per device:

vine:/debug/pci/0000:00:1d.1# ls
interval probability space task-filter times verbose
--
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/