Lines Matching refs:plb
240 pmc_plb_rele_unlocked(struct pmclog_buffer *plb) in pmc_plb_rele_unlocked() argument
242 TAILQ_INSERT_HEAD(&pmc_dom_hdrs[plb->plb_domain]->pdbh_head, plb, plb_next); in pmc_plb_rele_unlocked()
246 pmc_plb_rele(struct pmclog_buffer *plb) in pmc_plb_rele() argument
248 mtx_lock_spin(&pmc_dom_hdrs[plb->plb_domain]->pdbh_mtx); in pmc_plb_rele()
249 pmc_plb_rele_unlocked(plb); in pmc_plb_rele()
250 mtx_unlock_spin(&pmc_dom_hdrs[plb->plb_domain]->pdbh_mtx); in pmc_plb_rele()
259 struct pmclog_buffer *plb; in pmclog_get_buffer() local
268 if ((plb = TAILQ_FIRST(&pmc_dom_hdrs[domain]->pdbh_head)) != NULL) in pmclog_get_buffer()
269 TAILQ_REMOVE(&pmc_dom_hdrs[domain]->pdbh_head, plb, plb_next); in pmclog_get_buffer()
272 PMCDBG2(LOG,GTB,1, "po=%p plb=%p", po, plb); in pmclog_get_buffer()
275 if (plb) in pmclog_get_buffer()
276 KASSERT(plb->plb_ptr == plb->plb_base && in pmclog_get_buffer()
277 plb->plb_base < plb->plb_fence, in pmclog_get_buffer()
279 "base=%p fence=%p", __LINE__, po, plb->plb_ptr, in pmclog_get_buffer()
280 plb->plb_base, plb->plb_fence)); in pmclog_get_buffer()
283 po->po_curbuf[curcpu] = plb; in pmclog_get_buffer()
287 if (plb == NULL) in pmclog_get_buffer()
290 return (plb ? 0 : ENOMEM); in pmclog_get_buffer()
510 struct pmclog_buffer *plb; in pmclog_release_flags() local
512 plb = po->po_curbuf[curcpu]; in pmclog_release_flags()
513 KASSERT(plb->plb_ptr >= plb->plb_base, in pmclog_release_flags()
515 po, plb->plb_ptr, plb->plb_base)); in pmclog_release_flags()
516 KASSERT(plb->plb_ptr <= plb->plb_fence, in pmclog_release_flags()
518 po, plb->plb_ptr, plb->plb_fence)); in pmclog_release_flags()
521 if (plb->plb_ptr >= plb->plb_fence) in pmclog_release_flags()
548 struct pmclog_buffer *plb, **pplb; in pmclog_reserve() local
566 plb = *pplb; in pmclog_reserve()
567 KASSERT(plb->plb_ptr >= plb->plb_base && in pmclog_reserve()
568 plb->plb_ptr <= plb->plb_fence, in pmclog_reserve()
570 __LINE__, po, plb->plb_ptr, plb->plb_base, in pmclog_reserve()
571 plb->plb_fence)); in pmclog_reserve()
573 oldptr = (uintptr_t) plb->plb_ptr; in pmclog_reserve()
583 if (newptr <= (uintptr_t) plb->plb_fence) { in pmclog_reserve()
584 plb->plb_ptr = (char *) newptr; in pmclog_reserve()
597 plb = *pplb; in pmclog_reserve()
598 KASSERT(plb != NULL, in pmclog_reserve()
601 KASSERT(plb->plb_ptr != NULL, in pmclog_reserve()
604 KASSERT(plb->plb_ptr == plb->plb_base && in pmclog_reserve()
605 plb->plb_ptr <= plb->plb_fence, in pmclog_reserve()
607 __LINE__, po, plb->plb_ptr, plb->plb_base, in pmclog_reserve()
608 plb->plb_fence)); in pmclog_reserve()
610 oldptr = (uintptr_t) plb->plb_ptr; in pmclog_reserve()
627 struct pmclog_buffer *plb; in pmclog_schedule_io() local
629 plb = po->po_curbuf[curcpu]; in pmclog_schedule_io()
631 KASSERT(plb != NULL, in pmclog_schedule_io()
633 KASSERT(plb->plb_ptr >= plb->plb_base, in pmclog_schedule_io()
635 po, plb->plb_ptr, plb->plb_base)); in pmclog_schedule_io()
636 KASSERT(plb->plb_ptr <= plb->plb_fence, in pmclog_schedule_io()
638 po, plb->plb_ptr, plb->plb_fence)); in pmclog_schedule_io()
647 TAILQ_INSERT_TAIL(&po->po_logbuffers, plb, plb_next); in pmclog_schedule_io()
846 struct pmclog_buffer *plb; in pmclog_schedule_one_cond() local
855 plb = po->po_curbuf[cpu]; in pmclog_schedule_one_cond()
856 if (plb && plb->plb_ptr != plb->plb_base) in pmclog_schedule_one_cond()
1236 struct pmclog_buffer *plb; in pmclog_initialize() local
1261 plb = malloc_domainset(sizeof(struct pmclog_buffer) * total, in pmclog_initialize()
1263 pmc_dom_hdrs[domain]->pdbh_plbs = plb; in pmclog_initialize()
1264 for (; total > 0; total--, plb++) { in pmclog_initialize()
1269 PMCLOG_INIT_BUFFER_DESCRIPTOR(plb, buf, domain); in pmclog_initialize()
1270 pmc_plb_rele_unlocked(plb); in pmclog_initialize()
1285 struct pmclog_buffer *plb; in pmclog_shutdown() local
1291 while ((plb = TAILQ_FIRST(&pmc_dom_hdrs[domain]->pdbh_head)) != NULL) { in pmclog_shutdown()
1292 TAILQ_REMOVE(&pmc_dom_hdrs[domain]->pdbh_head, plb, plb_next); in pmclog_shutdown()
1293 free(plb->plb_base, M_PMC); in pmclog_shutdown()