diff options
author | Rafael Vanoni <rafael.vanoni@sun.com> | 2009-11-13 01:32:32 -0800 |
---|---|---|
committer | Rafael Vanoni <rafael.vanoni@sun.com> | 2009-11-13 01:32:32 -0800 |
commit | d3d50737e566cade9a08d73d2af95105ac7cd960 (patch) | |
tree | 399b76a3f6bf107e2ff506d8f9c3333654b29fc7 /usr/src/uts/common/vm/vm_seg.c | |
parent | 1eff5f7761619411b3c31280fcd96cefc32968b7 (diff) | |
download | illumos-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.c | 14 |
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); |