#
20c69e76 |
| 25-Mar-2017 |
Andriy Gapon <avg@FreeBSD.org> |
dtrace sched:::preempt should fire only when there is preemption
The probe fire on any thread switch before.
Reviewed by: markj MFC after: 1 week Sponsored by: Panzura
|
#
afa0a46c |
| 23-Mar-2017 |
Andriy Gapon <avg@FreeBSD.org> |
move thread switch tracing from mi_switch to sched_switch
This is done so that the thread state changes during the switch are not confused with the thread state changes reported when the thread spin
move thread switch tracing from mi_switch to sched_switch
This is done so that the thread state changes during the switch are not confused with the thread state changes reported when the thread spins on a lock.
Here is an example, three consecutive entries for the same thread (from top to bottom):
KTRGRAPH group:"thread", id:"zio_write_intr_3 tid 100260", state:"sleep", attributes: prio:84, wmesg:"-", lockname:"(null)" KTRGRAPH group:"thread", id:"zio_write_intr_3 tid 100260", state:"spinning", attributes: lockname:"sched lock 1" KTRGRAPH group:"thread", id:"zio_write_intr_3 tid 100260", state:"running", attributes: none
The above trace could leave an impression that the final state of the thread was "running". After this change the sleep state will be reported after the "spinning" and "running" states reported for the sched lock.
Reviewed by: jhb, markj MFC after: 1 week Sponsored by: Panzura Differential Revision: https://reviews.freebsd.org/D9961
show more ...
|
#
a3906ca5 |
| 17-Feb-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r313644 through r313895.
|
#
91fa4707 |
| 17-Feb-2017 |
Mateusz Guzik <mjg@FreeBSD.org> |
Introduce SCHEDULER_STOPPED_TD for use when the thread pointer was already read
Sprinkle in few places.
|
#
9b3ece1c |
| 04-Feb-2017 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r313243
|
#
a4aa656a |
| 22-Jan-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r312309 through r312623.
|
#
bf9ebe74 |
| 16-Jan-2017 |
Ed Maste <emaste@FreeBSD.org> |
disambiguate msleep KASSERT diagnostics
Previously "panic: msleep" could happen for a few different reasons. Break the KASSERTs out into individual cases to identify the failing condition. Found dur
disambiguate msleep KASSERT diagnostics
Previously "panic: msleep" could happen for a few different reasons. Break the KASSERTs out into individual cases to identify the failing condition. Found during the investigation that resulted in r308288.
Reviewed by: kib, jhb Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D8604
show more ...
|
#
99bc7e41 |
| 20-Dec-2016 |
John Baldwin <jhb@FreeBSD.org> |
Don't spin in pause() during early boot for kthreads other than thread0.
pause() uses a spin loop to simulate a sleep during early boot. However, we only need this for thread0 to get far enough in
Don't spin in pause() during early boot for kthreads other than thread0.
pause() uses a spin loop to simulate a sleep during early boot. However, we only need this for thread0 to get far enough in the boot process to enable timers (at which point pause() can sleep). For other kthreads, sleeping in pause() is ok as the callout will be scheduled and will eventually fire once thread0 initializes timers.
Tested by: Steven Kargl Sleuthing by: markj MFC after: 1 week Sponsored by: Netflix
show more ...
|
#
2828dafc |
| 10-Nov-2016 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r308227 through r308490.
|
#
75409ce1 |
| 02-Nov-2016 |
Konstantin Belousov <kib@FreeBSD.org> |
Remove remnants of the recursive sleep support. Instead assert that we never try to sleep while the thread is on a sleepqueue.
Reviewed by: jhb Tested by: pho Sponsored by: The FreeBSD Foundation M
Remove remnants of the recursive sleep support. Instead assert that we never try to sleep while the thread is on a sleepqueue.
Reviewed by: jhb Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D8422
show more ...
|
Revision tags: release/11.0.1, release/11.0.0 |
|
#
93badfa1 |
| 16-Sep-2016 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r305687 through r305890.
|
#
69a28758 |
| 15-Sep-2016 |
Ed Maste <emaste@FreeBSD.org> |
Renumber license clauses in sys/kern to avoid skipping #3
|
#
93ccd6bf |
| 05-Jun-2016 |
Konstantin Belousov <kib@FreeBSD.org> |
Get rid of struct proc p_sched and struct thread td_sched pointers.
p_sched is unused.
The struct td_sched is always co-allocated with the struct thread, except for the thread0. Avoid useless indi
Get rid of struct proc p_sched and struct thread td_sched pointers.
p_sched is unused.
The struct td_sched is always co-allocated with the struct thread, except for the thread0. Avoid useless indirection, instead calculate td_sched location using simple pointer arithmetic in td_get_sched(9). For thread0, which is statically allocated, create a structure to emulate layout of the dynamic allocation.
Reviewed by: jhb (previous version) Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D6711
show more ...
|
#
bc64e526 |
| 23-May-2016 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Use DELAY() instead of _sleep() when SCHEDULER_STOPPED() is set inside pause_sbt(). This allows pause() to continue working during a panic() which is not invoking KDB. This is useful when debugging g
Use DELAY() instead of _sleep() when SCHEDULER_STOPPED() is set inside pause_sbt(). This allows pause() to continue working during a panic() which is not invoking KDB. This is useful when debugging graphics drivers using the LinuxKPI.
Obtained from: kmacy @ MFC after: 1 week
show more ...
|
#
55e0987a |
| 26-Apr-2016 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys: extend use of the howmany() macro when available.
We have a howmany() macro in the <sys/param.h> header that is convenient to re-use as it makes things easier to read.
|
#
d6084013 |
| 05-Apr-2016 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: The FreeBSD Foundation
|
#
b4f1d267 |
| 31-Mar-2016 |
John Baldwin <jhb@FreeBSD.org> |
Rework handling of thread sleeps before timers are working.
Previously, calls to *sleep() and cv_*wait*() immediately returned during early boot. Instead, permit threads that request a sleep withou
Rework handling of thread sleeps before timers are working.
Previously, calls to *sleep() and cv_*wait*() immediately returned during early boot. Instead, permit threads that request a sleep without a timeout to sleep as wakeup() works during early boot. Sleeps with timeouts are harder to emulate without working timers, so just punt and panic explicitly if any thread tries to use those before timers are working. Any threads that depend on timeouts should either wait until SI_SUB_KICK_SCHEDULER to start or they should use DELAY() until timers are available.
Until APs are started earlier this should be a no-op as other kthreads shouldn't get a chance to start running until after timers are working regardless of when they were created.
Reviewed by: kib Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D5724
show more ...
|
#
c975a5d3 |
| 25-Mar-2016 |
Conrad Meyer <cem@FreeBSD.org> |
Add td_swinvoltick to track last involuntary context switch
Expose in DDB via "show thread."
Reviewed by: markj Sponsored by: EMC / Isilon Storage Division
|
Revision tags: release/10.3.0, release/10.2.0 |
|
#
416ba5c7 |
| 22-Jun-2015 |
Navdeep Parhar <np@FreeBSD.org> |
Catch up with HEAD (r280229-r284686).
|
#
dad2fb7e |
| 15-Jun-2015 |
Baptiste Daroussin <bapt@FreeBSD.org> |
Merge from head
|
#
8472c029 |
| 30-May-2015 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r283596 through r283770.
|
#
69baeadc |
| 29-May-2015 |
Konstantin Belousov <kib@FreeBSD.org> |
Remove several write-only variables, all reported by the gcc 4.9 buildkernel run.
Some of them were write-only under some kernel options, e.g. variables keeping values only used by CTR() macros. It
Remove several write-only variables, all reported by the gcc 4.9 buildkernel run.
Some of them were write-only under some kernel options, e.g. variables keeping values only used by CTR() macros. It costs nothing to the code readability and correctness to eliminate the warnings in those cases too by removing the local cached values used only for single-access.
Review: https://reviews.freebsd.org/D2665 Reviewed by: rodrigc Looked at by: bjk Sponsored by: The FreeBSD Foundation MFC after: 1 week
show more ...
|
#
37a48d40 |
| 28-May-2015 |
Glen Barber <gjb@FreeBSD.org> |
MFH: r282615-r283655
Sponsored by: The FreeBSD Foundation
|
#
98e0ffae |
| 27-May-2015 |
Simon J. Gerraty <sjg@FreeBSD.org> |
Merge sync of head
|
#
fd90e2ed |
| 22-May-2015 |
Jung-uk Kim <jkim@FreeBSD.org> |
CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten years for head. However, it is continuously misused as the mpsafe argument for callout_init(9). Deprecate the flag and cle
CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten years for head. However, it is continuously misused as the mpsafe argument for callout_init(9). Deprecate the flag and clean up callout_init() calls to make them more consistent.
Differential Revision: https://reviews.freebsd.org/D2613 Reviewed by: jhb MFC after: 2 weeks
show more ...
|