svn commit: r286296 - in head/sys: amd64/amd64 arm/arm arm/include arm64/arm64 i386/i386 i386/include mips/mips powerpc/aim powerpc/booke powerpc/include powerpc/powerpc sparc64/include sparc64/spa...
Bjoern A. Zeeb
bz at FreeBSD.org
Tue Aug 4 23:22:13 UTC 2015
> On 04 Aug 2015, at 19:46 , Jason A. Harmening <jah at FreeBSD.org> wrote:
>
> Author: jah
> Date: Tue Aug 4 19:46:13 2015
> New Revision: 286296
> URL: https://svnweb.freebsd.org/changeset/base/286296
>
> Log:
> Add two new pmap functions:
> vm_offset_t pmap_quick_enter_page(vm_page_t m)
> void pmap_quick_remove_page(vm_offset_t kva)
>
> These will create and destroy a temporary, CPU-local KVA mapping of a specified page.
>
> Guarantees:
> --Will not sleep and will not fail.
> --Safe to call under a non-sleepable lock or from an ithread
>
> Restrictions:
> --Not guaranteed to be safe to call from an interrupt filter or under a spin mutex on all platforms
> --Current implementation does not guarantee more than one page of mapping space across all platforms. MI code should not make nested calls to pmap_quick_enter_page.
> --MI code should not perform locking while holding onto a mapping created by pmap_quick_enter_page
>
> The idea is to use this in busdma, for bounce buffer copies as well as virtually-indexed cache maintenance on mips and arm.
>
> NOTE: the non-i386, non-amd64 implementations of these functions still need review and testing.
Most of this description should go into a section 9 man page rather than the commit message ;-)
/bz
More information about the svn-src-all
mailing list