History log of /dragonfly/sys/sys/indefinite.h (Results 1 – 5 of 5)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 6d0742ae 20-Oct-2023 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Rearrange struct vmmeter (requires world and kernel build)

* Expand v_lock_name from 16 to 32 bytes

* Add v_lock_addr field to go along with v_lock_name. These fields
report SMP content

kernel - Rearrange struct vmmeter (requires world and kernel build)

* Expand v_lock_name from 16 to 32 bytes

* Add v_lock_addr field to go along with v_lock_name. These fields
report SMP contention.

* Rearrange vmmeter_uint_end to not include v_lock_name or v_lock_addr.

* Cleanup the do_vmmeter_pcpu() sysctl code. Remove the useless
aggregation code and just do a structural copy for the per-cpu
gd_cnt (struct vmmeter) structure.

show more ...


Revision tags: v6.4.0, v6.4.0rc1, v6.5.0, v6.2.2, v6.2.1, v6.2.0, v6.3.0, v6.0.1, v6.0.0, v6.0.0rc1, v6.1.0, v5.8.3, v5.8.2, v5.8.1
# 4badc135 11-Mar-2020 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Do not use rdtsc() in the spinlock loop when virtualized

* When running as a guest, do not use rdtsc() in the spinlock loop
as numerous HVM subsystems will trap-out on the instruction.

R

kernel - Do not use rdtsc() in the spinlock loop when virtualized

* When running as a guest, do not use rdtsc() in the spinlock loop
as numerous HVM subsystems will trap-out on the instruction.

Reported-by: mjg

show more ...


Revision tags: v5.8.0, v5.9.0, v5.8.0rc1, v5.6.3, v5.6.2, v5.6.1, v5.6.0, v5.6.0rc1, v5.7.0, v5.4.3, v5.4.2, v5.4.1, v5.4.0, v5.5.0, v5.4.0rc1, v5.2.2, v5.2.1
# 99cd56aa 27-Apr-2018 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Improve indefinite macros a bit

* Delay saving SMP collision info and label string for a few loops
so we don't lose performance by doing it after the contested lock has
been resolved.


Revision tags: v5.2.0, v5.3.0, v5.2.0rc, v5.0.2, v5.0.1
# 291b8636 18-Oct-2017 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Add lock debugging

* Refactor debug.lock_test_mode to allow dumping of stack backtraces
when lockmgr locks or spinlocks are contested.

* Make some adjustments to the indefinite code (w/

kernel - Add lock debugging

* Refactor debug.lock_test_mode to allow dumping of stack backtraces
when lockmgr locks or spinlocks are contested.

* Make some adjustments to the indefinite code (w/ heads up from mjg).
Do not start recording the TSC until we've contested for 15 loops,
and do not record the end time or duration unless we have contested
for more than 15 loops.

show more ...


Revision tags: v5.0.0
# 5b49787b 05-Oct-2017 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Refactor smp collision statistics

* Add an indefinite wait timing API (sys/indefinite.h,
sys/indefinite2.h). This interface uses the TSC and will
record lock latencies to our pcpu stat

kernel - Refactor smp collision statistics

* Add an indefinite wait timing API (sys/indefinite.h,
sys/indefinite2.h). This interface uses the TSC and will
record lock latencies to our pcpu stats in microseconds.
The systat -pv 1 display shows this under smpcoll.

Note that latencies generated by tokens, lockmgr, and mutex
locks do not necessarily reflect actual lost cpu time as the
kernel will schedule other threads while those are blocked,
if other threads are available.

* Formalize TSC operations more, supply a type (tsc_uclock_t and
tsc_sclock_t).

* Reinstrument lockmgr, mutex, token, and spinlocks to use the new
indefinite timing interface.

show more ...