From 1ef20d1f141ab121f572b3b68358f45271e1e8ab Mon Sep 17 00:00:00 2001 From: "Guy M. Broome" Date: Thu, 22 Mar 2018 13:57:53 -0400 Subject: [PATCH] Solaris: Fix virt and resident memory sizes. Was using KiB, needed pages. --- solaris/SolarisProcessList.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/solaris/SolarisProcessList.c b/solaris/SolarisProcessList.c index 9a0db314..f46d6f71 100644 --- a/solaris/SolarisProcessList.c +++ b/solaris/SolarisProcessList.c @@ -299,6 +299,8 @@ void ProcessList_goThroughEntries(ProcessList* this) { fread(&_prusage,sizeof(prusage_t),1,fp); fclose(fp); + double kb_per_page = ((double)PAGE_SIZE / (double)1024.0); + if(!preExisting) { sproc->kernel = false; proc->pid = _psinfo.pr_pid; @@ -321,8 +323,8 @@ void ProcessList_goThroughEntries(ProcessList* this) { sproc->zname = SolarisProcessList_readZoneName(spl->kd,sproc); proc->majflt = _prusage.pr_majf; proc->minflt = _prusage.pr_minf; - proc->m_resident = (_psinfo.pr_rssize)/8; - proc->m_size = (_psinfo.pr_size)/8; + proc->m_resident = (long)(((double)_psinfo.pr_rssize)/kb_per_page); + proc->m_size = (long)(((double)_psinfo.pr_size)/kb_per_page); proc->priority = _psinfo.pr_lwp.pr_pri; proc->nice = _psinfo.pr_lwp.pr_nice; proc->processor = _psinfo.pr_lwp.pr_onpro; @@ -351,8 +353,8 @@ void ProcessList_goThroughEntries(ProcessList* this) { sproc->zname = SolarisProcessList_readZoneName(spl->kd,sproc); proc->majflt = _prusage.pr_majf; proc->minflt = _prusage.pr_minf; - proc->m_resident = (_psinfo.pr_rssize)/8; - proc->m_size = (_psinfo.pr_size)/8; + proc->m_resident = (long)(((double)_psinfo.pr_rssize)/kb_per_page); + proc->m_size = (long)(((double)_psinfo.pr_size)/kb_per_page); proc->priority = _psinfo.pr_lwp.pr_pri; proc->nice = _psinfo.pr_lwp.pr_nice; proc->processor = _psinfo.pr_lwp.pr_onpro;