#
c84c5e00 |
| 18-Jul-2022 |
Mitchell Horne <mhorne@FreeBSD.org> |
ddb: annotate some commands with DB_CMD_MEMSAFE
This is not completely exhaustive, but covers a large majority of commands in the tree.
Reviewed by: markj Sponsored by: Juniper Networks, Inc. Spons
ddb: annotate some commands with DB_CMD_MEMSAFE
This is not completely exhaustive, but covers a large majority of commands in the tree.
Reviewed by: markj Sponsored by: Juniper Networks, Inc. Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D35583
show more ...
|
Revision tags: release/13.1.0 |
|
#
939f0b63 |
| 10-May-2022 |
Kornel Dulęba <kd@FreeBSD.org> |
Implement shared page address randomization
It used to be mapped at the top of the UVA. If the randomization is enabled any address above .data section will be randomly chosen and a guard page will
Implement shared page address randomization
It used to be mapped at the top of the UVA. If the randomization is enabled any address above .data section will be randomly chosen and a guard page will be inserted in the shared page default location. The shared page is now mapped in exec_map_stack, instead of exec_new_vmspace. The latter function is called before image activator has a chance to parse ASLR related flags. The KERN_PROC_VM_LAYOUT sysctl was extended to provide shared page address. The feature is enabled by default for 64 bit applications on all architectures. It can be toggled kern.elf64.aslr.shared_page sysctl.
Approved by: mw(mentor) Sponsored by: Stormshield Obtained from: Semihalf Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D35349
show more ...
|
#
361971fb |
| 02-Jun-2022 |
Kornel Dulęba <kd@FreeBSD.org> |
Rework how shared page related data is stored
Store the shared page address in struct vmspace. Also instead of storing absolute addresses of various shared page segments save their offsets with resp
Rework how shared page related data is stored
Store the shared page address in struct vmspace. Also instead of storing absolute addresses of various shared page segments save their offsets with respect to the shared page address. This will be more useful when the shared page address is randomized.
Approved by: mw(mentor) Sponsored by: Stormshield Obtained from: Semihalf Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D35393
show more ...
|
#
f6ac79fb |
| 02-Jun-2022 |
Kornel Dulęba <kd@FreeBSD.org> |
Introduce the PROC_SIGCODE() macro
Use a getter macro instead of fetching the sigcode address directly from a sysent of a given process. It assumes that the sigcode is stored in the shared page, whi
Introduce the PROC_SIGCODE() macro
Use a getter macro instead of fetching the sigcode address directly from a sysent of a given process. It assumes that the sigcode is stored in the shared page, which is true in all cases, except for a.out binaries. This will be later useful when the shared page address randomization is introduced. No functional change intended.
Approved by: mw(mentor) Sponsored by: Stormshield Obtained from: Semihalf Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D35392
show more ...
|
#
008b2e65 |
| 01-May-2022 |
Konstantin Belousov <kib@FreeBSD.org> |
Make stop_all_proc_block interruptible to avoid deadlock with parallel suspension
If we try to single-thread a process which thread entered procctl(REAP_KILL_SUBTREE), and sleeping waiting for us un
Make stop_all_proc_block interruptible to avoid deadlock with parallel suspension
If we try to single-thread a process which thread entered procctl(REAP_KILL_SUBTREE), and sleeping waiting for us unlocking stop_all_proc_blocker, we must be able to finish single-threading. This requires the sleep to be interruptible.
Reported and tested by: pho Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D35310
show more ...
|
#
d3000939 |
| 05-May-2022 |
Konstantin Belousov <kib@FreeBSD.org> |
P2_WEXIT: avoid thread_single() for exiting process earlier
before the process itself does thread_single(SINGLE_EXIT). We cannot single-thread such process in ALLPROC (external) mode, and properly
P2_WEXIT: avoid thread_single() for exiting process earlier
before the process itself does thread_single(SINGLE_EXIT). We cannot single-thread such process in ALLPROC (external) mode, and properly detect and report the failure to do so due to the process becoming zombie is easier to prevent than handle.
In collaboration with: pho Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D35310
show more ...
|
#
2e7595ef |
| 24-Apr-2022 |
Konstantin Belousov <kib@FreeBSD.org> |
Add stop_all_proc_block(9)
It allows to have more than one consumer of thread_signle(SIGNLE_ALLPROC) by serializing them.
Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC
Add stop_all_proc_block(9)
It allows to have more than one consumer of thread_signle(SIGNLE_ALLPROC) by serializing them.
Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D35014
show more ...
|
#
bb92cd7b |
| 24-Mar-2022 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: NDFREE(&nd, NDF_ONLY_PNBUF) -> NDFREE_PNBUF(&nd)
|
#
3ce04aca |
| 17-Jan-2022 |
Mark Johnston <markj@FreeBSD.org> |
proc: Add a sysctl to fetch virtual address space layout info
This provides information about fixed regions of the target process' user memory map.
Reviewed by: kib MFC after: 1 month Sponsored by:
proc: Add a sysctl to fetch virtual address space layout info
This provides information about fixed regions of the target process' user memory map.
Reviewed by: kib MFC after: 1 month Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D33708
show more ...
|
#
706f4a81 |
| 17-Jan-2022 |
Mark Johnston <markj@FreeBSD.org> |
exec: Introduce the PROC_PS_STRINGS() macro
Rather than fetching the ps_strings address directly from a process' sysentvec, use this macro. With stack address randomization the ps_strings address i
exec: Introduce the PROC_PS_STRINGS() macro
Rather than fetching the ps_strings address directly from a process' sysentvec, use this macro. With stack address randomization the ps_strings address is no longer fixed.
Reviewed by: kib MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D33704
show more ...
|
Revision tags: release/12.3.0 |
|
#
ab4524b3 |
| 05-Nov-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
amd64: wrap 64bit sigtramp into vdso
Reviewed by: emaste Discussed with: jrtc27 Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 month Differential revision: https://reviews.freebsd.
amd64: wrap 64bit sigtramp into vdso
Reviewed by: emaste Discussed with: jrtc27 Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 month Differential revision: https://reviews.freebsd.org/D32960
show more ...
|
#
7e1d3eef |
| 25-Nov-2021 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: remove the unused thread argument from NDINIT*
See b4a58fbf640409a1 ("vfs: remove cn_thread")
Bump __FreeBSD_version to 1400043.
|
#
7ac82c96 |
| 04-Nov-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
proc_get_binpath(): provide syntaxically correct value for unused NDINIT arg
Sponsored by: The FreeBSD Foundation MFC after: 3 days
|
#
02de91d7 |
| 03-Nov-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
proc_get_binpath(): return empty string instead of NULL
for strange case where queried process does not have text.
Reported by: Michael Butler <imb@protected-networks.net> Sponsored by: The FreeBSD
proc_get_binpath(): return empty string instead of NULL
for strange case where queried process does not have text.
Reported by: Michael Butler <imb@protected-networks.net> Sponsored by: The FreeBSD Foundation MFC after: 3 days
show more ...
|
#
f34fc6ba |
| 29-Oct-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
Extract proc_get_binpath() from sysctl_kern_proc_pathname()
Reviewed by: emaste, markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D32738
|
#
ee92c8a8 |
| 23-Oct-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
sysctl kern.proc.procname: report right hardlink name
PR: 248184 Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freeb
sysctl kern.proc.procname: report right hardlink name
PR: 248184 Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D32611
show more ...
|
#
4ccaa87f |
| 11-Aug-2021 |
Mitchell Horne <mhorne@FreeBSD.org> |
kdb: Handle process enumeration before procinit()
Make kdb_thr_first() and kdb_thr_next() return sane values if the allproc list and pidhashtbl haven't been initialized yet. This can happen if the d
kdb: Handle process enumeration before procinit()
Make kdb_thr_first() and kdb_thr_next() return sane values if the allproc list and pidhashtbl haven't been initialized yet. This can happen if the debugger is entered very early on, for example with the '-d' boot flag.
This allows remote gdb to attach at such a time, and fixes some ddb commands like 'show threads'.
Be explicit about the static initialization of these variables. This part has no functional change.
Reviewed by: markj, imp (previous version) MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D31495
show more ...
|
#
0dcef81d |
| 23-Jul-2021 |
Mark Johnston <markj@FreeBSD.org> |
Add required sysctl name length checks to various handlers
Reported by: KMSAN MFC after: 1 week Sponsored by: The FreeBSD Foundation
|
#
1762f674 |
| 15-May-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
ktrace: pack all ktrace parameters into allocated structure ktr_io_params
Ref-count the ktr_io_params structure instead of vnode/cred.
Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Fo
ktrace: pack all ktrace parameters into allocated structure ktr_io_params
Ref-count the ktr_io_params structure instead of vnode/cred.
Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D30257
show more ...
|
#
ecfbddf0 |
| 15-Apr-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
sysctl vm.objects: report backing object and swap use
For anonymous objects, provide a handle kvo_me naming the object, and report the handle of the backing object. This allows userspace to deconst
sysctl vm.objects: report backing object and swap use
For anonymous objects, provide a handle kvo_me naming the object, and report the handle of the backing object. This allows userspace to deconstruct the shadow chain. Right now the handle is the address of the object in KVA, but this is not guaranteed.
For the same anonymous objects, report the swap space used for actually swapped out pages, in kvo_swapped field. I do not believe that it is useful to report full 64bit counter there, so only uint32_t value is returned, clamped to the max.
For kinfo_vmentry, report anonymous object handle backing the entry, so that the shadow chain for the specific mapping can be deconstructed.
Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D29771
show more ...
|
Revision tags: release/13.0.0 |
|
#
d7671ad8 |
| 25-Feb-2021 |
Ryan Libby <rlibby@FreeBSD.org> |
Close races in vm object chain traversal for unlock
We were unlocking the vm object before reading the backing_object field. In the meantime, the object could be freed and reused. This could cause
Close races in vm object chain traversal for unlock
We were unlocking the vm object before reading the backing_object field. In the meantime, the object could be freed and reused. This could cause us to go off the rails in the object chain traversal, failing to unlock the rest of the objects in the original chain and corrupting the lock state of the victim chain.
Reviewed by: bdrewery, kib, markj, vangyzen MFC after: 3 days Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D28926
show more ...
|
#
25c6318c |
| 14-Feb-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
procstat: distinguish vm map guards in procstat vm output.
Requested and reviewed by: rwatson (previous version) Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential Revision: https:/
procstat: distinguish vm map guards in procstat vm output.
Requested and reviewed by: rwatson (previous version) Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D28658
show more ...
|
#
edc374e7 |
| 02-Feb-2021 |
Ed Maste <emaste@FreeBSD.org> |
Correct description for kern.proc.proc_td
kern.proc.proc_td returns the process table with an entry for each thread. Previously the description included "no threads", presumably a cut-and-pasteo in
Correct description for kern.proc.proc_td
kern.proc.proc_td returns the process table with an entry for each thread. Previously the description included "no threads", presumably a cut-and-pasteo in 2648efa621748.
Description suggested by PauAmma.
PR: 253146 MFC after: 3 days Sponsored by: The FreeBSD Foundation
show more ...
|
#
fe258f23 |
| 16-Jan-2021 |
Mateusz Guzik <mjg@FreeBSD.org> |
Save on getpid in setproctitle by supporting -1 as curproc.
|
#
5844bd05 |
| 29-Dec-2020 |
Konstantin Belousov <kib@FreeBSD.org> |
jobc: rework detection of orphaned groups.
Instead of trying to maintain pg_jobc counter on each process group update (and sometimes before), just calculate the counter when needed. Still, for the b
jobc: rework detection of orphaned groups.
Instead of trying to maintain pg_jobc counter on each process group update (and sometimes before), just calculate the counter when needed. Still, for the benefit of the signal delivery code, explicitly mark orphaned groups as such with the new process group flag.
This way we prevent bugs in the corner cases where updates to the counter were missed due to complicated configuration of p_pptr/p_opptr/real_parent (debugger).
Since we need to iterate over all children of the process on exit, this change mostly affects the process group entry and leave, where we need to iterate all process group members to detect orpaned status.
(For MFC, keep pg_jobc around but unused).
Reported by: jhb Reviewed by: jilles Tested by: pho MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D27871
show more ...
|