Re: [PATCH RFC] swiotlb: Disable swiotlb overflow support whenCONFIG_ISA is enabled

From: Shuah Khan
Date: Mon Jul 16 2012 - 11:48:18 EST


On Mon, 2012-07-16 at 10:45 -0400, Konrad Rzeszutek Wilk wrote:
> On Thu, Jul 12, 2012 at 10:17:50AM -0600, Shuah Khan wrote:
> > Disable iotlb overflow support when CONFIG_ISA is enabled. This is the
> > first step towards removing overflow support, to be consistent with other
> > iommu implementations and return DMA_ERROR_CODE. This disabling step is
> > for finding drivers that don't call dma_mapping_error to check for errors
> > returned by the mapping interface. Once drivers are fixed overflow support
> > can be removed.
>
> I think I explained myself poorly. We don't want to break old drivers.
>
> If the old drivers expect this behavior (while they should be updated
> to check the DMA), we need to retain this behavior.
>
> So I think the patch should be done the other way:
>
> Disable IOTLB overflow when CONFIG_ISA is disabled.

That makes lot of sense :) I will redo the patch. It might be good to a
tunable to control enable/disable behavior. Even though support for this
new tunable "swiotlb_overflow" projected to be short lived, it will be
lot less painful to disable/enable as needed. Thought and comments?

>
> But we also need to check whether there are other drivers
> that don't properly check the DMA address. And if so, add them
> to this list of must have enabled b/c you might be using this
> driver.

Sound good. Again having a tunable would help in this case as well.
>
> The first goal is to figure out which of the drivers aren't doing this
> properly. This should be possible by just grepping for 'dma_map' and
> seeing which ones don't do the 'dma_check' right after.

I started some research into this and will continue and provide an
update.

-- Shuah

--
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/