summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/sys/project.h
diff options
context:
space:
mode:
authorakolb <none@none>2007-03-09 15:55:28 -0800
committerakolb <none@none>2007-03-09 15:55:28 -0800
commitc97ad5cdc75eb73e3cc38542ca3ba783574b0a7a (patch)
tree5ba1653d892978d87d6061c8c7f3821f4b3e354c /usr/src/uts/common/sys/project.h
parent68d3ac02fc9db49ae9dccaecff999963114930a7 (diff)
downloadillumos-joyent-c97ad5cdc75eb73e3cc38542ca3ba783574b0a7a.tar.gz
PSARC/2004/402 CPU Caps
6327235 PSARC/2004/402 CPU caps 6464161 Dead KSLICE code should be removed 6514387 FX class contains dead code to keep list of member threads 6518395 kstat_zone_add performs KM_SLEEP allocation when it should not
Diffstat (limited to 'usr/src/uts/common/sys/project.h')
-rw-r--r--usr/src/uts/common/sys/project.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/usr/src/uts/common/sys/project.h b/usr/src/uts/common/sys/project.h
index 68aaef7730..15a0bf2193 100644
--- a/usr/src/uts/common/sys/project.h
+++ b/usr/src/uts/common/sys/project.h
@@ -39,6 +39,7 @@ extern "C" {
#include <sys/mutex.h>
#include <sys/rctl.h>
#include <sys/ipc_rctl.h>
+#include <sys/zone.h>
typedef struct kproject_kstat {
kstat_named_t kpk_zonename;
@@ -58,25 +59,29 @@ typedef struct kproject_data { /* Datum protected by: */
} kproject_data_t;
+struct cpucap;
+
/*
* The first two fields of this structure must not be reordered.
*/
typedef struct kproject {
projid_t kpj_id; /* project ID */
zoneid_t kpj_zoneid; /* zone ID */
+ struct zone *kpj_zone; /* zone pointer */
uint_t kpj_count; /* reference counter */
uint32_t kpj_shares; /* number of shares */
rctl_set_t *kpj_rctls; /* resource control set */
struct kproject *kpj_prev; /* previous project */
struct kproject *kpj_next; /* next project */
kproject_data_t kpj_data; /* subsystem-specfic data */
- kmutex_t kpj_poolbind; /* synch. with pools */
+ kmutex_t kpj_poolbind; /* synchronization with pools */
rctl_qty_t kpj_nlwps; /* protected by project's zone's */
/* zone_nlwps_lock */
rctl_qty_t kpj_nlwps_ctl; /* protected by kpj_rctls->rcs_lock */
rctl_qty_t kpj_ntasks; /* protected by project's zone's */
/* zone_nlwps_lock */
rctl_qty_t kpj_ntasks_ctl; /* protected by kpj_rctls->rcs_lock */
+ struct cpucap *kpj_cpucap; /* CPU cap data */
} kproject_t;
#ifdef _KERNEL
@@ -87,8 +92,6 @@ typedef struct kproject {
#define PROJECT_HOLD_FIND 1
#define PROJECT_HOLD_INSERT 2
-struct zone;
-
void project_init(void);
kproject_t *project_hold(kproject_t *);
kproject_t *project_hold_by_id(projid_t, struct zone *, int);