diff options
author | John Sonnenschein <johns@joyent.com> | 2012-01-26 22:45:08 +0000 |
---|---|---|
committer | John Sonnenschein <johns@joyent.com> | 2012-01-26 22:45:08 +0000 |
commit | 92fb61a58dea0e097df79e73d3cda1bef52c4339 (patch) | |
tree | 8a9727b7a3600c29b261de4580520de19ec57e56 /usr/src/uts/common/sys | |
parent | d6f90348d6442b80b8e77a4aaf217cbf86c54bdb (diff) | |
parent | 6a5fc1386817167c00f9ee99bebd9ce35d434593 (diff) | |
download | illumos-joyent-gcc4.tar.gz |
Merge branch 'gcc4' of git.joyent.com:illumos-joyent into gcc4gcc4
Diffstat (limited to 'usr/src/uts/common/sys')
-rw-r--r-- | usr/src/uts/common/sys/buf.h | 8 | ||||
-rw-r--r-- | usr/src/uts/common/sys/fss.h | 4 | ||||
-rw-r--r-- | usr/src/uts/common/sys/mman.h | 2 | ||||
-rw-r--r-- | usr/src/uts/common/sys/zone.h | 21 |
4 files changed, 34 insertions, 1 deletions
diff --git a/usr/src/uts/common/sys/buf.h b/usr/src/uts/common/sys/buf.h index a9191aed7c..cb8a6012fc 100644 --- a/usr/src/uts/common/sys/buf.h +++ b/usr/src/uts/common/sys/buf.h @@ -21,6 +21,7 @@ /* * Copyright 2008 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. + * Copyright 2012 Joyent, Inc. All rights reserved. */ /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ @@ -186,6 +187,7 @@ struct biostats { #define B_STARTED 0x2000000 /* io:::start probe called for buf */ #define B_ABRWRITE 0x4000000 /* Application based recovery active */ #define B_PAGE_NOWAIT 0x8000000 /* Skip the page if it is locked */ +#define B_INVALCURONLY 0x10000000 /* invalidate only for curproc */ /* * There is some confusion over the meaning of B_FREE and B_INVAL and what @@ -198,6 +200,12 @@ struct biostats { * between the sole use of these two flags. In both cases, IO will be done * if the page is not yet committed to storage. * + * The B_INVALCURONLY flag modifies the behavior of the B_INVAL flag and is + * intended to be used in conjunction with B_INVAL. B_INVALCURONLY has no + * meaning on its own. When both B_INVALCURONLY and B_INVAL are set, then + * the mapping for the page is only invalidated for the current process. + * In this case, the page is not destroyed unless this was the final mapping. + * * In order to discard pages without writing them back, (B_INVAL | B_TRUNC) * should be used. * diff --git a/usr/src/uts/common/sys/fss.h b/usr/src/uts/common/sys/fss.h index 583586fd75..cdb47beb7f 100644 --- a/usr/src/uts/common/sys/fss.h +++ b/usr/src/uts/common/sys/fss.h @@ -22,6 +22,7 @@ /* * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. + * Copyright 2012 Joyent, Inc. All rights reserved. */ #ifndef _SYS_FSS_H @@ -86,6 +87,7 @@ typedef struct fsspset { /* on the list */ struct fssproj *fssps_list; /* list of project parts */ struct fsszone *fssps_zones; /* list of fsszone_t's in pset */ + uint32_t fssps_gen; /* generation for zone's kstats */ } fsspset_t; /* @@ -103,6 +105,8 @@ typedef struct fssproj { /* protected by fssps_displock */ uint32_t fssp_ticks; /* total of all ticks */ /* protected by fssps_displock */ + uint32_t fssp_zone_ticks; /* unscaled total of all ticks */ + /* protected by fssps_displock */ fssusage_t fssp_usage; /* this project's decayed usage */ fssusage_t fssp_shusage; /* normalized usage */ struct fssproj *fssp_next; /* next project on this pset */ diff --git a/usr/src/uts/common/sys/mman.h b/usr/src/uts/common/sys/mman.h index 6c9119e56d..82344607b0 100644 --- a/usr/src/uts/common/sys/mman.h +++ b/usr/src/uts/common/sys/mman.h @@ -22,6 +22,7 @@ /* * Copyright 2008 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. + * Copyright 2012 Joyent, Inc. All rights reserved. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -353,6 +354,7 @@ struct memcntl_mha32 { #define MS_SYNC 0x4 /* wait for msync */ #define MS_ASYNC 0x1 /* return immediately */ #define MS_INVALIDATE 0x2 /* invalidate caches */ +#define MS_INVALCURPROC 0x8 /* invalidate cache for curproc only */ #if (_POSIX_C_SOURCE <= 2) && !defined(_XPG4_2) || defined(__EXTENSIONS__) /* functions to mctl */ diff --git a/usr/src/uts/common/sys/zone.h b/usr/src/uts/common/sys/zone.h index 08677a2f65..a2b7217fd4 100644 --- a/usr/src/uts/common/sys/zone.h +++ b/usr/src/uts/common/sys/zone.h @@ -20,7 +20,7 @@ */ /* * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2011, Joyent Inc. All rights reserved. + * Copyright (c) 2011, 2012, Joyent Inc. All rights reserved. */ #ifndef _SYS_ZONE_H @@ -441,6 +441,11 @@ typedef struct { kstat_named_t zm_avenrun1; kstat_named_t zm_avenrun5; kstat_named_t zm_avenrun15; + kstat_named_t zm_run_ticks; + kstat_named_t zm_run_wait; + kstat_named_t zm_fss_shr_pct; + kstat_named_t zm_fss_pri_hi; + kstat_named_t zm_fss_pri_avg; } zone_misc_kstat_t; typedef struct zone { @@ -671,6 +676,20 @@ typedef struct zone { struct loadavg_s zone_loadavg; /* loadavg for this zone */ uint64_t zone_hp_avenrun[3]; /* high-precision avenrun */ int zone_avenrun[3]; /* FSCALED avg. run queue len */ + + /* + * FSS stats updated once per second by fss_decay_usage. + * zone_runq_cntr is an instantaneous accumulation of the number of + * processes in the run queue per project and is not computed over the + * one second interval. + */ + uint32_t zone_fss_gen; /* FSS generation cntr */ + uint32_t zone_proc_cnt; /* FSS process cntr */ + uint64_t zone_run_ticks; /* tot # of ticks running */ + uint64_t zone_runq_cntr; /* tot # of procs in runq */ + uint32_t zone_fss_shr_pct; /* fss active shr % in intvl */ + uint64_t zone_fss_pri_hi; /* fss high pri this interval */ + uint64_t zone_fss_pri_avg; /* fss avg pri this interval */ } zone_t; /* |