Searched refs:turnstile (Results 1 - 12 of 12) sorted by relevance

/freebsd-12-stable/sys/sys/
H A Dturnstile.h34 * Turnstile interface. Non-sleepable locks use a turnstile for the
36 * turnstile contains two sub-queues: one for threads waiting for a
40 * A thread calls turnstile_chain_lock() to lock the turnstile chain
45 * turnstile chain lock.
48 * up the turnstile associated with the given lock in the hash table. Then
53 * turnstile became empty as a result. After the higher level code finishes
55 * pending thread(s) and give up ownership of the turnstile.
61 * on it, the new owner of the lock must claim ownership of the turnstile
64 * Each thread allocates a turnstile at thread creation via turnstile_alloc()
66 * a turnstile i
[all...]
H A Dproc.h196 struct turnstile;
238 struct turnstile *td_turnstile; /* (k) Associated turnstile. */
263 struct turnstile *td_blocked; /* (t) Lock thread is blocked on. */
265 LIST_HEAD(, turnstile) td_contested; /* (q) Contested locks. */
/freebsd-12-stable/sys/kern/
H A Dsubr_turnstile.c38 * turnstile queue's are assigned to a lock held by an owning thread. Thus,
39 * when one thread is enqueued onto a turnstile, it can lend its priority
42 * We wish to avoid bloating locks with an embedded turnstile and we do not
47 * hash table is a linked-lists of turnstiles and is called a turnstile
51 * Each time a thread is created, a turnstile is allocated from a UMA zone
53 * first thread to block, it lends its turnstile to the lock. If the lock
54 * already has a turnstile, then it gives its turnstile to the lock's
55 * turnstile's free list. When a thread is woken up, it takes a turnstile fro
122 struct turnstile { struct
[all...]
H A Dkern_rwlock.c51 #include <sys/turnstile.h>
428 struct turnstile *ts;
550 * acquire the turnstile lock so we can begin the process
573 * owners) while we were waiting on the turnstile
574 * chain lock. If so, drop the turnstile lock and try
593 * to set it. If we fail to set it drop the turnstile
607 * flag is set, so we must block on the turnstile.
610 CTR2(KTR_LOCK, "%s: %p blocking on turnstile", __func__,
622 CTR2(KTR_LOCK, "%s: %p resuming from turnstile",
645 * TODO: acquire "owner of record" here. Here be turnstile dragon
[all...]
H A Dkern_rmlock.c53 #include <sys/turnstile.h>
493 struct turnstile *ts;
537 struct turnstile *ts;
H A Dkern_mutex.c62 #include <sys/turnstile.h>
488 struct turnstile *ts;
607 * the turnstile chain lock.
618 * owners) while we were waiting on the turnstile
619 * chain lock. If so, drop the turnstile lock and try
645 * Block on the turnstile.
1007 struct turnstile *ts;
1032 * We have to lock the chain before the turnstile so this turnstile
1044 * This turnstile i
[all...]
H A Dkern_switch.c94 SCHED_STAT_DEFINE_VAR(turnstile,
H A Dsubr_epoch.c49 #include <sys/turnstile.h>
429 struct turnstile *ts;
475 * oldest thread in the queue and wait on its turnstile
493 * waiting on a turnstile. Otherwise find the lowest
H A Dkern_thread.c52 #include <sys/turnstile.h>
H A Dsched_4bsd.c58 #include <sys/turnstile.h>
902 * If the thread is on a turnstile, then let the turnstile update
H A Dsched_ule.c63 #include <sys/turnstile.h>
1215 * turnstile or a sleepqueue. We can just lock_set without
1862 * If the thread is on a turnstile, then let the turnstile update
/freebsd-12-stable/sys/amd64/amd64/
H A Dpmap.c129 #include <sys/turnstile.h>
554 struct turnstile *ts;
566 struct turnstile *ts;
966 * cannot sleep. Instead, it blocks on a turnstile to relinquish the

Completed in 352 milliseconds