diff options
| author | Jerry Jelinek <jerry.jelinek@joyent.com> | 2017-09-28 12:56:20 +0000 |
|---|---|---|
| committer | Jerry Jelinek <jerry.jelinek@joyent.com> | 2017-09-28 12:57:39 +0000 |
| commit | 5ae84a5233b723c890288b775cb5317db2e54d61 (patch) | |
| tree | f28877eae0fdbba8a58726efc3e464145fda1766 /usr/src/uts/common/sys/zone.h | |
| parent | 597e7db3df75fb2976c1c29ef285e8bc6c289b4d (diff) | |
| download | illumos-joyent-5ae84a5233b723c890288b775cb5317db2e54d61.tar.gz | |
OS-6306 accurate in-kernel zone RSS tracking
Reviewed by: Dan McDonald <danmcd@joyent.com>
Reviewed by: Jason King <jason.king@joyent.com>
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>
Approved by: Dan McDonald <danmcd@joyent.com>
Diffstat (limited to 'usr/src/uts/common/sys/zone.h')
| -rw-r--r-- | usr/src/uts/common/sys/zone.h | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/usr/src/uts/common/sys/zone.h b/usr/src/uts/common/sys/zone.h index 3bf7979174..32b2b7bf38 100644 --- a/usr/src/uts/common/sys/zone.h +++ b/usr/src/uts/common/sys/zone.h @@ -22,7 +22,7 @@ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2014 Nexenta Systems, Inc. All rights reserved. * Copyright 2014 Igor Kozhukhov <ikozhukhov@gmail.com>. - * Copyright 2016, Joyent, Inc. + * Copyright 2017, Joyent, Inc. */ #ifndef _SYS_ZONE_H @@ -51,15 +51,27 @@ extern "C" { * NOTE * * The contents of this file are private to the implementation of - * Solaris and are subject to change at any time without notice. + * illumos and are subject to change at any time without notice. * Applications and drivers using these interfaces may fail to * run on future releases. */ /* Available both in kernel and for user space */ -/* zone id restrictions and special ids */ -#define MAX_ZONEID 9999 +/* + * zone id restrictions and special ids. + * See 'maxzones' for run-time zone limit. + * + * The current 8k value for MAX_ZONES was originally derived from the virtual + * interface limit in IP when "shared-stack" was the only supported networking + * for zones. The virtual interface limit is the number of addresses allowed + * on an interface (see MAX_ADDRS_PER_IF). Even with exclusive stacks, an 8k + * zone limit is still a reasonable choice at this time, given other limits + * within the kernel. Since we only support 8192 zones (which includes GZ), + * there is no point in allowing MAX_ZONEID > 8k. + */ +#define MAX_ZONES 8192 +#define MAX_ZONEID (MAX_ZONES - 1) #define MIN_USERZONEID 1 /* lowest user-creatable zone ID */ #define MIN_ZONEID 0 /* minimum zone ID on system */ #define GLOBAL_ZONEID 0 @@ -647,7 +659,7 @@ typedef struct zone { zone_zfs_kstat_t *zone_zfs_stats; /* - * Solaris Auditing per-zone audit context + * illumos Auditing per-zone audit context */ struct au_kcontext *zone_audit_kctxt; /* @@ -963,6 +975,14 @@ extern void mount_completed(zone_t *); extern int zone_walk(int (*)(zone_t *, void *), void *); +struct page; +extern void zone_add_page(struct page *); +extern void zone_rm_page(struct page *); + +/* Interfaces for page scanning */ +extern uint_t zone_num_over_cap; +extern uint8_t zone_over_cap[MAX_ZONES]; + extern rctl_hndl_t rc_zone_locked_mem; extern rctl_hndl_t rc_zone_max_swap; extern rctl_hndl_t rc_zone_phys_mem; |
