Limit top display of total swap size by the max swap size system can
handle. Keep both pagesize and the new swap_maxpages in the static variables to save sysctl calls. Submitted by: ota@j.email.ne.jp PR: 223149 MFC after: 2 weeks
This commit is contained in:
parent
9799ec2be8
commit
c2b6ea8fa5
@ -1671,8 +1671,9 @@ static int
|
||||
swapmode(int *retavail, int *retfree)
|
||||
{
|
||||
int n;
|
||||
int pagesize = getpagesize();
|
||||
struct kvm_swap swapary[1];
|
||||
static int pagesize = 0;
|
||||
static u_long swap_maxpages = 0;
|
||||
|
||||
*retavail = 0;
|
||||
*retfree = 0;
|
||||
@ -1683,6 +1684,16 @@ swapmode(int *retavail, int *retfree)
|
||||
if (n < 0 || swapary[0].ksw_total == 0)
|
||||
return (0);
|
||||
|
||||
if (pagesize == 0)
|
||||
pagesize = getpagesize();
|
||||
if (swap_maxpages == 0)
|
||||
GETSYSCTL("vm.swap_maxpages", swap_maxpages);
|
||||
|
||||
/* ksw_total contains the total size of swap all devices which may
|
||||
exceed the maximum swap size allocatable in the system */
|
||||
if ( swapary[0].ksw_total > swap_maxpages )
|
||||
swapary[0].ksw_total = swap_maxpages;
|
||||
|
||||
*retavail = CONVERT(swapary[0].ksw_total);
|
||||
*retfree = CONVERT(swapary[0].ksw_total - swapary[0].ksw_used);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user