Revision tags: release/12.2.0 |
|
#
1e2521ff |
| 27-Sep-2020 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
Get rid of sa->narg. It serves no purpose; use sa->callp->sy_narg instead.
Reviewed by: kib Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D26458
|
#
440cec3f |
| 12-Aug-2020 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: Rubicon Communications, LLC (netgate.com)
|
#
e383ec74 |
| 06-Aug-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r363739 through r363986.
|
#
936c24fa |
| 01-Aug-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
cred: add more asserts for td_realucred == td_ucred
|
#
c7aa572c |
| 31-Jul-2020 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: Rubicon Communications, LLC (netgate.com)
|
#
7cd4443f |
| 18-Jul-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
Short-circuit tdfind when looking for the calling thread.
Common occurence with cpuset and other places.
|
Revision tags: release/11.4.0 |
|
#
1724c563 |
| 10-Jun-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
cred: distribute reference count per thread
This avoids dirtying creds in the common case, see the comment in kern_prot.c for details.
Reviewed by: kib Differential Revision: https://reviews.freebs
cred: distribute reference count per thread
This avoids dirtying creds in the common case, see the comment in kern_prot.c for details.
Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D24007
show more ...
|
#
4ee964d6 |
| 27-Apr-2020 |
Mark Johnston <markj@FreeBSD.org> |
Fix up i386 thread structure layout assertions after r360354.
Reported by: Jenkins
|
#
f13fa9df |
| 26-Apr-2020 |
Mark Johnston <markj@FreeBSD.org> |
Use a single VM object for kernel stacks.
Previously we allocated a separate VM object for each kernel stack. However, fully constructed kernel stacks are cached by UMA, so there is no harm in using
Use a single VM object for kernel stacks.
Previously we allocated a separate VM object for each kernel stack. However, fully constructed kernel stacks are cached by UMA, so there is no harm in using a single global object for all stacks. This reduces memory consumption and makes it easier to define a memory allocation policy for kernel stack pages, with the aim of reducing physical memory fragmentation.
Add a global kstack_object, and use the stack KVA address to index into the object like we do with kernel_object.
Reviewed by: kib Tested by: pho Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D24473
show more ...
|
#
8de97f39 |
| 09-Apr-2020 |
Rick Macklem <rmacklem@FreeBSD.org> |
Remove the old NFS lock device driver that uses Giant.
This NFS lock device driver was replaced by the kernel NLM around FreeBSD7 and has not normally been used since then. To use it, the kernel had
Remove the old NFS lock device driver that uses Giant.
This NFS lock device driver was replaced by the kernel NLM around FreeBSD7 and has not normally been used since then. To use it, the kernel had to be built without "options NFSLOCKD" and the nfslockd.ko had to be deleted as well. Since it uses Giant and is no longer used, this patch removes it.
With this device driver removed, there is now a lot of unused code in the userland rpc.lockd. That will be removed on a future commit.
Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D22933
show more ...
|
#
59838c1a |
| 01-Apr-2020 |
John Baldwin <jhb@FreeBSD.org> |
Retire procfs-based process debugging.
Modern debuggers and process tracers use ptrace() rather than procfs for debugging. ptrace() has a supserset of functionality available via procfs and new deb
Retire procfs-based process debugging.
Modern debuggers and process tracers use ptrace() rather than procfs for debugging. ptrace() has a supserset of functionality available via procfs and new debugging features are only added to ptrace(). While the two debugging services share some fields in struct proc, they each use dedicated fields and separate code. This results in extra complexity to support a feature that hasn't been enabled in the default install for several years.
PR: 244939 (exp-run) Reviewed by: kib, mjg (earlier version) Relnotes: yes Differential Revision: https://reviews.freebsd.org/D23837
show more ...
|
#
e43d33d2 |
| 05-Mar-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r358466 through r358677.
|
#
5aa5420f |
| 29-Feb-2020 |
Mark Johnston <markj@FreeBSD.org> |
Ensure that arm64 thread structures are allocated from the direct map.
Otherwise we can fail to handle translation faults on curthread, leading to a panic.
Reviewed by: alc, rlibby Sponsored by: Th
Ensure that arm64 thread structures are allocated from the direct map.
Otherwise we can fail to handle translation faults on curthread, leading to a panic.
Reviewed by: alc, rlibby Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D23895
show more ...
|
#
5d25f943 |
| 23-Feb-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r358239 through r358262.
|
#
04869b81 |
| 22-Feb-2020 |
Konstantin Belousov <kib@FreeBSD.org> |
Add td_pflags2, yet another thread-private flags word.
There is no more free bits in td_pflags.
Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week
|
#
44e86fbd |
| 13-Feb-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r357662 through r357854.
|
#
146fc63f |
| 09-Feb-2020 |
Konstantin Belousov <kib@FreeBSD.org> |
Add a way to manage thread signal mask using shared word, instead of syscall.
A new syscall sigfastblock(2) is added which registers a uint32_t variable as containing the count of blocks for signal
Add a way to manage thread signal mask using shared word, instead of syscall.
A new syscall sigfastblock(2) is added which registers a uint32_t variable as containing the count of blocks for signal delivery. Its content is read by kernel on each syscall entry and on AST processing, non-zero count of blocks is interpreted same as the signal mask blocking all signals.
The biggest downside of the feature that I see is that memory corruption that affects the registered fast sigblock location, would cause quite strange application misbehavior. For instance, the process would be immune to ^C (but killable by SIGKILL).
With consumers (rtld and libthr added), benchmarks do not show a slow-down of the syscalls in micro-measurements, and macro benchmarks like buildworld do not demonstrate a difference. Part of the reason is that buildworld time is dominated by compiler, and clang already links to libthr. On the other hand, small utilities typically used by shell scripts have the total number of syscalls cut by half.
The syscall is not exported from the stable libc version namespace on purpose. It is intended to be used only by our C runtime implementation internals.
Tested by: pho Disscussed with: cem, emaste, jilles Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D12773
show more ...
|
#
300b525d |
| 08-Feb-2020 |
Konstantin Belousov <kib@FreeBSD.org> |
Correct the function name in the comment.
Sponsored by: The FreeBSD Foundation MFC after: 3 days
|
#
b52d50cf |
| 11-Jan-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: prealloc vnodes in getnewvnode_reserve
Having a reserved vnode count does not guarantee that getnewvnodes wont block later. Said blocking partially defeats the purpose of reserving in the first
vfs: prealloc vnodes in getnewvnode_reserve
Having a reserved vnode count does not guarantee that getnewvnodes wont block later. Said blocking partially defeats the purpose of reserving in the first place.
Preallocate instaed. The only consumer was always passing "1" as count and never nesting reservations.
show more ...
|
#
478ca4b0 |
| 02-Jan-2020 |
Konstantin Belousov <kib@FreeBSD.org> |
Rename umtxq_check_susp() to thread_check_susp()
and make it usable outside of kern_umtx.c. To be used in several future changes.
Discussed with: markj Sponsored by: The FreeBSD Foundation MFC aft
Rename umtxq_check_susp() to thread_check_susp()
and make it usable outside of kern_umtx.c. To be used in several future changes.
Discussed with: markj Sponsored by: The FreeBSD Foundation MFC after: 1 week
show more ...
|
#
686bcb5c |
| 15-Dec-2019 |
Jeff Roberson <jeff@FreeBSD.org> |
schedlock 4/4
Don't hold the scheduler lock while doing context switches. Instead we unlock after selecting the new thread and switch within a spinlock section leaving interrupts and preemption dis
schedlock 4/4
Don't hold the scheduler lock while doing context switches. Instead we unlock after selecting the new thread and switch within a spinlock section leaving interrupts and preemption disabled to prevent local concurrency. This means that mi_switch() is entered with the thread locked but returns without. This dramatically simplifies scheduler locking because we will not hold the schedlock while spinning on blocked lock in switch.
This change has not been made to 4BSD but in principle it would be more straightforward.
Discussed with: markj Reviewed by: kib Tested by: pho Differential Revision: https://reviews.freebsd.org/D22778
show more ...
|
#
61a74c5c |
| 15-Dec-2019 |
Jeff Roberson <jeff@FreeBSD.org> |
schedlock 1/4
Eliminate recursion from most thread_lock consumers. Return from sched_add() without the thread_lock held. This eliminates unnecessary atomics and lock word loads as well as reducing
schedlock 1/4
Eliminate recursion from most thread_lock consumers. Return from sched_add() without the thread_lock held. This eliminates unnecessary atomics and lock word loads as well as reducing the hold time for scheduler locks. This will eventually allow for lockless remote adds.
Discussed with: kib Reviewed by: jhb Tested by: pho Differential Revision: https://reviews.freebsd.org/D22626
show more ...
|
Revision tags: release/12.1.0 |
|
#
5e921ff4 |
| 25-Oct-2019 |
Konstantin Belousov <kib@FreeBSD.org> |
amd64: move pcb out of kstack to struct thread.
This saves 320 bytes of the precious stack space.
The only negative aspect of the change I can think of is that the struct thread increased by 320 by
amd64: move pcb out of kstack to struct thread.
This saves 320 bytes of the precious stack space.
The only negative aspect of the change I can think of is that the struct thread increased by 320 bytes obviously, and that 320 bytes are not swapped out anymore. I believe the freed stack space is much more important than that. Also, current struct thread size is 1392 bytes on amd64, so UMA will allocate two thread structures per (4KB) slab, which leaves a space for pcb without increasing zone memory use.
Reviewed by: alc, markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D22138
show more ...
|
#
279b9aab |
| 21-Oct-2019 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Remove epoch tracker from struct thread. It was an ugly crutch to emulate locking semantics for if_addr_rlock() and if_maddr_rlock().
|
#
f6eccf96 |
| 14-Oct-2019 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Since EPOCH_TRACE had been moved to opt_global.h, we don't need to waste extra space in struct thread.
|