machine.pagesize is now number of bits we need for shifting, ie.

* glibtop_machine.h, open.c, mem.c, procmem.c: machine.pagesize
        is now number of bits we need for shifting, ie. 2^pagesize
        will give pagesize in Kb.
This commit is contained in:
Drazen Kacar
1999-05-07 23:13:46 +00:00
parent 507766bff6
commit 437c7585cc
4 changed files with 19 additions and 15 deletions

View File

@@ -55,7 +55,7 @@ struct _glibtop_machine
kstat_t *syspages; /* memory usage */
kstat_t *bunyip; /* more memory usage */
int pagesize; /* in kilobytes */
int pagesize; /* in bits to shift, ie. 2^pagesize gives Kb */
int ticks; /* clock ticks, as returned by sysconf() */
unsigned long long boot; /* boot time, it's ui32 in kstat */
};

View File

@@ -59,7 +59,7 @@ glibtop_get_mem_s (glibtop *server, glibtop_mem *buf)
memset (buf, 0, sizeof (glibtop_mem));
buf->total = (u_int64_t)sysconf(_SC_PHYS_PAGES) * pagesize;
buf->total = (u_int64_t)sysconf(_SC_PHYS_PAGES) << pagesize;
buf->flags = _glibtop_sysdeps_mem_os_sysconf;
if(!kc)
@@ -77,18 +77,18 @@ glibtop_get_mem_s (glibtop *server, glibtop_mem *buf)
if(kn)
{
#ifdef _LP64
buf->free = kn->value.ui64 * pagesize;
buf->free = kn->value.ui64 << pagesize;
#else
buf->free = kn->value.ui32 * pagesize;
buf->free = kn->value.ui32 << pagesize;
#endif
buf->used = buf->total - buf->free;
}
kn = (kstat_named_t *)kstat_data_lookup(ksp, "pageslocked");
if(kn)
#ifdef _LP64
buf->locked = kn->value.ui64 * pagesize;
buf->locked = kn->value.ui64 << pagesize;
#else
buf->locked = kn->value.ui32 * pagesize;
buf->locked = kn->value.ui32 << pagesize;
#endif
buf->flags += _glibtop_sysdeps_mem_os_kstat;
}
@@ -100,23 +100,23 @@ glibtop_get_mem_s (glibtop *server, glibtop_mem *buf)
kn = (kstat_named_t *)kstat_data_lookup(ksp, "pages_anon");
if(kn)
#ifdef _LP64
buf->user = kn->value.ui64 * pagesize;
buf->user = kn->value.ui64 << pagesize;
#else
buf->user = kn->value.ui32 * pagesize;
buf->user = kn->value.ui32 << pagesize;
#endif
kn = (kstat_named_t *)kstat_data_lookup(ksp, "pages_exec");
if(kn)
#ifdef _LP64
buf->shared = kn->value.ui64 * pagesize;
buf->shared = kn->value.ui64 << pagesize;
#else
buf->shared = kn->value.ui32 * pagesize;
buf->shared = kn->value.ui32 << pagesize;
#endif
kn = (kstat_named_t *)kstat_data_lookup(ksp, "pages_vnode");
if(kn)
#ifdef _LP64
buf->buffer = kn->value.ui64 * pagesize;
buf->buffer = kn->value.ui64 << pagesize;
#else
buf->buffer = kn->value.ui32 * pagesize;
buf->buffer = kn->value.ui32 << pagesize;
#endif
buf->flags += _glibtop_sysdeps_mem_bunyip;
}

View File

@@ -130,10 +130,13 @@ glibtop_open_s (glibtop *server, const char *program_name,
kstat_ctl_t *kc;
kstat_t *ksp;
kstat_named_t *kn;
int i, page;
server->name = program_name;
server->machine.pagesize = sysconf(_SC_PAGESIZE) >> 10;
page = sysconf(_SC_PAGESIZE) >> 10;
for(i = 0; page; ++i, page >>= 1);
server->machine.pagesize = i;
server->machine.ticks = sysconf(_SC_CLK_TCK);
server->machine.kc = kc = kstat_open ();

View File

@@ -42,6 +42,7 @@ void
glibtop_get_proc_mem_s (glibtop *server, glibtop_proc_mem *buf,
pid_t pid)
{
int pagesize = server->machine.pagesize;
struct psinfo psinfo;
memset (buf, 0, sizeof (glibtop_proc_mem));
@@ -49,8 +50,8 @@ glibtop_get_proc_mem_s (glibtop *server, glibtop_proc_mem *buf,
if(glibtop_get_proc_data_psinfo_s(server, &psinfo, pid))
return;
buf->size = buf->vsize = psinfo.pr_size;
buf->resident = buf->rss = psinfo.pr_rssize;
buf->size = buf->vsize = psinfo.pr_size >> pagesize;
buf->resident = buf->rss = psinfo.pr_rssize >> pagesize;
buf->flags = _glibtop_sysdeps_proc_mem;
}