diff options
author | Jerry Jelinek <jerry.jelinek@joyent.com> | 2013-10-19 17:06:42 -0700 |
---|---|---|
committer | Robert Mustacchi <rm@joyent.com> | 2013-11-06 09:27:44 -0800 |
commit | 86ad481cc8bfbc0155ef221a0fe07ef23db58f68 (patch) | |
tree | 02b98186544264e104e900cdba9d86a30daad8e6 /usr/src | |
parent | fe77cc0407fb667ddc04e1a8f2e203bb7b9c80e1 (diff) | |
download | illumos-gate-86ad481cc8bfbc0155ef221a0fe07ef23db58f68.tar.gz |
4245 boot_time kstat for zones should be epoch timestamp of zone boot, not "random" number
Reviewed by: Richard Elling <richard.elling@gmail.com>
Reviewed by: Garrett D'Amore <garrett@damore.org>
Approved by: Gordon Ross <gwr@nexenta.com>
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/uts/common/os/kstat_fr.c | 5 | ||||
-rw-r--r-- | usr/src/uts/common/os/zone.c | 3 | ||||
-rw-r--r-- | usr/src/uts/common/sys/zone.h | 3 |
3 files changed, 8 insertions, 3 deletions
diff --git a/usr/src/uts/common/os/kstat_fr.c b/usr/src/uts/common/os/kstat_fr.c index 83b817e866..9ee61a2fb7 100644 --- a/usr/src/uts/common/os/kstat_fr.c +++ b/usr/src/uts/common/os/kstat_fr.c @@ -20,6 +20,7 @@ */ /* * Copyright (c) 1992, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, Joyent, Inc. All rights reserved. */ /* @@ -838,9 +839,7 @@ system_misc_kstat_update(kstat_t *ksp, int rw) zone_lbolt = ddi_get_lbolt(); zone_nproc = nproc; } else { - struct timeval tvp; - hrt2tv(curproc->p_zone->zone_zsched->p_mstart, &tvp); - zone_boot_time = tvp.tv_sec; + zone_boot_time = curproc->p_zone->zone_boot_time; zone_hrtime = gethrtime(); zone_lbolt = (clock_t)(NSEC_TO_TICK(zone_hrtime) - diff --git a/usr/src/uts/common/os/zone.c b/usr/src/uts/common/os/zone.c index 79ccd94ae4..826fba8718 100644 --- a/usr/src/uts/common/os/zone.c +++ b/usr/src/uts/common/os/zone.c @@ -3789,7 +3789,10 @@ zsched(void *arg) mutex_enter(&zone_status_lock); zone_status_set(zone, ZONE_IS_SHUTTING_DOWN); mutex_exit(&zone_status_lock); + } else { + zone->zone_boot_time = gethrestime_sec(); } + pool_unlock(); } diff --git a/usr/src/uts/common/sys/zone.h b/usr/src/uts/common/sys/zone.h index 3ba7bf47f4..75d03ee712 100644 --- a/usr/src/uts/common/sys/zone.h +++ b/usr/src/uts/common/sys/zone.h @@ -490,6 +490,9 @@ typedef struct zone { hrtime_t zone_pool_mod; /* last pool bind modification time */ /* zone_psetid is protected by cpu_lock */ psetid_t zone_psetid; /* pset the zone is bound to */ + + time_t zone_boot_time; /* Similar to boot_time */ + /* * The following two can be read without holding any locks. They are * updated under cpu_lock. |