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...
Jason Harmening
jason.harmening at gmail.com
Tue Aug 4 23:50:29 UTC 2015
On 08/04/15 18:22, Bjoern A. Zeeb wrote:
>
>> 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
>
Yep, I'm planning to write one.
More information about the svn-src-all
mailing list