On Fri, 23 Jul 2010 17:23:33 +0200 Andi Kleen <ak@xxxxxxxxxxxxxxx> wrote: > > > I was thinking about this at some point. I think the first step is to > > make SWIOTLB use the debugfs to actually print out how much of its > > buffers are used - and see if the 64MB is a good fit. > > swiotlb is near always wrongly sized. For most system it's far too much, > but for some > not enough. I have some systemtap scripts around to instrument it. True, it's impossible to preallocate the best iotlb size statically. > Also it depends on the IO load, so if you size it reasonable you > risk overflow on large IO (however these days this very rarely happens > because > all "serious" IO devices don't need swiotlb anymore) Yeah, nowadays it's pointless to try to get the good performance with swiotlb. > The other problem is that using only two bits for the needed address > space is also extremly > inefficient (4GB and 16MB on x86). Really want masks everywhere and > optimize for the > actual requirements. swiotlb doesn't allocate GFP_DMA memory. It handles only GFP_DMA32. swiotlb doesn't work for drivers with some odd dma mask (non 32bit) but we have been lived with it so I don't think that it's a big issue. I think, supporting expanding swiotlb dynamically is enough. The default swiotlb size, 64MB is too large for majority. I have a half-baked patch for it. I'll send it later. -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html