svn commit: r254430 - in head: lib/libc/sys sys/sys sys/vm usr.bin/kdump usr.bin/truss

Alan Cox alc at rice.edu
Fri Aug 16 21:29:49 UTC 2013


On Aug 16, 2013, at 2:20 PM, John Baldwin wrote:

> On Friday, August 16, 2013 5:13:55 pm John Baldwin wrote:
>> Author: jhb
>> Date: Fri Aug 16 21:13:55 2013
>> New Revision: 254430
>> URL: http://svnweb.freebsd.org/changeset/base/254430
>> 
>> Log:
>>  Add new mmap(2) flags to permit applications to request specific virtual
>>  address alignment of mappings.
>>  - MAP_ALIGNED(n) requests a mapping aligned on a boundary of (1 << n).
>>    Requests for n >= number of bits in a pointer or less than the size of
>>    a page fail with EINVAL.  This matches the API provided by NetBSD.
>>  - MAP_ALIGNED_SUPER is a special case of MAP_ALIGNED.  It can be used
>>    to optimize the chances of using large pages.  By default it will align
>>    the mapping on a large page boundary (the system is free to choose any
>>    large page size to align to that seems best for the mapping request).
>>    However, if the object being mapped is already using large pages, then
>>    it will align the virtual mapping to match the existing large pages in
>>    the object instead.
>>  - Internally, VMFS_ALIGNED_SPACE is now renamed to VMFS_SUPER_SPACE, and
>>    VMFS_ALIGNED_SPACE(n) is repurposed for specifying a specific alignment.
>>    MAP_ALIGNED(n) maps to using VMFS_ALIGNED_SPACE(n), while
>>    MAP_ALIGNED_SUPER maps to VMFS_SUPER_SPACE.
>>  - mmap() of a device object now uses VMFS_OPTIMAL_SPACE rather than
>>    explicitly using VMFS_SUPER_SPACE.  All device objects are forced to
>>    use a specific color on creation, so VMFS_OPTIMAL_SPACE is effectively
>>    equivalent.
> 
> Forgot to note:
> 
> - Handle MAP_PREFAULT_READ in kdump and truss.
> 
> Also, any awkwardness in the mmap(2) text is purely my fault and not Alan's.
> We might tweak it further, but the code is tested and fully reviewed.
> 

Thank you for doing this!

Alan



More information about the svn-src-head mailing list