#
755230eb |
| 21-Nov-2017 |
Mark Johnston <markj@FreeBSD.org> |
Clean up the SYSINIT_FLAGS definitions for rwlock(9) and rmlock(9).
Avoid duplication in their macro definitions, and document them. No functional change intended.
MFC after: 1 week
|
#
937d37fc |
| 19-Nov-2017 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Merge ^/head r325842 through r325998.
|
#
8fef6b2c |
| 17-Nov-2017 |
Mateusz Guzik <mjg@FreeBSD.org> |
rwlock: unlock before traversing threads to wake up
While here perform a minor cleanup of the unlock path.
|
#
ae7d25a4 |
| 17-Nov-2017 |
Mateusz Guzik <mjg@FreeBSD.org> |
locks: pull up PMC_SOFT_CALLs out of slow path loops
|
#
3af30059 |
| 17-Nov-2017 |
Mateusz Guzik <mjg@FreeBSD.org> |
rwlock: avoid branches in the slow path if lockstat is disabled
|
#
55b1c6e7 |
| 15-Nov-2017 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Merge ^/head r325663 through r325841.
|
#
c7e4e92e |
| 11-Nov-2017 |
Mateusz Guzik <mjg@FreeBSD.org> |
rwlock: use fcmpset for setting RW_LOCK_WRITE_SPINNER
|
#
c2c014f2 |
| 07-Nov-2017 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Merge ^/head r323559 through r325504.
|
#
db520fdd |
| 06-Nov-2017 |
Mateusz Guzik <mjg@FreeBSD.org> |
rwlock: fix up compilation without KDTRACE_HOOKS after r324787
|
#
0a8f81bc |
| 22-Oct-2017 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r324837
While here, diff reduce some of the changes in sys/boot by moving MK_COVERAGE=no to sys/boot/Makefile.inc .
|
#
2567807c |
| 20-Oct-2017 |
Mateusz Guzik <mjg@FreeBSD.org> |
rwlock: reduce lockstat branches in the slowpath
MFC after: 1 week
|
#
50896984 |
| 10-Oct-2017 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r324482
|
#
d07e22cd |
| 05-Oct-2017 |
Mateusz Guzik <mjg@FreeBSD.org> |
locks: take the number of readers into account when waiting
Previous code would always spin once before checking the lock. But a lock with e.g. 6 readers is not going to become free in the duration
locks: take the number of readers into account when waiting
Previous code would always spin once before checking the lock. But a lock with e.g. 6 readers is not going to become free in the duration of once spin even if they start draining immediately.
Conservatively perform one for each reader.
Note that the total number of allowed spins is still extremely small and is subject to change later.
MFC after: 1 week
show more ...
|
#
20a15d17 |
| 05-Oct-2017 |
Mateusz Guzik <mjg@FreeBSD.org> |
locks: partially tidy up waiting on readers
spin first instant of instantly re-readoing and don't re-read after spinning is finished - the state is already known.
Note the code is subject to signif
locks: partially tidy up waiting on readers
spin first instant of instantly re-readoing and don't re-read after spinning is finished - the state is already known.
Note the code is subject to significant changes later.
MFC after: 1 week
show more ...
|
Revision tags: release/10.4.0 |
|
#
b754c279 |
| 13-Sep-2017 |
Navdeep Parhar <np@FreeBSD.org> |
MFH @ r323558.
|
#
5be4ad9e |
| 09-Sep-2017 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r323343
|
#
574adb65 |
| 06-Sep-2017 |
Mateusz Guzik <mjg@FreeBSD.org> |
Sprinkle __read_frequently on few obvious places.
Note that some of annotated variables should probably change their types to something smaller, preferably bit-sized.
|
#
531c2d7a |
| 24-Jul-2017 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r320180
|
#
bca9d05f |
| 23-Jul-2017 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Merge ^/head r319973 through 321382.
|
Revision tags: release/11.1.0 |
|
#
f6e653bb |
| 02-Jul-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r320398 through r320572.
|
#
3f7830a3 |
| 02-Jul-2017 |
Mateusz Guzik <mjg@FreeBSD.org> |
rwlock: perform the typically false td_rw_rlocks check later
Check if the lock is available first instead.
MFC after: 1 week
|
#
a3604b95 |
| 27-Jun-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r320042 through r320397.
|
#
704cb42f |
| 19-Jun-2017 |
Mark Johnston <markj@FreeBSD.org> |
Fix the !TD_IS_IDLETHREAD(curthread) locking assertions.
Most of the lock slowpaths assert that the calling thread isn't an idle thread. However, this may not be true if the system has panicked, and
Fix the !TD_IS_IDLETHREAD(curthread) locking assertions.
Most of the lock slowpaths assert that the calling thread isn't an idle thread. However, this may not be true if the system has panicked, and in some cases the assertion appears before a SCHEDULER_STOPPED() check.
MFC after: 3 days Sponsored by: Dell EMC Isilon
show more ...
|
#
348238db |
| 01-Mar-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r314420 through r314481.
|
#
a2101806 |
| 01-Mar-2017 |
Mateusz Guzik <mjg@FreeBSD.org> |
locks: ensure proper barriers are used with atomic ops when necessary
Unclear how, but the locking routine for mutexes was using the *release* barrier instead of acquire. This must have been either
locks: ensure proper barriers are used with atomic ops when necessary
Unclear how, but the locking routine for mutexes was using the *release* barrier instead of acquire. This must have been either a copy-pasto or bad completion.
Going through other uses of atomics shows no barriers in: - upgrade routines (addressed in this patch) - sections protected with turnstile locks - this should be fine as necessary barriers are in the worst case provided by turnstile unlock
I would like to thank Mark Millard and andreast@ for reporting the problem and testing previous patches before the issue got identified.
ps. .-'---`-. ,' `. | \ | \ \ _ \ ,\ _ ,'-,/-)\ ( * \ \,' ,' ,'-) `._,) -',-') \/ ''/ ) / / / ,'-'
Hardware provided by: IBM LTC
show more ...
|