#
aea9dba4 |
| 10-Aug-2024 |
Mark Johnston <markj@FreeBSD.org> |
turnstile: Mention the lock name when panicking due to a sleeping thread
This will hopefully make it a bit easier to track down the cause of such panics.
MFC after: 2 weeks
|
Revision tags: release/14.1.0, release/13.3.0, 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/
|
#
3a9e3ed6 |
| 06-Jul-2023 |
John Baldwin <jhb@FreeBSD.org> |
ddb: Always terminate DB_SHOW_ALIAS_FLAGS with a semi-colon.
Reviewed by: kib, markj Differential Revision: https://reviews.freebsd.org/D40818
|
Revision tags: release/13.2.0, release/12.4.0 |
|
#
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, release/12.3.0, release/13.0.0 |
|
#
fa2528ac |
| 18-Feb-2021 |
Alex Richardson <arichardson@FreeBSD.org> |
Use atomic loads/stores when updating td->td_state
KCSAN complains about racy accesses in the locking code. Those races are fine since they are inside a TD_SET_RUNNING() loop that expects the value
Use atomic loads/stores when updating td->td_state
KCSAN complains about racy accesses in the locking code. Those races are fine since they are inside a TD_SET_RUNNING() loop that expects the value to be changed by another CPU.
Use relaxed atomic stores/loads to indicate that this variable can be written/read by multiple CPUs at the same time. This will also prevent the compiler from doing unexpected re-ordering.
Reported by: GENERIC-KCSAN Test Plan: KCSAN no longer complains, kernel still runs fine. Reviewed By: markj, mjg (earlier version) Differential Revision: https://reviews.freebsd.org/D28569
show more ...
|
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
|
Revision tags: release/11.4.0 |
|
#
1e9ee2b5 |
| 02-Apr-2020 |
Conrad Meyer <cem@FreeBSD.org> |
ddb(4): show lockchain: Don't dereference LK_KERNPROC
Also, print a little more information for otherwise unhandled inhibited states.
Finally, improve the grammar of some prints. Some of the print
ddb(4): show lockchain: Don't dereference LK_KERNPROC
Also, print a little more information for otherwise unhandled inhibited states.
Finally, improve the grammar of some prints. Some of the print statements missing verb.
Sponsored by: Dell EMC Isilon
show more ...
|
#
75dfc66c |
| 27-Feb-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r358269 through r358399.
|
#
7029da5c |
| 26-Feb-2020 |
Pawel Biernacki <kaktus@FreeBSD.org> |
Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many)
r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly mark
Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many)
r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes.
This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags.
Mark all obvious cases as MPSAFE. All entries that haven't been marked as MPSAFE before are by default marked as NEEDGIANT
Approved by: kib (mentor, blanket) Commented by: kib, gallatin, melifaro Differential Revision: https://reviews.freebsd.org/D23718
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 ...
|
#
1c81a87e |
| 15-Dec-2019 |
Jeff Roberson <jeff@FreeBSD.org> |
schedlock 3/4
Eliminate lock recursion from turnstiles. This was simply used to avoid tracking the top-level turnstile lock. explicitly check for it before picking up and dropping locks.
Reviewed
schedlock 3/4
Eliminate lock recursion from turnstiles. This was simply used to avoid tracking the top-level turnstile lock. explicitly check for it before picking up and dropping locks.
Reviewed by: kib Tested by: pho Differential Revision: https://reviews.freebsd.org/D22746
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 |
|
#
a63915c2 |
| 28-Jul-2019 |
Alan Somers <asomers@FreeBSD.org> |
MFHead @r350386
Sponsored by: The FreeBSD Foundation
|
#
2fb62b1a |
| 25-Jul-2019 |
Mark Johnston <markj@FreeBSD.org> |
Fix the turnstile_lock() KPI.
turnstile_{lock,unlock}() were added for use in epoch. turnstile_lock() returned NULL to indicate that the calling thread had lost a race and the turnstile was no long
Fix the turnstile_lock() KPI.
turnstile_{lock,unlock}() were added for use in epoch. turnstile_lock() returned NULL to indicate that the calling thread had lost a race and the turnstile was no longer associated with the given lock, or the lock owner. However, reader-writer locks may not have a designated owner, in which case turnstile_lock() would return NULL and epoch_block_handler_preempt() would leak spinlocks as a result.
Apply a minimal fix: return the lock owner as a separate return value.
Reviewed by: kib MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D21048
show more ...
|
Revision tags: release/11.3.0 |
|
#
0269ae4c |
| 06-Jun-2019 |
Alan Somers <asomers@FreeBSD.org> |
MFHead @348740
Sponsored by: The FreeBSD Foundation
|
#
a9fd669b |
| 16-May-2019 |
Konstantin Belousov <kib@FreeBSD.org> |
subr_turnstile: Extract some common code to a helper.
Code walks the list of contested turnstiles to calculate the priority to unlend.
Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD F
subr_turnstile: Extract some common code to a helper.
Code walks the list of contested turnstiles to calculate the priority to unlend.
Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week
show more ...
|
Revision tags: release/12.0.0, release/11.2.0 |
|
#
d0a22279 |
| 03-Jun-2018 |
Mateusz Guzik <mjg@FreeBSD.org> |
Remove an unused argument to turnstile_unpend.
PR: 228694 Submitted by: Julian Pszczołowski <julian.pszczolowski@gmail.com>
|
#
3adccf38 |
| 19-May-2018 |
Matt Macy <mmacy@FreeBSD.org> |
turnstile / sleepqueue: annotate variables only used by debug builds
|
#
06bf2a6a |
| 10-May-2018 |
Matt Macy <mmacy@FreeBSD.org> |
Add simple preempt safe epoch API
Read locking is over used in the kernel to guarantee liveness. This API makes it easy to provide livenes guarantees without atomics.
Includes epoch_test kernel mod
Add simple preempt safe epoch API
Read locking is over used in the kernel to guarantee liveness. This API makes it easy to provide livenes guarantees without atomics.
Includes epoch_test kernel module to stress test the API.
Documentation will follow initial use case.
Test case and improvements to preemption handling in response to discussion with mjg@
Reviewed by: imp@, shurd@ Approved by: sbruno@
show more ...
|
#
8a36da99 |
| 27-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys/kern: adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone
sys/kern: adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone - task.
The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts.
show more ...
|
Revision tags: release/10.4.0 |
|
#
b754c279 |
| 13-Sep-2017 |
Navdeep Parhar <np@FreeBSD.org> |
MFH @ r323558.
|
#
1be4c195 |
| 25-Aug-2017 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r322870
|
#
d2e155a4 |
| 24-Aug-2017 |
Conrad Meyer <cem@FreeBSD.org> |
Remove unused declaration and update ddb.4
A follow-up to r322836.
Warnings for the unused declaration were breaking some second tier architectures, but did not show up in Clang on x86.
Reported b
Remove unused declaration and update ddb.4
A follow-up to r322836.
Warnings for the unused declaration were breaking some second tier architectures, but did not show up in Clang on x86.
Reported by: markj (ddb.4), emaste (declaration) Sponsored by: Dell EMC Isilon
show more ...
|
#
0c1d923e |
| 24-Aug-2017 |
Conrad Meyer <cem@FreeBSD.org> |
Merge print_lockchain and print_sleepchain
When debugging a deadlock, it is useful to follow the full chain of locks as far as possible.
Reviewed by: jhb Sponsored by: Dell EMC Isilon Differential
Merge print_lockchain and print_sleepchain
When debugging a deadlock, it is useful to follow the full chain of locks as far as possible.
Reviewed by: jhb Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D12115
show more ...
|
Revision tags: release/11.1.0 |
|
#
02ebdc78 |
| 31-Oct-2016 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r307736 through r308146.
|