#
ef9ffb85 |
| 25-Nov-2024 |
Mark Johnston <markj@FreeBSD.org> |
kern: Make fileops and filterops tables const where possible
No functional change intended.
MFC after: 1 week
|
#
bda73e44 |
| 07-Oct-2024 |
Konstantin Belousov <kib@FreeBSD.org> |
posix shm: add shm_get_path(9)
to calculate the posix shm path from the vm_object backing shm segment.
Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revisio
posix shm: add shm_get_path(9)
to calculate the posix shm path from the vm_object backing shm segment.
Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D46970
show more ...
|
Revision tags: release/13.4.0 |
|
#
b5c95c93 |
| 06-Aug-2024 |
Brooks Davis <brooks@FreeBSD.org> |
sys/mman.h: consistently use `#define<tab>`
There were 12 cases of `#define<space>` and 91 of `#define<tab>` and in some cases like msync() flags (MS_*) there wasn't consistency.
Reviewed by: imp D
sys/mman.h: consistently use `#define<tab>`
There were 12 cases of `#define<space>` and 91 of `#define<tab>` and in some cases like msync() flags (MS_*) there wasn't consistency.
Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D46233
show more ...
|
#
3e00c11a |
| 12-Jul-2024 |
Alan Cox <alc@FreeBSD.org> |
arm64: Support the L3 ATTR_CONTIGUOUS page size in pagesizes[]
Update pagesizes[] to include the L3 ATTR_CONTIGUOUS (L3C) page size, which is 64KB when the base page size is 4KB and 2MB when the bas
arm64: Support the L3 ATTR_CONTIGUOUS page size in pagesizes[]
Update pagesizes[] to include the L3 ATTR_CONTIGUOUS (L3C) page size, which is 64KB when the base page size is 4KB and 2MB when the base page size is 16KB.
Add support for L3C pages to shm_create_largepage().
Add support for creating L3C page mappings to pmap_enter(psind=1).
Add support for reporting L3C page mappings to mincore(2) and procstat(8).
Update vm_fault_soft_fast() and vm_fault_populate() to handle multiple superpage sizes.
Declare arm64 as supporting two superpage reservation sizes, and simulate two superpage reservation sizes, updating the vm_page's psind field to reflect the correct page size from pagesizes[]. (The next patch in this series will replace this simulation. This patch is already big enough.)
Co-authored-by: Eliot Solomon <ehs3@rice.edu> Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D45766
show more ...
|
Revision tags: release/14.1.0, release/13.3.0 |
|
#
29363fb4 |
| 23-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove ancient SCCS tags.
Remove ancient SCCS tags from the tree, automated scripting, with two minor fixup to keep things compiling. All the common forms in the tree were removed with a perl s
sys: Remove ancient SCCS tags.
Remove ancient SCCS tags from the tree, automated scripting, with two minor fixup to keep things compiling. All the common forms in the tree were removed with a perl script.
Sponsored by: Netflix
show more ...
|
Revision tags: release/14.0.0 |
|
#
2ff63af9 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .h pattern
Remove /^\s*\*+\s*\$FreeBSD\$.*$\n/
|
#
f3e11927 |
| 14-Aug-2023 |
Dmitry Chagin <dchagin@FreeBSD.org> |
vm: Allow MAP_32BIT for all architectures
Reviewed by: alc, kib, markj Differential revision: https://reviews.freebsd.org/D41435
|
Revision tags: release/13.2.0, release/12.4.0 |
|
#
0919f29d |
| 23-Nov-2022 |
Konstantin Belousov <kib@FreeBSD.org> |
shmfd: account for the actually allocated pages
Return the value as stat(2) st_blocks.
Suggested and reviewed by: markj (previous version) Tested by: pho Sponsored by: The FreeBSD Foundation MFC af
shmfd: account for the actually allocated pages
Return the value as stat(2) st_blocks.
Suggested and reviewed by: markj (previous version) Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D37097
show more ...
|
#
7060da62 |
| 29-Jun-2022 |
Jamie Gritton <jamie@FreeBSD.org> |
jail: Remove a prison's shared memory when it dies
Add shm_remove_prison(), that removes all POSIX shared memory segments belonging to a prison. Call it from prison_cleanup() so a prison won't be s
jail: Remove a prison's shared memory when it dies
Add shm_remove_prison(), that removes all POSIX shared memory segments belonging to a prison. Call it from prison_cleanup() so a prison won't be stuck in a dying state due to the resources still held.
PR: 257555 Reported by: grembo
show more ...
|
Revision tags: release/13.1.0, release/12.3.0, release/13.0.0, release/12.2.0 |
|
#
d301b358 |
| 10-Sep-2020 |
Konstantin Belousov <kib@FreeBSD.org> |
Support for userspace non-transparent superpages (largepages).
Created with shm_open2(SHM_LARGEPAGE) and then configured with FIOSSHMLPGCNF ioctl, largepages posix shared memory objects guarantee th
Support for userspace non-transparent superpages (largepages).
Created with shm_open2(SHM_LARGEPAGE) and then configured with FIOSSHMLPGCNF ioctl, largepages posix shared memory objects guarantee that all userspace mappings of it are served by superpage non-managed mappings.
Only amd64 for now, both 2M and 1G superpages can be requested, the later requires CPU feature.
Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D24652
show more ...
|
#
60cd9c95 |
| 09-Sep-2020 |
Konstantin Belousov <kib@FreeBSD.org> |
Move MAP_32BIT_MAX_ADDR definition to sys/mman.h.
Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D24652
|
#
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 ...
|
#
3f07b9d9 |
| 10-Jul-2020 |
Kyle Evans <kevans@FreeBSD.org> |
shm_open2: Implement SHM_GROW_ON_WRITE
Lack of SHM_GROW_ON_WRITE is actively breaking Python's memfd_create tests, so go ahead and implement it. A future change will make memfd_create always set SHM
shm_open2: Implement SHM_GROW_ON_WRITE
Lack of SHM_GROW_ON_WRITE is actively breaking Python's memfd_create tests, so go ahead and implement it. A future change will make memfd_create always set SHM_GROW_ON_WRITE, to match Linux behavior and unbreak Python's tests on -CURRENT.
Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D25502
show more ...
|
#
50030f95 |
| 10-Jul-2020 |
Kyle Evans <kevans@FreeBSD.org> |
shmfd: make shm_size a vm_ooffset_t
On 32-bit platforms, this expands the shm_size to a 64-bit quantity and resolves a mismatch between the shmfd size and underlying vm_object size. The implementati
shmfd: make shm_size a vm_ooffset_t
On 32-bit platforms, this expands the shm_size to a 64-bit quantity and resolves a mismatch between the shmfd size and underlying vm_object size. The implementation did not account for this kind of mismatch.
Reviewed by: kib MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D25602
show more ...
|
Revision tags: release/11.4.0 |
|
#
2d5603fe |
| 18-Nov-2019 |
David Bright <dab@FreeBSD.org> |
Jail and capability mode for shm_rename; add audit support for shm_rename
Co-mingling two things here:
* Addressing some feedback from Konstantin and Kyle re: jail, capability mode, and a few
Jail and capability mode for shm_rename; add audit support for shm_rename
Co-mingling two things here:
* Addressing some feedback from Konstantin and Kyle re: jail, capability mode, and a few other things * Adding audit support as promised.
The audit support change includes a partial refresh of OpenBSM from upstream, where the change to add shm_rename has already been accepted. Matthew doesn't plan to work on refreshing anything else to support audit for those new event types.
Submitted by: Matthew Bryan <matthew.bryan@isilon.com> Reviewed by: kib Relnotes: Yes Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D22083
show more ...
|
Revision tags: release/12.1.0 |
|
#
8b3bc70a |
| 08-Oct-2019 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r352764 through r353315.
|
#
9a929214 |
| 29-Sep-2019 |
Kyle Evans <kevans@FreeBSD.org> |
MFD_*: swap ordering
This API is still young enough that I would expect no one to be dependant on this yet... Swap the ordering while it's young to match Linux values to potentially ease implementat
MFD_*: swap ordering
This API is still young enough that I would expect no one to be dependant on this yet... Swap the ordering while it's young to match Linux values to potentially ease implementation of linuxolator syscall, being able to reuse existing constants.
show more ...
|
#
668ee101 |
| 26-Sep-2019 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r352587 through r352763.
|
#
9afb12ba |
| 26-Sep-2019 |
David Bright <dab@FreeBSD.org> |
Add an shm_rename syscall
Add an atomic shm rename operation, similar in spirit to a file rename. Atomically unlink an shm from a source path and link it to a destination path. If an existing shm is
Add an shm_rename syscall
Add an atomic shm rename operation, similar in spirit to a file rename. Atomically unlink an shm from a source path and link it to a destination path. If an existing shm is linked at the destination path, unlink it as part of the same atomic operation. The caller needs the same permissions as shm_unlink to the shm being renamed, and the same permissions for the shm at the destination which is being unlinked, if it exists. If those fail, EACCES is returned, as with the other shm_* syscalls.
truss support is included; audit support will come later.
This commit includes only the implementation; the sysent-generated bits will come in a follow-on commit.
Submitted by: Matthew Bryan <matthew.bryan@isilon.com> Reviewed by: jilles (earlier revision) Reviewed by: brueffer (manpages, earlier revision) Relnotes: yes Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D21423
show more ...
|
#
3e25d1fb |
| 25-Sep-2019 |
Kyle Evans <kevans@FreeBSD.org> |
Add linux-compatible memfd_create
memfd_create is effectively a SHM_ANON shm_open(2) mapping with optional CLOEXEC and file sealing support. This is used by some mesa parts, some linux libs, and qem
Add linux-compatible memfd_create
memfd_create is effectively a SHM_ANON shm_open(2) mapping with optional CLOEXEC and file sealing support. This is used by some mesa parts, some linux libs, and qemu can also take advantage of it and uses the sealing to prevent resizing the region.
This reimplements shm_open in terms of shm_open2(2) at the same time.
shm_open(2) will be moved to COMPAT12 shortly.
Reviewed by: markj, kib Differential Revision: https://reviews.freebsd.org/D21393
show more ...
|
#
20f70576 |
| 25-Sep-2019 |
Kyle Evans <kevans@FreeBSD.org> |
Add a shm_open2 syscall to support upcoming memfd_create
shm_open2 allows a little more flexibility than the original shm_open. shm_open2 doesn't enforce CLOEXEC on its callers, and it has a separat
Add a shm_open2 syscall to support upcoming memfd_create
shm_open2 allows a little more flexibility than the original shm_open. shm_open2 doesn't enforce CLOEXEC on its callers, and it has a separate shmflag argument that can be expanded later. Currently the only shmflag is to allow file sealing on the returned fd.
shm_open and memfd_create will both be implemented in libc to use this new syscall.
__FreeBSD_version is bumped to indicate the presence.
Reviewed by: kib, markj Differential Revision: https://reviews.freebsd.org/D21393
show more ...
|
#
af755d3e |
| 25-Sep-2019 |
Kyle Evans <kevans@FreeBSD.org> |
[1/3] Add mostly Linux-compatible file sealing support
File sealing applies protections against certain actions (currently: write, growth, shrink) at the inode level. New fileops are added to accomm
[1/3] Add mostly Linux-compatible file sealing support
File sealing applies protections against certain actions (currently: write, growth, shrink) at the inode level. New fileops are added to accommodate seals - EINVAL is returned by fcntl(2) if they are not implemented.
Reviewed by: markj, kib Differential Revision: https://reviews.freebsd.org/D21391
show more ...
|
Revision tags: release/11.3.0 |
|
#
7f49ce7a |
| 28-Jun-2019 |
Alan Somers <asomers@FreeBSD.org> |
MFHead @349476
Sponsored by: The FreeBSD Foundation
|
#
74a1b66c |
| 20-Jun-2019 |
Brooks Davis <brooks@FreeBSD.org> |
Extend mmap/mprotect API to specify the max page protections.
A new macro PROT_MAX() alters a protection value so it can be OR'd with a regular protection value to specify the maximum permissions.
Extend mmap/mprotect API to specify the max page protections.
A new macro PROT_MAX() alters a protection value so it can be OR'd with a regular protection value to specify the maximum permissions. If present, these flags specify the maximum permissions.
While these flags are non-portable, they can be used in portable code with simple ifdefs to expand PROT_MAX() to 0.
This change allows (e.g.) a region that must be writable during run-time linking or JIT code generation to be made permanently read+execute after writes are complete. This complements W^X protections allowing more precise control by the programmer.
This change alters mprotect argument checking and returns an error when unhandled protection flags are set. This differs from POSIX (in that POSIX only specifies an error), but is the documented behavior on Linux and more closely matches historical mmap behavior.
In addition to explicit setting of the maximum permissions, an experimental sysctl vm.imply_prot_max causes mmap to assume that the initial permissions requested should be the maximum when the sysctl is set to 1. PROT_NONE mappings are excluded from this for compatibility with rtld and other consumers that use such mappings to reserve address space before mapping contents into part of the reservation. A final version this is expected to provide per-binary and per-process opt-in/out options and this sysctl will go away in its current form. As such it is undocumented.
Reviewed by: emaste, kib (prior version), markj Additional suggestions from: alc Obtained from: CheriBSD Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D18880
show more ...
|
Revision tags: release/12.0.0, release/11.2.0 |
|
#
82725ba9 |
| 23-Nov-2017 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Merge ^/head r325999 through r326131.
|