Lines Matching refs:uc

171 #define	UMTXQ_LOCKED_ASSERT(uc)		mtx_assert(&(uc)->uc_lock, MA_OWNED)
266 struct umtxq_chain *uc;
276 uc = &umtxq_chains[i][j];
277 mtx_lock(&uc->uc_lock);
278 tot += uc->max_length;
279 mtx_unlock(&uc->uc_lock);
288 uc = &umtxq_chains[i][j];
289 mtx_lock(&uc->uc_lock);
290 whole = uc->max_length * 100;
291 mtx_unlock(&uc->uc_lock);
342 struct umtxq_chain *uc;
354 uc = &umtxq_chains[i][j];
355 mtx_lock(&uc->uc_lock);
356 uc->length = 0;
357 uc->max_length = 0;
358 mtx_unlock(&uc->uc_lock);
446 struct umtxq_chain *uc;
448 uc = umtxq_getchain(key);
449 mtx_lock(&uc->uc_lock);
458 struct umtxq_chain *uc;
460 uc = umtxq_getchain(key);
461 mtx_unlock(&uc->uc_lock);
471 struct umtxq_chain *uc;
473 uc = umtxq_getchain(key);
474 mtx_assert(&uc->uc_lock, MA_OWNED);
475 if (uc->uc_busy) {
481 while (uc->uc_busy && --count > 0)
487 while (uc->uc_busy) {
488 uc->uc_waiters++;
489 msleep(uc, &uc->uc_lock, 0, "umtxqb", 0);
490 uc->uc_waiters--;
493 uc->uc_busy = 1;
502 struct umtxq_chain *uc;
504 uc = umtxq_getchain(key);
505 mtx_assert(&uc->uc_lock, MA_OWNED);
506 KASSERT(uc->uc_busy != 0, ("not busy"));
507 uc->uc_busy = 0;
508 if (uc->uc_waiters)
509 wakeup_one(uc);
525 struct umtxq_chain *uc;
527 uc = umtxq_getchain(key);
528 UMTXQ_LOCKED_ASSERT(uc);
529 LIST_FOREACH(uh, &uc->uc_queue[q], link) {
541 struct umtxq_chain *uc;
543 uc = umtxq_getchain(&uq->uq_key);
544 UMTXQ_LOCKED_ASSERT(uc);
548 LIST_INSERT_HEAD(&uc->uc_spare_queue, uq->uq_spare_queue, link);
552 LIST_INSERT_HEAD(&uc->uc_queue[q], uh, link);
554 uc->length++;
555 if (uc->length > uc->max_length) {
556 uc->max_length = uc->length;
557 if (uc->max_length > max_length)
558 max_length = uc->max_length;
574 struct umtxq_chain *uc;
577 uc = umtxq_getchain(&uq->uq_key);
578 UMTXQ_LOCKED_ASSERT(uc);
588 uc->length--;
592 uh = LIST_FIRST(&uc->uc_spare_queue);
607 struct umtxq_chain *uc;
610 uc = umtxq_getchain(key);
611 UMTXQ_LOCKED_ASSERT(uc);
625 struct umtxq_chain *uc;
629 uc = umtxq_getchain(key);
630 UMTXQ_LOCKED_ASSERT(uc);
672 struct umtxq_chain *uc;
678 uc = umtxq_getchain(key);
679 UMTXQ_LOCKED_ASSERT(uc);
699 struct umtxq_chain *uc;
701 uc = umtxq_getchain(&uq->uq_key);
702 UMTXQ_LOCKED_ASSERT(uc);
766 struct umtxq_chain *uc;
769 uc = umtxq_getchain(&uq->uq_key);
770 UMTXQ_LOCKED_ASSERT(uc);
780 error = msleep(uq, &uc->uc_lock, PCATCH | PDROP, wmesg, timo);
1892 struct umtxq_chain *uc;
1900 uc = umtxq_getchain(&uq->uq_key);
1901 UMTXQ_LOCKED_ASSERT(uc);
1902 KASSERT(uc->uc_busy != 0, ("umtx chain is not busy"));
1958 struct umtxq_chain *uc;
1960 uc = umtxq_getchain(&pi->pi_key);
1961 UMTXQ_LOCKED_ASSERT(uc);
1972 struct umtxq_chain *uc;
1974 uc = umtxq_getchain(&pi->pi_key);
1975 UMTXQ_LOCKED_ASSERT(uc);
1984 TAILQ_REMOVE(&uc->uc_pi_list, pi, pi_hashlink);
1995 struct umtxq_chain *uc;
1998 uc = umtxq_getchain(key);
1999 UMTXQ_LOCKED_ASSERT(uc);
2001 TAILQ_FOREACH(pi, &uc->uc_pi_list, pi_hashlink) {
2015 struct umtxq_chain *uc;
2017 uc = umtxq_getchain(&pi->pi_key);
2018 UMTXQ_LOCKED_ASSERT(uc);
2019 TAILQ_INSERT_TAIL(&uc->uc_pi_list, pi, pi_hashlink);