From f89afb07482f6709905159549321809dad144317 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Dejean?= Date: Mon, 13 Jun 2005 09:09:51 +0000 Subject: Added pagein/pageout for linux 2.6. * swap.c: (glibtop_get_swap_s): Added pagein/pageout for linux 2.6. --- sysdeps/linux/ChangeLog | 4 ++++ sysdeps/linux/swap.c | 38 +++++++++++++++++++++++++++++++------- 2 files changed, 35 insertions(+), 7 deletions(-) diff --git a/sysdeps/linux/ChangeLog b/sysdeps/linux/ChangeLog index e155087d..c7224ec8 100644 --- a/sysdeps/linux/ChangeLog +++ b/sysdeps/linux/ChangeLog @@ -1,3 +1,7 @@ +2005-06-13 Benoît Dejean + + * swap.c: (glibtop_get_swap_s): Added pagein/pageout for linux 2.6. + 2005-05-26 Benoît Dejean * siglist.c: Fixed compilation on mips. Closes #304570. diff --git a/sysdeps/linux/swap.c b/sysdeps/linux/swap.c index b736da77..4c436146 100644 --- a/sysdeps/linux/swap.c +++ b/sysdeps/linux/swap.c @@ -49,6 +49,7 @@ glibtop_init_swap_s (glibtop *server) #define MEMINFO "/proc/meminfo" #define PROC_STAT "/proc/stat" +#define PROC_VMSTAT "/proc/vmstat" void glibtop_get_swap_s (glibtop *server, glibtop_swap *buf) @@ -69,15 +70,38 @@ glibtop_get_swap_s (glibtop *server, glibtop_swap *buf) buf->flags = _glibtop_sysdeps_swap; - file_to_buffer(server, buffer, PROC_STAT); - p = strstr (buffer, "\nswap"); - if (p == NULL) return; + if(server->os_version_code >= LINUX_VERSION_CODE(2, 6, 0)) + { + file_to_buffer (server, buffer, PROC_VMSTAT); - p = skip_token (p); + p = strstr (buffer, "\npswpin"); - buf->pagein = strtoull (p, &p, 0); - buf->pageout = strtoull (p, &p, 0); + if(p) + { + p = skip_token(p); + buf->pagein = strtoull (p, &p, 0); - buf->flags |= _glibtop_sysdeps_swap_paging; + p = skip_token(p); + buf->pageout = strtoull (p, &p, 0); + + buf->flags |= _glibtop_sysdeps_swap_paging; + } + } + else /* Linux 2.4 */ + { + file_to_buffer (server, buffer, PROC_STAT); + + p = strstr (buffer, "\nswap"); + + if(p) + { + p = skip_token (p); + + buf->pagein = strtoull (p, &p, 0); + buf->pageout = strtoull (p, &p, 0); + + buf->flags |= _glibtop_sysdeps_swap_paging; + } + } } -- cgit v1.2.1