#
a52a51a2 |
| 13-Mar-2025 |
John Baldwin <jhb@FreeBSD.org> |
lockmgr/rmlock/rwlock/sx: Make various assertions more robust
Print pointers to locks instead of their names to avoid a nested panic if the lock object is corrupted.
Reviewed by: markj Sponsored by
lockmgr/rmlock/rwlock/sx: Make various assertions more robust
Print pointers to locks instead of their names to avoid a nested panic if the lock object is corrupted.
Reviewed by: markj Sponsored by: AFRL, DARPA Differential Revision: https://reviews.freebsd.org/D49331
show more ...
|
Revision tags: release/13.5.0, release/14.2.0-p2, release/14.1.0-p8, release/13.4.0-p4, release/14.1.0-p7, release/14.2.0-p1, release/13.4.0-p3, release/14.2.0, release/13.4.0 |
|
#
01518f5e |
| 29-Jul-2024 |
Mark Johnston <markj@FreeBSD.org> |
sleepqueue: Remove kernel stack swapping support, part 10
- Remove kick_proc0(). - Make the return type of sleepq_broadcast(), sleepq_signal(), etc., void. - Fix up callers.
Tested by: pho Review
sleepqueue: Remove kernel stack swapping support, part 10
- Remove kick_proc0(). - Make the return type of sleepq_broadcast(), sleepq_signal(), etc., void. - Fix up callers.
Tested by: pho Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D46128
show more ...
|
#
3c84b4b3 |
| 24-Jun-2024 |
Ryan Libby <rlibby@FreeBSD.org> |
kern: move __always_inline to canonical position
Ahead of including inline in __always_inline, move __always_inline to where inline goes.
Reviewed by: kib, olce Sponsored by: Dell EMC Isilon Differ
kern: move __always_inline to canonical position
Ahead of including inline in __always_inline, move __always_inline to where inline goes.
Reviewed by: kib, olce Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D45708
show more ...
|
Revision tags: release/14.1.0 |
|
#
b92cd6b2 |
| 21-May-2024 |
Ryan Libby <rlibby@FreeBSD.org> |
lockmgr: make lockmgr_disowned public and use it
Reviewed by: mckusick, kib, markj Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D45248
|
Revision tags: release/13.3.0 |
|
#
fdafd315 |
| 24-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Automated cleanup of cdefs and other formatting
Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row.
Remov
sys: Automated cleanup of cdefs and other formatting
Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row.
Remove /^#if.*\n#endif.*\n#include\s+<sys/cdefs.h>.*\n/ Remove /\n+#include\s+<sys/cdefs.h>.*\n+#if.*\n#endif.*\n+/ Remove /\n+#if.*\n#endif.*\n+/ Remove /^#if.*\n#endif.*\n/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/types.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/param.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/capsicum.h>/
Sponsored by: Netflix
show more ...
|
Revision tags: release/14.0.0 |
|
#
685dc743 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
4d846d26 |
| 10-May-2023 |
Warner Losh <imp@FreeBSD.org> |
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD
The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD
The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of BSD-2-Clause.
Discussed with: pfg MFC After: 3 days Sponsored by: Netflix
show more ...
|
Revision tags: release/13.2.0 |
|
#
9a7f7c26 |
| 22-Feb-2023 |
Mitchell Horne <mhorne@FreeBSD.org> |
lockmgr: upgrade panic return checks
We short-circuit lockmgr functions in the face of a kernel panic. Other lock implementations do this with a SCHEDULER_STOPPED() check, which covers the additiona
lockmgr: upgrade panic return checks
We short-circuit lockmgr functions in the face of a kernel panic. Other lock implementations do this with a SCHEDULER_STOPPED() check, which covers the additional case where the debugger is active but the system has not panicked. Update this code to match that behaviour.
Reviewed by: mjg, kib, markj MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D38655
show more ...
|
Revision tags: release/12.4.0, release/13.1.0, release/12.3.0 |
|
#
f902e4bb |
| 11-Sep-2021 |
Mateusz Guzik <mjg@FreeBSD.org> |
lockmgr: fix lock profiling of face adaptive spinning
|
#
6a467cc5 |
| 23-May-2021 |
Mateusz Guzik <mjg@FreeBSD.org> |
lockprof: pass lock type as an argument instead of reading the spin flag
|
Revision tags: release/13.0.0 |
|
#
eac22dd4 |
| 15-Feb-2021 |
Mateusz Guzik <mjg@FreeBSD.org> |
lockmgr: shrink struct lock by 8 bytes on LP64
Currently the struct has a 4 byte padding stemming from 3 ints.
1. prio comfortably fits in short, unfortunately there is no dedicated type for it
lockmgr: shrink struct lock by 8 bytes on LP64
Currently the struct has a 4 byte padding stemming from 3 ints.
1. prio comfortably fits in short, unfortunately there is no dedicated type for it and plumbing it throughout the codebase is not worth it right now, instead an assert is added which covers also flags for safety 2. lk_exslpfail can in principle exceed u_short, but the count is already not considered reliable and it only ever gets modified straight to 0. In other words it can be incrementing with an upper bound of USHRT_MAX
With these in place struct lock shrinks from 48 to 40 bytes.
Reviewed by: kib (previous version) Differential Revision: https://reviews.freebsd.org/D28680
show more ...
|
#
38baca17 |
| 07-Jan-2021 |
Mateusz Guzik <mjg@FreeBSD.org> |
lockmgr: fix upgrade
TRYUPGRADE requests kept failing when they should not have due to wrong macro used to count readers.
Fixes: f6b091fbbd77cbb0 ("lockmgr: rewrite upgrade to stop always dropping
lockmgr: fix upgrade
TRYUPGRADE requests kept failing when they should not have due to wrong macro used to count readers.
Fixes: f6b091fbbd77cbb0 ("lockmgr: rewrite upgrade to stop always dropping the lock") Noted by: asomers Differential Revision: https://reviews.freebsd.org/D27947
show more ...
|
#
f90d57b8 |
| 24-Nov-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
locks: push lock_delay_arg_init calls down
Minor cleanup to skip doing them when recursing on locks and so that they can act on found lock value if need be.
|
Revision tags: release/12.2.0 |
|
#
6fed89b1 |
| 02-Sep-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
kern: clean up empty lines in .c and .h files
|
#
c7aa572c |
| 31-Jul-2020 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: Rubicon Communications, LLC (netgate.com)
|
#
13869889 |
| 24-Jul-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
lockmgr: add missing 'continue' to account for spuriously failed fcmpset
PR: 248245 Reported by: gbe Noted by: markj Fixes by: r363415 ("lockmgr: add adaptive spinning")
|
#
31ad4050 |
| 22-Jul-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
lockmgr: add adaptive spinning
It is very conservative. Only spinning when LK_ADAPTIVE is passed, only on exclusive lock and never when any waiters are present. buffer cache is remains not spinning.
lockmgr: add adaptive spinning
It is very conservative. Only spinning when LK_ADAPTIVE is passed, only on exclusive lock and never when any waiters are present. buffer cache is remains not spinning.
This reduces total sleep times during buildworld etc., but it does not shorten total real time (culprits are contention in the vm subsystem along with slock + upgrade which is not covered).
For microbenchmarks: open3_processes -t 52 (open/close of the same file for writing) ops/s: before: 258845 after: 801638
Reviewed by: kib Tested by: pho Differential Revision: https://reviews.freebsd.org/D25753
show more ...
|
#
4aff9f5d |
| 21-Jul-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
lockmgr: denote recursion with a bit in lock value
This reduces excessive reads from the lock.
Tested by: pho
|
#
f6b091fb |
| 21-Jul-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
lockmgr: rewrite upgrade to stop always dropping the lock
This matches rw and sx locks.
|
#
bdb6d824 |
| 21-Jul-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
lockmgr: add a helper for reading the lock value
|
Revision tags: release/11.4.0 |
|
#
9a79b990 |
| 10-Apr-2020 |
Kirk McKusick <mckusick@FreeBSD.org> |
When running with a kernel compiled with DEBUG_LOCKS, before panic'ing for recusing on a non-recursive lock, print out the kernel stack where the lock was originally acquired.
|
#
74dc6beb |
| 14-Feb-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r357855 through r357920.
|
#
c1b57fa7 |
| 14-Feb-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
lockmgr: rename lock_fast_path to lock_flags
The routine is not much of a fast path and the flags name better describes its purpose.
|
#
943c4932 |
| 14-Feb-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
lockmgr: retire the unused lockmgr_unlock_fast_path routine
|
#
051669e8 |
| 25-Jan-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r356931 through r357118.
|