diff options
author | aguzovsk <none@none> | 2007-06-08 18:58:50 -0700 |
---|---|---|
committer | aguzovsk <none@none> | 2007-06-08 18:58:50 -0700 |
commit | 2cb27123907a098a777e39eebc349d73e99a518f (patch) | |
tree | c95bccd47a25fb4e5c193a71cfa32f4747f03032 /usr/src/uts/common/vm/vm_usage.c | |
parent | 01e689ccb14727455003b77ee332005223497875 (diff) | |
download | illumos-joyent-2cb27123907a098a777e39eebc349d73e99a518f.tar.gz |
6544121 Implement text replication
Diffstat (limited to 'usr/src/uts/common/vm/vm_usage.c')
-rw-r--r-- | usr/src/uts/common/vm/vm_usage.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/usr/src/uts/common/vm/vm_usage.c b/usr/src/uts/common/vm/vm_usage.c index f25cf4c9ae..e10b0aede9 100644 --- a/usr/src/uts/common/vm/vm_usage.c +++ b/usr/src/uts/common/vm/vm_usage.c @@ -1110,11 +1110,20 @@ vmu_calculate_seg(vmu_entity_t *vmu_entities, struct seg *seg) if (svd->amp->swresv == 0) incore = B_TRUE; } - if (svd->amp != NULL && svd->type == MAP_PRIVATE) { + SEGVN_LOCK_ENTER(seg->s_as, &svd->lock, RW_READER); + /* + * Text replication anon maps can be shared across all zones. + * Space used for text replication is typically capped as + * small % of memory. To keep it simple for now we don't + * account for swap and memory space used for text replication. + */ + if (svd->tr_state == SEGVN_TR_OFF && svd->amp != NULL && + svd->type == MAP_PRIVATE) { private_amp = svd->amp; p_start = svd->anon_index; p_end = svd->anon_index + btop(seg->s_size) - 1; } + SEGVN_LOCK_EXIT(seg->s_as, &svd->lock); } else if (seg->s_ops == &segspt_shmops) { shared = B_TRUE; shmd = (struct shm_data *)seg->s_data; |