72 lines
2.3 KiB
Diff
72 lines
2.3 KiB
Diff
--- proc/sysinfo.c
|
|
+++ proc/sysinfo.c 2012-06-04 09:45:53.448364904 +0000
|
|
@@ -676,8 +676,16 @@ nextline:
|
|
if(kb_inactive==~0UL){
|
|
kb_inactive = kb_inact_dirty + kb_inact_clean + kb_inact_laundry;
|
|
}
|
|
- kb_swap_used = kb_swap_total - kb_swap_free;
|
|
- kb_main_used = kb_main_total - kb_main_free;
|
|
+ if (kb_swap_total > kb_swap_free) {
|
|
+ kb_swap_used = kb_swap_total - kb_swap_free;
|
|
+ } else {
|
|
+ kb_swap_used = 0;
|
|
+ }
|
|
+ if (kb_main_total > kb_main_free) {
|
|
+ kb_main_used = kb_main_total - kb_main_free;
|
|
+ } else {
|
|
+ kb_main_used = 0;
|
|
+ }
|
|
kb_main_cached += kb_swap_reclaimable + kb_swap_cached + kb_nfs_unstable;
|
|
}
|
|
|
|
--- free.c
|
|
+++ free.c 2012-06-04 09:50:26.588010539 +0000
|
|
@@ -310,24 +310,44 @@ int main(int argc, char **argv)
|
|
* to print the high info, even if it is zero.
|
|
*/
|
|
if (flags & FREE_LOHI) {
|
|
+ unsigned long kb_low_used;
|
|
+ unsigned long kb_high_used;
|
|
+
|
|
+ if (kb_low_total > kb_low_free)
|
|
+ kb_low_used = kb_low_total - kb_low_free;
|
|
+ else
|
|
+ kb_low_used = 0;
|
|
+
|
|
+ if (kb_high_total > kb_high_free)
|
|
+ kb_high_used = kb_high_total - kb_high_free;
|
|
+ else
|
|
+ kb_high_used = 0;
|
|
+
|
|
printf("%-7s", _("Low:"));
|
|
printf(" %10s", scale_size(kb_low_total, flags, args));
|
|
- printf(" %10s", scale_size(kb_low_total - kb_low_free, flags, args));
|
|
+ printf(" %10s", scale_size(kb_low_used, flags, args));
|
|
printf(" %10s", scale_size(kb_low_free, flags, args));
|
|
printf("\n");
|
|
|
|
printf("%-7s", _("High:"));
|
|
printf(" %10s", scale_size(kb_high_total, flags, args));
|
|
- printf(" %10s", scale_size(kb_high_total - kb_high_free, flags, args));
|
|
+ printf(" %10s", scale_size(kb_high_used, flags, args));
|
|
printf(" %10s", scale_size(kb_high_free, flags, args));
|
|
printf("\n");
|
|
}
|
|
|
|
if (!(flags & FREE_OLDFMT)) {
|
|
unsigned KLONG buffers_plus_cached = kb_main_buffers + kb_main_cached;
|
|
+ unsigned long kb_used_minus_bufcache;
|
|
+
|
|
+ if (kb_main_used > buffers_plus_cached)
|
|
+ kb_used_minus_bufcache = kb_main_used - buffers_plus_cached;
|
|
+ else
|
|
+ kb_used_minus_bufcache = 0;
|
|
+
|
|
printf(_("-/+ buffers/cache:"));
|
|
printf(" %10s",
|
|
- scale_size(kb_main_used - buffers_plus_cached, flags, args));
|
|
+ scale_size(kb_used_minus_bufcache, flags, args));
|
|
printf(" %10s",
|
|
scale_size(kb_main_free + buffers_plus_cached, flags, args));
|
|
printf("\n");
|