Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --- src/libs/zbxsysinfo/freebsd/memory.c.orig3 2011-05-05 17:40:35.000000000 +0400
- +++ src/libs/zbxsysinfo/freebsd/memory.c 2011-05-05 17:40:43.000000000 +0400
- @@ -149,7 +149,7 @@
- {
- #if defined(HAVE_FUNCTION_SYSCTLBYNAME)
- /* FreeBSD 6.2 i386; FreeBSD 7.0 i386 */
- - u_int totalpages, freepages;
- + u_int totalpages, freepages, cachepages, inactivepages;
- size_t len;
- len = sizeof(totalpages);
- @@ -162,7 +162,17 @@
- if (0 != sysctlbyname("vm.stats.vm.v_free_count", &freepages, &len, NULL, 0))
- return SYSINFO_RET_FAIL;
- - SET_DBL_RESULT(result, (double)(100.0 * freepages) / totalpages);
- + len = sizeof(cachepages);
- +
- + if (0 != sysctlbyname("vm.stats.vm.v_cache_count", &cachepages, &len, NULL, 0))
- + return SYSINFO_RET_FAIL;
- +
- + len = sizeof(inactivepages);
- +
- + if (0 != sysctlbyname("vm.stats.vm.v_inactive_count", &inactivepages, &len, NULL, 0))
- + return SYSINFO_RET_FAIL;
- +
- + SET_DBL_RESULT(result, (double)(100.0 * (freepages + cachepages + inactivepages) / totalpages));
- return SYSINFO_RET_OK;
- #else
- @@ -174,7 +184,7 @@
- {
- #if defined(HAVE_FUNCTION_SYSCTLBYNAME)
- /* FreeBSD 6.2 i386; FreeBSD 7.0 i386 */
- - u_int totalpages, freepages;
- + u_int totalpages, activepages, wiredpages;
- size_t len;
- len = sizeof(totalpages);
- @@ -182,12 +192,17 @@
- if (0 != sysctlbyname("vm.stats.vm.v_page_count", &totalpages, &len, NULL, 0))
- return SYSINFO_RET_FAIL;
- - len = sizeof(freepages);
- + len = sizeof(activepages);
- - if (0 != sysctlbyname("vm.stats.vm.v_free_count", &freepages, &len, NULL, 0))
- + if (0 != sysctlbyname("vm.stats.vm.v_active_count", &activepages, &len, NULL, 0))
- + return SYSINFO_RET_FAIL;
- +
- + len = sizeof(wiredpages);
- +
- + if (0 != sysctlbyname("vm.stats.vm.v_wire_count", &wiredpages, &len, NULL, 0))
- return SYSINFO_RET_FAIL;
- - SET_DBL_RESULT(result, (double)(100.0 * (totalpages - freepages)) / totalpages);
- + SET_DBL_RESULT(result, (double)((100.0 * (activepages + wiredpages)) / totalpages));
- return SYSINFO_RET_OK;
- #else
Add Comment
Please, Sign In to add comment