Lines Matching defs:lhp
1428 kmem_log_header_t *lhp;
1434 * Make sure that lhp->lh_cpu[] is nicely aligned
1438 lhp = vmem_xalloc(kmem_log_arena, lhsize, 64, P2NPHASE(lhsize, 64), 0,
1440 bzero(lhp, lhsize);
1442 mutex_init(&lhp->lh_lock, NULL, MUTEX_DEFAULT, NULL);
1443 lhp->lh_nchunks = nchunks;
1444 lhp->lh_chunksize = P2ROUNDUP(logsize / nchunks + 1, PAGESIZE);
1445 lhp->lh_base = vmem_alloc(kmem_log_arena,
1446 lhp->lh_chunksize * nchunks, VM_SLEEP);
1447 lhp->lh_free = vmem_alloc(kmem_log_arena,
1449 bzero(lhp->lh_base, lhp->lh_chunksize * nchunks);
1452 kmem_cpu_log_header_t *clhp = &lhp->lh_cpu[i];
1458 lhp->lh_free[i] = i;
1460 lhp->lh_head = max_ncpus;
1461 lhp->lh_tail = 0;
1463 return (lhp);
1467 kmem_log_enter(kmem_log_header_t *lhp, void *data, size_t size)
1470 kmem_cpu_log_header_t *clhp = &lhp->lh_cpu[CPU->cpu_seqid];
1472 if (lhp == NULL || kmem_logging == 0 || panicstr)
1478 mutex_enter(&lhp->lh_lock);
1479 lhp->lh_hits++;
1480 lhp->lh_free[lhp->lh_tail] = clhp->clh_chunk;
1481 lhp->lh_tail = (lhp->lh_tail + 1) % lhp->lh_nchunks;
1482 clhp->clh_chunk = lhp->lh_free[lhp->lh_head];
1483 lhp->lh_head = (lhp->lh_head + 1) % lhp->lh_nchunks;
1484 clhp->clh_current = lhp->lh_base +
1485 clhp->clh_chunk * lhp->lh_chunksize;
1486 clhp->clh_avail = lhp->lh_chunksize;
1487 if (size > lhp->lh_chunksize)
1488 size = lhp->lh_chunksize;
1489 mutex_exit(&lhp->lh_lock);