summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/os/bio.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/os/bio.c')
-rw-r--r--usr/src/uts/common/os/bio.c57
1 files changed, 27 insertions, 30 deletions
diff --git a/usr/src/uts/common/os/bio.c b/usr/src/uts/common/os/bio.c
index a828f28272..0db01f80d7 100644
--- a/usr/src/uts/common/os/bio.c
+++ b/usr/src/uts/common/os/bio.c
@@ -19,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -36,8 +36,6 @@
* contributors.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <sys/types.h>
#include <sys/t_lock.h>
#include <sys/sysmacros.h>
@@ -231,7 +229,7 @@ bread_common(void *arg, dev_t dev, daddr_t blkno, long bsize)
/* ufs && snapshots */
(*bio_snapshot_strategy)(&ufsvfsp->vfs_snapshot, bp);
} else {
- ufsvfsp->vfs_iotstamp = lbolt;
+ ufsvfsp->vfs_iotstamp = ddi_get_lbolt();
ub.ub_breads.value.ul++; /* ufs && !logging */
(void) bdev_strategy(bp);
}
@@ -374,7 +372,7 @@ bdwrite(struct buf *bp)
ASSERT(SEMA_HELD(&bp->b_sem));
CPU_STATS_ADD_K(sys, lwrite, 1);
if ((bp->b_flags & B_DELWRI) == 0)
- bp->b_start = lbolt;
+ bp->b_start = ddi_get_lbolt();
/*
* B_DONE allows others to use the buffer, B_DELWRI causes the
* buffer to be written before being reused, and setting b_resid
@@ -443,7 +441,7 @@ brelse(struct buf *bp)
if ((bp->b_flags & (B_READ | B_RETRYWRI)) == B_RETRYWRI) {
bp->b_flags |= B_DELWRI;
/* keep fsflush from trying continuously to flush */
- bp->b_start = lbolt;
+ bp->b_start = ddi_get_lbolt();
} else
bp->b_flags |= B_AGE|B_STALE;
bp->b_flags &= ~B_ERROR;
@@ -559,7 +557,7 @@ struct buf *
getblk(dev_t dev, daddr_t blkno, long bsize)
{
return (getblk_common(/* ufsvfsp */ NULL, dev,
- blkno, bsize, /* errflg */ 0));
+ blkno, bsize, /* errflg */ 0));
}
/*
@@ -1147,9 +1145,9 @@ binit(void)
* Invalid user specified value, emit a warning.
*/
cmn_err(CE_WARN, "binit: bufhwm_pct(%d) out of \
- range(1..%d). Using %d as default.",
- bufhwm_pct,
- 100 / BIO_MAX_PERCENT, 100 / BIO_BUF_PERCENT);
+ range(1..%d). Using %d as default.",
+ bufhwm_pct,
+ 100 / BIO_MAX_PERCENT, 100 / BIO_BUF_PERCENT);
}
bio_default_hwm = MIN(physmem / pct,
@@ -1165,10 +1163,10 @@ binit(void)
* Invalid user specified value, emit a warning.
*/
cmn_err(CE_WARN,
- "binit: bufhwm(%d) out \
- of range(%d..%lu). Using %lu as default",
- bufhwm,
- BIO_MIN_HWM, bio_max_hwm, bio_max_hwm);
+ "binit: bufhwm(%d) out \
+ of range(%d..%lu). Using %lu as default",
+ bufhwm,
+ BIO_MIN_HWM, bio_max_hwm, bio_max_hwm);
}
/*
@@ -1243,9 +1241,9 @@ biodone_tnf_probe(struct buf *bp)
{
/* Kernel probe */
TNF_PROBE_3(biodone, "io blockio", /* CSTYLED */,
- tnf_device, device, bp->b_edev,
- tnf_diskaddr, block, bp->b_lblkno,
- tnf_opaque, buf, bp);
+ tnf_device, device, bp->b_edev,
+ tnf_diskaddr, block, bp->b_lblkno,
+ tnf_opaque, buf, bp);
}
/*
@@ -1329,23 +1327,22 @@ pageio_setup(struct page *pp, size_t len, struct vnode *vp, int flags)
CPU_STATS_ADDQ(cpup, vm, maj_fault, 1);
/* Kernel probe */
TNF_PROBE_2(major_fault, "vm pagefault", /* CSTYLED */,
- tnf_opaque, vnode, pp->p_vnode,
- tnf_offset, offset, pp->p_offset);
+ tnf_opaque, vnode, pp->p_vnode,
+ tnf_offset, offset, pp->p_offset);
}
/*
* Update statistics for pages being paged in
*/
if (pp != NULL && pp->p_vnode != NULL) {
if (IS_SWAPFSVP(pp->p_vnode)) {
- CPU_STATS_ADDQ(cpup, vm, anonpgin,
- btopr(len));
+ CPU_STATS_ADDQ(cpup, vm, anonpgin, btopr(len));
} else {
if (pp->p_vnode->v_flag & VVMEXEC) {
CPU_STATS_ADDQ(cpup, vm, execpgin,
- btopr(len));
+ btopr(len));
} else {
CPU_STATS_ADDQ(cpup, vm, fspgin,
- btopr(len));
+ btopr(len));
}
}
}
@@ -1354,9 +1351,9 @@ pageio_setup(struct page *pp, size_t len, struct vnode *vp, int flags)
"page_ws_in:pp %p", pp);
/* Kernel probe */
TNF_PROBE_3(pagein, "vm pageio io", /* CSTYLED */,
- tnf_opaque, vnode, pp->p_vnode,
- tnf_offset, offset, pp->p_offset,
- tnf_size, size, len);
+ tnf_opaque, vnode, pp->p_vnode,
+ tnf_offset, offset, pp->p_offset,
+ tnf_size, size, len);
}
bp = kmem_zalloc(sizeof (struct buf), KM_SLEEP);
@@ -1872,7 +1869,7 @@ top:
*/
mutex_enter(&bfree_lock);
bfreelist.b_flags |= B_WANTED;
- (void) cv_timedwait(&bio_mem_cv, &bfree_lock, lbolt+hz);
+ (void) cv_reltimedwait(&bio_mem_cv, &bfree_lock, hz, TR_CLOCK_TICK);
mutex_exit(&bfree_lock);
goto top;
}
@@ -1985,7 +1982,7 @@ biomodified(struct buf *bp)
while (npf > 0) {
ppattr = hat_pagesync(pp, HAT_SYNC_DONTZERO |
- HAT_SYNC_STOPON_MOD);
+ HAT_SYNC_STOPON_MOD);
if (ppattr & P_MOD)
return (1);
pp = pp->p_next;
@@ -2058,7 +2055,7 @@ bioclone(struct buf *bp, off_t off, size_t len, dev_t dev, daddr_t blkno,
ASSERT(bp->b_flags & B_PHYS);
bufp->b_shadow = bp->b_shadow +
- btop(((uintptr_t)bp->b_un.b_addr & PAGEOFFSET) + off);
+ btop(((uintptr_t)bp->b_un.b_addr & PAGEOFFSET) + off);
bufp->b_un.b_addr = (caddr_t)((uintptr_t)bp->b_un.b_addr + off);
if (bp->b_flags & B_REMAPPED)
bufp->b_proc = NULL;
@@ -2077,7 +2074,7 @@ bioclone(struct buf *bp, off_t off, size_t len, dev_t dev, daddr_t blkno,
bufp->b_un.b_addr = (caddr_t)(o & PAGEOFFSET);
} else {
bufp->b_un.b_addr =
- (caddr_t)((uintptr_t)bp->b_un.b_addr + off);
+ (caddr_t)((uintptr_t)bp->b_un.b_addr + off);
if (bp->b_flags & B_REMAPPED)
bufp->b_proc = NULL;
}