Print this page
re #13613 rb4516 Tunables needs volatile keyword

*** 20,29 **** --- 20,32 ---- */ /* * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ + /* + * Copyright 2013 Nexenta Systems, Inc. All rights reserved. + */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ /*
*** 53,75 **** extern pgcnt_t avefree; /* 5 sec moving average of free memory */ extern pgcnt_t avefree30; /* 30 sec moving average of free memory */ extern pgcnt_t deficit; /* estimate of needs of new swapped in procs */ extern pgcnt_t nscan; /* number of scans in last second */ extern pgcnt_t desscan; /* desired pages scanned per second */ ! extern pgcnt_t slowscan; ! extern pgcnt_t fastscan; extern pgcnt_t pushes; /* number of pages pushed to swap device */ /* writable copies of tunables */ ! extern pgcnt_t maxpgio; /* max paging i/o per sec before start swaps */ ! extern pgcnt_t lotsfree; /* max free before clock freezes */ ! extern pgcnt_t desfree; /* minimum free pages before swapping begins */ ! extern pgcnt_t minfree; /* no of pages to try to keep free via daemon */ extern pgcnt_t needfree; /* no of pages currently being waited for */ ! extern pgcnt_t throttlefree; /* point at which we block PG_WAIT calls */ ! extern pgcnt_t pageout_reserve; /* point at which we deny non-PG_WAIT calls */ ! extern pgcnt_t pages_before_pager; /* XXX */ /* * TRUE if the pageout daemon, fsflush daemon or the scheduler. These * processes can't sleep while trying to free up memory since a deadlock * will occur if they do sleep. --- 56,83 ---- extern pgcnt_t avefree; /* 5 sec moving average of free memory */ extern pgcnt_t avefree30; /* 30 sec moving average of free memory */ extern pgcnt_t deficit; /* estimate of needs of new swapped in procs */ extern pgcnt_t nscan; /* number of scans in last second */ extern pgcnt_t desscan; /* desired pages scanned per second */ ! extern volatile pgcnt_t slowscan; ! extern volatile pgcnt_t fastscan; extern pgcnt_t pushes; /* number of pages pushed to swap device */ /* writable copies of tunables */ ! extern volatile pgcnt_t maxpgio; /* max paging i/o per sec before */ ! /* start swaps */ ! extern volatile pgcnt_t lotsfree; /* max free before clock freezes */ ! extern volatile pgcnt_t desfree; /* minimum free pages before swapping */ ! /* begins */ ! extern volatile pgcnt_t minfree; /* no of pages to try to keep free */ ! /* via daemon */ extern pgcnt_t needfree; /* no of pages currently being waited for */ ! extern volatile pgcnt_t throttlefree; /* point at which we block PG_WAIT */ ! /* calls */ ! extern volatile pgcnt_t pageout_reserve; /* point at which we deny */ ! /* non-PG_WAIT calls */ ! extern volatile pgcnt_t pages_before_pager; /* XXX */ /* * TRUE if the pageout daemon, fsflush daemon or the scheduler. These * processes can't sleep while trying to free up memory since a deadlock * will occur if they do sleep.