#
847ab36b |
| 02-Sep-2020 |
Mark Johnston <markj@FreeBSD.org> |
Include the psind in data returned by mincore(2).
Currently we use a single bit to indicate whether the virtual page is part of a superpage. To support a forthcoming implementation of non-transpare
Include the psind in data returned by mincore(2).
Currently we use a single bit to indicate whether the virtual page is part of a superpage. To support a forthcoming implementation of non-transparent 1GB superpages, it is useful to provide more detailed information about large page sizes.
The change converts MINCORE_SUPER into a mask for MINCORE_PSIND(psind) values, indicating a mapping of size psind, where psind is an index into the pagesizes array returned by getpagesizes(3), which in turn comes from the hw.pagesizes sysctl. MINCORE_PSIND(1) is equal to the old value of MINCORE_SUPER.
For now, two bits are used to record the page size, permitting values of MAXPAGESIZES up to 4.
Reviewed by: alc, kib Sponsored by: Juniper Networks, Inc. Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D26238
show more ...
|
#
c3aa3bf9 |
| 01-Sep-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vm: clean up empty lines in .c and .h files
|
#
e2515283 |
| 27-Aug-2020 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: Rubicon Communications, LLC (netgate.com)
|
#
e81829d0 |
| 16-Aug-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r364264 through r364278.
|
#
a92a971b |
| 16-Aug-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: remove the thread argument from vget
It was already asserted to be curthread.
Semantic patch:
@@
expression arg1, arg2, arg3;
@@
- vget(arg1, arg2, arg3) + vget(arg1, arg2)
|
#
52c81be1 |
| 20-Jun-2020 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
Add linux_madvise(2) instead of having Linux apps call the native FreeBSD madvise(2) directly. While some of the flag values match, most don't.
PR: kern/230160 Reported by: markj Reviewed by: mark
Add linux_madvise(2) instead of having Linux apps call the native FreeBSD madvise(2) directly. While some of the flag values match, most don't.
PR: kern/230160 Reported by: markj Reviewed by: markj Discussed with: brooks, kib MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D25272
show more ...
|
#
0f1e6ec5 |
| 19-Jun-2020 |
Mark Johnston <markj@FreeBSD.org> |
Add a helper function for validating VA ranges.
Functions which take untrusted user ranges must validate against the bounds of the map, and also check for wraparound. Instead of having the same log
Add a helper function for validating VA ranges.
Functions which take untrusted user ranges must validate against the bounds of the map, and also check for wraparound. Instead of having the same logic duplicated in a number of places, add a function to check.
Reviewed by: dougm, kib Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D25328
show more ...
|
Revision tags: release/11.4.0 |
|
#
4d13f784 |
| 04-Jun-2020 |
Ed Maste <emaste@FreeBSD.org> |
Correct terminology in vm.imply_prot_max sysctl description
As with r361769 (man page), PROT_* are properly called protections, not permissions.
MFC after: 1 week MFC with: r361769 Sponsored by: Th
Correct terminology in vm.imply_prot_max sysctl description
As with r361769 (man page), PROT_* are properly called protections, not permissions.
MFC after: 1 week MFC with: r361769 Sponsored by: The FreeBSD Foundation
show more ...
|
#
e43d33d2 |
| 05-Mar-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r358466 through r358677.
|
#
d718de81 |
| 04-Mar-2020 |
Brooks Davis <brooks@FreeBSD.org> |
Introduce kern_mmap_req().
This presents an extensible interface to the generic mmap(2) implementation via a struct pointer intended to use a designated initializer or compount literal. We take adv
Introduce kern_mmap_req().
This presents an extensible interface to the generic mmap(2) implementation via a struct pointer intended to use a designated initializer or compount literal. We take advantage of the mandatory zeroing of fields not listed in the initializer.
Remove kern_mmap_fpcheck() and use kern_mmap_req().
The motivation for this change is a desire to keep the core implementation from growing an ever-increasing number of arguments that must be specified in the correct order for the lowest-level implementations. In CheriBSD we have already added two more arguments.
Reviewed by: kib Discussed with: kevans Obtained from: CheriBSD Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D23164
show more ...
|
#
75dfc66c |
| 27-Feb-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r358269 through r358399.
|
#
acb8858f |
| 26-Feb-2020 |
Ed Maste <emaste@FreeBSD.org> |
Return ENOTSUP for mmap/mprotect if prot not subset of prot_max
From POSIX,
[ENOTSUP] The implementation does not support the combination of accesses requested in the prot argument.
This f
Return ENOTSUP for mmap/mprotect if prot not subset of prot_max
From POSIX,
[ENOTSUP] The implementation does not support the combination of accesses requested in the prot argument.
This fits the case that prot contains permissions which are not a subset of prot_max.
Reviewed by: brooks, cem Relnotes: Yes Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D23843
show more ...
|
#
dca7f66f |
| 15-Feb-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r357931 through r357965.
|
#
3379d2f9 |
| 15-Feb-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vm: use new capsicum helpers
|
#
23ed568c |
| 15-Feb-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vm: remove no longer needed atomic_load_ptr casts
|
#
a78eada5 |
| 01-Feb-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r357350 through r357367.
|
#
643656cf |
| 01-Feb-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: replace VOP_MARKATIME with VOP_MMAPPED
The routine is only provided by ufs and is only used on mmap and exec.
Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D23422
|
#
2180f6c6 |
| 05-Jan-2020 |
Kyle Evans <kevans@FreeBSD.org> |
kern_mmap: restore character deleted in transit
Pointy hat to: kevans X-MFC-With: r356359
|
#
18348a23 |
| 05-Jan-2020 |
Kyle Evans <kevans@FreeBSD.org> |
kern_mmap: add a variant that allows caller to inspect fp
Linux mmap rejects mmap() on a write-only file with EACCES. linux_mmap_common currently does a fun dance to grab the fp associated with the
kern_mmap: add a variant that allows caller to inspect fp
Linux mmap rejects mmap() on a write-only file with EACCES. linux_mmap_common currently does a fun dance to grab the fp associated with the passed in fd, validates it, then drops the reference and calls into kern_mmap(). Doing so is perhaps both fragile and premature; there's still plenty of chance for the request to get rejected with a more appropriate error, and it's prone to a race where the file we ultimately mmap has changed after it drops its referenced.
This change alleviates the need to do this by providing a kern_mmap variant that allows the caller to inspect the fp just before calling into the fileop layer. The callback takes flags, prot, and maxprot as one could imagine scenarios where any of these, in conjunction with the file itself, may influence a caller's decision.
The file type check in the linux compat layer has been removed; EINVAL is seemingly not an appropriate response to the file not being a vnode or device. The fileop layer will reject the operation with ENODEV if it's not supported, which more closely matches the common linux description of mmap(2) return values.
If we discover that we're allowing an mmap() on a file type that Linux normally wouldn't, we should restrict those explicitly.
Reviewed by: kib MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D22977
show more ...
|
#
5cff1f4d |
| 10-Dec-2019 |
Mark Johnston <markj@FreeBSD.org> |
Introduce vm_page_astate.
This is a 32-bit structure embedded in each vm_page, consisting mostly of page queue state. The use of a structure makes it easy to store a snapshot of a page's queue stat
Introduce vm_page_astate.
This is a 32-bit structure embedded in each vm_page, consisting mostly of page queue state. The use of a structure makes it easy to store a snapshot of a page's queue state in a stack variable and use cmpset loops to update that state without requiring the page lock.
This change merely adds the structure and updates references to atomic state fields. No functional change intended.
Reviewed by: alc, jeff, kib Sponsored by: Netflix, Intel Differential Revision: https://reviews.freebsd.org/D22650
show more ...
|
#
f2410510 |
| 29-Nov-2019 |
Jeff Roberson <jeff@FreeBSD.org> |
Avoid acquiring the object lock if color is already set. It can not be unset until the object is recycled so this check is stable. Now that we can acquire the ref without a lock it is not necessary
Avoid acquiring the object lock if color is already set. It can not be unset until the object is recycled so this check is stable. Now that we can acquire the ref without a lock it is not necessary to group these operations and we can avoid it entirely in many cases.
Reviewed by: kib, markj Differential Revision: https://reviews.freebsd.org/D22565
show more ...
|
#
7cdcf863 |
| 13-Nov-2019 |
Doug Moore <dougm@FreeBSD.org> |
Define wrapper functions vm_map_entry_{succ,pred} to act as wrappers around entry->{next,prev} when those are used for ordered list traversal, and use those wrapper functions everywhere. Where the ne
Define wrapper functions vm_map_entry_{succ,pred} to act as wrappers around entry->{next,prev} when those are used for ordered list traversal, and use those wrapper functions everywhere. Where the next field is used for maintaining a stack of deferred operations, #define defer_next to make that different usage clearer, and then use the 'right' pointer instead of 'next' for that purpose.
Approved by: markj Tested by: pho (as part of a larger patch) Differential Revision: https://reviews.freebsd.org/D22347
show more ...
|
Revision tags: release/12.1.0 |
|
#
01cef4ca |
| 17-Oct-2019 |
Mark Johnston <markj@FreeBSD.org> |
Remove page locking from pmap_mincore().
After r352110 the page lock no longer protects a page's identity, so there is no purpose in locking the page in pmap_mincore(). Instead, if vm.mincore_mappe
Remove page locking from pmap_mincore().
After r352110 the page lock no longer protects a page's identity, so there is no purpose in locking the page in pmap_mincore(). Instead, if vm.mincore_mapped is set to the non-default value of 0, re-lookup the page after acquiring its object lock, which holds the page's identity stable.
The change removes the last callers of vm_page_pa_tryrelock(), so remove it.
Reviewed by: kib Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D21823
show more ...
|
#
d0c9294b |
| 16-Oct-2019 |
Mark Johnston <markj@FreeBSD.org> |
Correct the range boundaries used by kern_mincore().
Reported by: alc Sponsored by: Netflix
|
#
0012f373 |
| 15-Oct-2019 |
Jeff Roberson <jeff@FreeBSD.org> |
(4/6) Protect page valid with the busy lock.
Atomics are used for page busy and valid state when the shared busy is held. The details of the locking protocol and valid and dirty synchronization are
(4/6) Protect page valid with the busy lock.
Atomics are used for page busy and valid state when the shared busy is held. The details of the locking protocol and valid and dirty synchronization are in the updated vm_page.h comments.
Reviewed by: kib, markj Tested by: pho Sponsored by: Netflix, Intel Differential Revision: https://reviews.freebsd.org/D21594
show more ...
|