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

/freebsd-10-stable/sys/sys/
H A Dturnstile.h33 * Turnstile interface. Non-sleepable locks use a turnstile for the
35 * turnstile contains two sub-queues: one for threads waiting for a
39 * A thread calls turnstile_chain_lock() to lock the turnstile chain
44 * turnstile chain lock.
47 * up the turnstile associated with the given lock in the hash table. Then
52 * turnstile became empty as a result. After the higher level code finishes
54 * pending thread(s) and give up ownership of the turnstile.
60 * on it, the new owner of the lock must claim ownership of the turnstile
63 * Each thread allocates a turnstile at thread creation via turnstile_alloc()
65 * a turnstile i
[all...]
H A Dproc.h178 struct turnstile;
217 struct turnstile *td_turnstile; /* (k) Associated turnstile. */
242 struct turnstile *td_blocked; /* (t) Lock thread is blocked on. */
244 LIST_HEAD(, turnstile) td_contested; /* (q) Contested locks. */
/freebsd-10-stable/sys/kern/
H A Dsubr_turnstile.c36 * turnstile queue's are assigned to a lock held by an owning thread. Thus,
37 * when one thread is enqueued onto a turnstile, it can lend its priority
40 * We wish to avoid bloating locks with an embedded turnstile and we do not
45 * hash table is a linked-lists of turnstiles and is called a turnstile
49 * Each time a thread is created, a turnstile is allocated from a UMA zone
51 * first thread to block, it lends its turnstile to the lock. If the lock
52 * already has a turnstile, then it gives its turnstile to the lock's
53 * turnstile's free list. When a thread is woken up, it takes a turnstile fro
121 struct turnstile { struct
[all...]
H A Dkern_rwlock.c51 #include <sys/turnstile.h>
377 struct turnstile *ts;
507 * acquire the turnstile lock so we can begin the process
526 * owners) while we were waiting on the turnstile
527 * chain lock. If so, drop the turnstile lock and try
547 * to set it. If we fail to set it drop the turnstile
563 * flag is set, so we must block on the turnstile.
566 CTR2(KTR_LOCK, "%s: %p blocking on turnstile", __func__,
577 CTR2(KTR_LOCK, "%s: %p resuming from turnstile",
594 * TODO: acquire "owner of record" here. Here be turnstile dragon
[all...]
H A Dkern_rmlock.c52 #include <sys/turnstile.h>
493 struct turnstile *ts;
537 struct turnstile *ts;
H A Dkern_mutex.c62 #include <sys/turnstile.h>
435 struct turnstile *ts;
532 * the turnstile chain lock.
543 * owners) while we were waiting on the turnstile
544 * chain lock. If so, drop the turnstile lock and try
582 * Block on the turnstile.
842 struct turnstile *ts;
858 * We have to lock the chain before the turnstile so this turnstile
870 * This turnstile i
[all...]
H A Dkern_switch.c92 SCHED_STAT_DEFINE_VAR(turnstile,
H A Dkern_thread.c51 #include <sys/turnstile.h>
H A Dsched_4bsd.c57 #include <sys/turnstile.h>
894 * If the thread is on a turnstile, then let the turnstile update
H A Dsched_ule.c61 #include <sys/turnstile.h>
1177 * turnstile or a sleepqueue. We can just lock_set without
1766 * If the thread is on a turnstile, then let the turnstile update

Completed in 192 milliseconds