Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 Apr 2015 20:28:33 +0300
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Jason Harmening <jason.harmening@gmail.com>
Cc:        Svatopluk Kraus <onwahe@gmail.com>, FreeBSD Arch <freebsd-arch@freebsd.org>
Subject:   Re: bus_dmamap_sync() for bounced client buffers from user address space
Message-ID:  <20150425172833.GM2390@kib.kiev.ua>
In-Reply-To: <553BC9D1.1070502@gmail.com>
References:  <CAFHCsPXMjge84AR2cR8KXMXWP4kH2YvuV_uqtPKUvn5C3ygknw@mail.gmail.com> <CAM=8qan-4SbKJaddrfkv=HG3n%2BHaOPDL5MEPS9DoaTvnhrJPZQ@mail.gmail.com> <20150425094152.GE2390@kib.kiev.ua> <553B9E64.8030907@gmail.com> <20150425163444.GL2390@kib.kiev.ua> <553BC9D1.1070502@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Apr 25, 2015 at 12:07:29PM -0500, Jason Harmening wrote:
> 
> On 04/25/15 11:34, Konstantin Belousov wrote:
> > I believe UIO_USERSPACE is almost unused, it might be there for some
> > obscure (and buggy) driver.
> It may be nearly unused, but we still document it in busdma.9, and we
> still explicitly check for it when setting the pmap in
> _bus_dmamap_load_uio.  If it's not safe to use, then it's not OK for us
> to do that.
> We need to either a) remove support for it by adding a failure/KASSERT
> on UIO_USERSPACE in _busdmamap_load_uio() and remove the paragraph on it
> from busdma.9, or b) make it safe.
> 
> I'd be in favor of b), because I think it is still valid to support some
> non-painful way of using DMA with userspace buffers.  Right now, the
> only safe way to do that seems to be:
> 1) vm_fault_quick_hold_pages
> 2) kva_alloc
> 3) pmap_qenter
> 4) bus_dmamap_load
1. vm_fault_quick_hold
2. bus_dmamap_load_ma

> 
> That seems both unnecessarily complex and wasteful of KVA space.
> 
The above sequence does not need a KVA allocation.





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150425172833.GM2390>