Print this page
NEX-1974 Support for more than 16 groups with AUTH_SYS
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>
re #13613 rb4516 Tunables needs volatile keyword
@@ -64,10 +64,11 @@
#include <sys/fdbuffer.h>
#include <sys/cyclic_impl.h>
#include <sys/disp.h>
#include <sys/tuneable.h>
#include <sys/systeminfo.h>
+#include <rpc/auth_sys.h>
#include <sys/vmem.h>
#include <sys/clock.h>
#include <sys/clock_impl.h>
#include <sys/serializer.h>
@@ -157,11 +158,11 @@
#define HIRES_HZ_DEFAULT 1000
int hz = HZ_DEFAULT;
int hires_hz = HIRES_HZ_DEFAULT;
-int hires_tick = 0;
+volatile int hires_tick = 0;
int cpu_decay_factor = 10; /* this is no longer tied to clock */
int max_hres_adj; /* maximum adjustment of hrtime per tick */
int tick_per_msec; /* clock ticks per millisecond (zero if hz < 1000) */
/*
@@ -265,17 +266,17 @@
cu_init,
callout_mp_init,
0
};
-int maxusers; /* kitchen-sink knob for dynamic configuration */
+volatile int maxusers; /* kitchen-sink knob for dynamic configuration */
/*
* pidmax -- highest pid value assigned by the system
* Settable in /etc/system
*/
-int pidmax = DEFAULT_MAXPID;
+volatile int pidmax = DEFAULT_MAXPID;
/*
* jump_pid - if set, this value is where pid numbers should start
* after the first few system pids (0-3) are used. If 0, pids are
* chosen in the usual way. This variable can be used to quickly
@@ -287,35 +288,35 @@
/*
* autoup -- used in struct var for dynamic config of the age a delayed-write
* buffer must be in seconds before bdflush will write it out.
*/
#define DEFAULT_AUTOUP 30
-int autoup = DEFAULT_AUTOUP;
+volatile int autoup = DEFAULT_AUTOUP;
/*
* bufhwm -- tuneable variable for struct var for v_bufhwm.
* high water mark for buffer cache mem usage in units of K bytes.
*
* bufhwm_pct -- ditto, but given in % of physmem.
*/
-int bufhwm = 0;
-int bufhwm_pct = 0;
+volatile int bufhwm = 0;
+volatile int bufhwm_pct = 0;
/*
* Process table.
*/
int maxpid;
-int max_nprocs; /* set in param_init() */
-int maxuprc; /* set in param_init() */
-int reserved_procs;
+volatile int max_nprocs; /* set in param_init() */
+volatile int maxuprc; /* set in param_init() */
+volatile int reserved_procs;
int nthread = 1;
/*
* UFS tunables
*/
-int ufs_ninode; /* declared here due to backwards compatibility */
-int ndquot; /* declared here due to backwards compatibility */
+volatile int ufs_ninode; /* declared here due to backwards compatibility */
+volatile int ndquot; /* declared here due to backwards compatibility */
/*
* Exec switch table. This is used by the generic exec module
* to switch out to the desired executable type, based on the
* magic number. The currently supported types are ELF, a.out
@@ -408,29 +409,29 @@
* simple via /etc/system
*/
#define RLIM_FD_CUR 0x10000
#define RLIM_FD_MAX 0x10000
-uint_t rlim_fd_cur = RLIM_FD_CUR;
-uint_t rlim_fd_max = RLIM_FD_MAX;
+volatile uint_t rlim_fd_cur = RLIM_FD_CUR;
+volatile uint_t rlim_fd_max = RLIM_FD_MAX;
/*
* (Default resource limits were formerly declared here, but are now provided by
* the more general resource controls framework.)
*/
/*
* STREAMS tunables
*/
-int nstrpush = 9; /* maximum # of modules/drivers on a stream */
-ssize_t strctlsz = 1024; /* maximum size of user-generated M_PROTO */
-ssize_t strmsgsz = 0x10000; /* maximum size of user-generated M_DATA */
+volatile int nstrpush = 9; /* maximum # of modules/drivers on a stream */
+volatile ssize_t strctlsz = 1024; /* maximum size of user-generated M_PROTO */
+volatile ssize_t strmsgsz = 0x10000; /* maximum size of user-generated M_DATA */
/* for `strmsgsz', zero means unlimited */
/*
* Filesystem tunables
*/
-int rstchown = 1; /* POSIX_CHOWN_RESTRICTED is enabled */
+volatile int rstchown = 1; /* POSIX_CHOWN_RESTRICTED is enabled */
int ngroups_max = NGROUPS_MAX_DEFAULT;
/*
* generic scheduling stuff
*
@@ -484,17 +485,17 @@
/*
* Rate at which fsflush is run, in seconds.
*/
#define DEFAULT_TUNE_T_FSFLUSHR 1
-int tune_t_fsflushr = DEFAULT_TUNE_T_FSFLUSHR;
+volatile int tune_t_fsflushr = DEFAULT_TUNE_T_FSFLUSHR;
/*
* The minimum available resident (not swappable) memory to maintain
* in order to avoid deadlock. In pages.
*/
-int tune_t_minarmem = 25;
+volatile int tune_t_minarmem = 25;
/*
* The minimum available swappable memory to maintain in order to avoid
* deadlock. In pages.
*/
@@ -505,11 +506,11 @@
/*
* Number of currently available pages that cannot be 'locked'
* This is set in init_pages_pp_maximum, and must be initialized
* to zero here to detect an override in /etc/system
*/
-pgcnt_t pages_pp_maximum = 0;
+volatile pgcnt_t pages_pp_maximum = 0;
int boothowto; /* boot flags passed to kernel */
struct var v; /* System Configuration Information */
/*