Subject: Re: [RFC PATCH] fix problems with NETIF_F_HIGHDMA in networking drivers

From: Bartlomiej Zolnierkiewicz <[email-masked]>
Date: Sat, 27 Feb 2010 12:59:31 +0100

On Saturday 27 February 2010 10:53:50 am David Miller wrote:
> From: Robert Hancock <[email-masked]>
> Date: Fri, 26 Feb 2010 21:08:04 -0600
> 
> > That seems like a reasonable approach to me. Only question is how to
> > implement the check for DMA_64BIT. Can we just check page_to_phys on
> > each of the pages in the skb to see if it's > 0xffffffff ? Are there
> > any architectures where it's more complicated than that?
> 
> On almost every platform it's "more complicated than that".

Mildly speaking, I see the real problem now and it is much higher in
the software stack than networking..

> This is the whole issue.  What matters is the final DMA address and
> since we have IOMMUs and the like, it is absolutely not tenable to
> solve this by checking physical address attributes.

What's more we may not have IOMMU in place which creates really interesting
scenarios for HIGHMEM=y and results in all kind of wonderful band-aids in
particular device drivers.

Having IOMMU (even if it is only a software one, i.e. this would mean
swiotlb for x86-32/highmem) always in place would simplify things greatly..

--
Bartlomiej Zolnierkiewicz