summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/vm/vm_seg.c
diff options
context:
space:
mode:
authorRafael Vanoni <rafael.vanoni@sun.com>2009-11-13 01:32:32 -0800
committerRafael Vanoni <rafael.vanoni@sun.com>2009-11-13 01:32:32 -0800
commitd3d50737e566cade9a08d73d2af95105ac7cd960 (patch)
tree399b76a3f6bf107e2ff506d8f9c3333654b29fc7 /usr/src/uts/common/vm/vm_seg.c
parent1eff5f7761619411b3c31280fcd96cefc32968b7 (diff)
downloadillumos-joyent-d3d50737e566cade9a08d73d2af95105ac7cd960.tar.gz
PSARC/2009/396 Tickless Kernel Architecture / lbolt decoupling
6860030 tickless clock requires a clock() decoupled lbolt / lbolt64 Portions contributed by Chad Mynhier <cmynhier@gmail.com>
Diffstat (limited to 'usr/src/uts/common/vm/vm_seg.c')
-rw-r--r--usr/src/uts/common/vm/vm_seg.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/usr/src/uts/common/vm/vm_seg.c b/usr/src/uts/common/vm/vm_seg.c
index 2791f7b29b..65c6c5ecdc 100644
--- a/usr/src/uts/common/vm/vm_seg.c
+++ b/usr/src/uts/common/vm/vm_seg.c
@@ -19,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2008 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"
-
/*
* VM - segment management.
*/
@@ -212,7 +210,7 @@ extern struct seg_ops segspt_shmops;
#define IS_PFLAGS_WIRED(flags) ((flags) & SEGP_FORCE_WIRED)
#define IS_PCP_WIRED(pcp) IS_PFLAGS_WIRED((pcp)->p_flags)
-#define LBOLT_DELTA(t) ((ulong_t)(lbolt - (t)))
+#define LBOLT_DELTA(t) ((ulong_t)(ddi_get_lbolt() - (t)))
#define PCP_AGE(pcp) LBOLT_DELTA((pcp)->p_lbolt)
@@ -643,7 +641,7 @@ again:
* free it immediately since
* it may be reactivated very soon.
*/
- pcp->p_lbolt = lbolt;
+ pcp->p_lbolt = ddi_get_lbolt();
pcp->p_ref = 1;
}
mutex_exit(&hp->p_hmutex);
@@ -666,7 +664,7 @@ again:
* Mark this entry as referenced just in case
* we'll free our own pcp entry soon.
*/
- pcp->p_lbolt = lbolt;
+ pcp->p_lbolt = ddi_get_lbolt();
pcp->p_ref = 1;
}
if (pmtx != NULL) {
@@ -1544,8 +1542,8 @@ seg_pasync_thread(void)
mutex_enter(&seg_pasync_mtx);
for (;;) {
CALLB_CPR_SAFE_BEGIN(&cpr_info);
- (void) cv_timedwait(&seg_pasync_cv, &seg_pasync_mtx,
- lbolt + segpcache_reap_ticks);
+ (void) cv_reltimedwait(&seg_pasync_cv, &seg_pasync_mtx,
+ segpcache_reap_ticks, TR_CLOCK_TICK);
CALLB_CPR_SAFE_END(&cpr_info, &seg_pasync_mtx);
if (seg_pdisabled == 0) {
seg_ppurge_async(0);