summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko2023-01-24 12:47:32 +0100
committerDenys Vlasenko2023-01-24 12:47:32 +0100
commitc2739e11dee92770839ac9b2dbf020459baec7b9 (patch)
treee0bffef46052206f0f04d2b7aeee2e826c92b45e
parent1040f78176c7dad57aadbbd023e8ac094606ac25 (diff)
downloadbusybox-c2739e11dee92770839ac9b2dbf020459baec7b9.zip
busybox-c2739e11dee92770839ac9b2dbf020459baec7b9.tar.gz
nmeter: increase maximum /proc file size (needed for large machines)
function old new delta get_file 185 201 +16 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--procps/nmeter.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/procps/nmeter.c b/procps/nmeter.c
index 68e6f33..e52c868 100644
--- a/procps/nmeter.c
+++ b/procps/nmeter.c
@@ -59,9 +59,9 @@
typedef unsigned long long ullong;
-enum { /* Preferably use powers of 2 */
+enum {
PROC_MIN_FILE_SIZE = 256,
- PROC_MAX_FILE_SIZE = 16 * 1024,
+ PROC_MAX_FILE_SIZE = 64 * 1024, /* 16k was a bit too small for a 128-CPU machine */
};
typedef struct proc_file {
@@ -176,7 +176,10 @@ static void readfile_z(proc_file *pf, const char* fname)
close(fd);
if (rdsz > 0) {
if (rdsz == sz-1 && sz < PROC_MAX_FILE_SIZE) {
- sz *= 2;
+ if (sz < 4 * 1024)
+ sz *= 2;
+ else
+ sz += 4 * 1024;
buf = xrealloc(buf, sz);
goto again;
}