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-head mailing list