Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 Apr 2015 21:18:46 +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:  <20150425181846.GN2390@kib.kiev.ua>
In-Reply-To: <553BD501.4010109@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> <20150425172833.GM2390@kib.kiev.ua> <553BD501.4010109@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Apr 25, 2015 at 12:55:13PM -0500, Jason Harmening wrote:
> Ah, that looks much better.  A few things though:
> 1) _bus_dmamap_load_ma (note the underscore) is still part of the MI/MD
> interface, which we tell drivers not to use.  It looks like it's
> implemented for every arch though.  Should there be a public and
> documented bus_dmamap_load_ma ?
Might be yes.  But at least one consumer of the KPI must appear before
the facility is introduced.

> 2) There is a bus_dmamap_load_ma_triv that's part of the MI interface,
> but it's not documented, and it seems like it would be suboptimal in
> certain cases, such as when dmar is enabled.
When DMAR is enabled, bus_dmamap_load_triv() should not be used.
It should not be used directly even when not.  Drivers should use
bus_dmamap_load_ma(), and implementation redirects to _triv() if
needed.

The _triv() is the helper to allow bus_dmamap_load_ma() to exists
on architectures which cannot implement, on not yet implemented,
proper page array load op.

> 3) Using bus_dmamap_load_ma would mean always using physcopy for bounce
> buffers...seems like the sfbufs would slow things down ?

For amd64, sfbufs are nop, due to the direct map.  But, I doubt that
we can combine bounce buffers and performance in the single sentence.



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