|
|
9a8d55 |
From f3964e0fa19e0c33470f37014ebcebf0b4253363 Mon Sep 17 00:00:00 2001
|
|
|
9a8d55 |
From: Michal Sekletar <msekleta@redhat.com>
|
|
|
9a8d55 |
Date: Fri, 30 Sep 2016 18:05:44 +0200
|
|
|
9a8d55 |
Subject: [PATCH] sar: make buffers that hold timestamps bigger
|
|
|
9a8d55 |
MIME-Version: 1.0
|
|
|
9a8d55 |
Content-Type: text/plain; charset=UTF-8
|
|
|
9a8d55 |
Content-Transfer-Encoding: 8bit
|
|
|
9a8d55 |
|
|
|
9a8d55 |
On systems that use Korean UTF-8 locale sar will not print timestamp
|
|
|
9a8d55 |
because there is not enough space in the buffer.
|
|
|
9a8d55 |
|
|
|
9a8d55 |
I bumped buffer size to 64 bytes because I figured out that 32 bytes is
|
|
|
9a8d55 |
still not enough to print out timestamp when using some glibc supported
|
|
|
9a8d55 |
locales.
|
|
|
9a8d55 |
|
|
|
9a8d55 |
$ LC_TIME=ko_KR.UTF-8 ./sar 1 1
|
|
|
9a8d55 |
|
|
|
9a8d55 |
Before:
|
|
|
9a8d55 |
Linux 4.7.2-201.fc24.x86_64 (morgoth.usersys.redhat.com) 2016년 09월 30일 _x86_64_ (4 CPU)
|
|
|
9a8d55 |
|
|
|
9a8d55 |
CPU %user %nice %system %iowait %steal %idle
|
|
|
9a8d55 |
all 4.51 0.00 2.51 0.00 0.00 92.98
|
|
|
9a8d55 |
Average: all 4.51 0.00 2.51 0.00 0.00 92.98
|
|
|
9a8d55 |
|
|
|
9a8d55 |
After:
|
|
|
9a8d55 |
Linux 4.7.2-201.fc24.x86_64 (morgoth.usersys.redhat.com) 2016년 09월 30일 _x86_64_ (4 CPU)
|
|
|
9a8d55 |
|
|
|
9a8d55 |
18시 18분 36초 CPU %user %nice %system %iowait %steal %idle
|
|
|
9a8d55 |
18시 18분 37초 all 3.76 0.00 2.26 0.00 0.00 93.98
|
|
|
9a8d55 |
Average: all 3.76 0.00 2.26 0.00 0.00 93.98
|
|
|
9a8d55 |
---
|
|
|
9a8d55 |
sa.h | 2 +-
|
|
|
9a8d55 |
sar.c | 4 ++--
|
|
|
9a8d55 |
2 files changed, 3 insertions(+), 3 deletions(-)
|
|
|
9a8d55 |
|
|
|
9a8d55 |
diff --git a/sa.h b/sa.h
|
|
|
9a8d55 |
index 54e7a4e..c11dbe9 100644
|
|
|
9a8d55 |
--- a/sa.h
|
|
|
9a8d55 |
+++ b/sa.h
|
|
|
9a8d55 |
@@ -199,7 +199,7 @@
|
|
|
9a8d55 |
#define NR_USB_PREALLOC 5
|
|
|
9a8d55 |
|
|
|
9a8d55 |
#define UTSNAME_LEN 65
|
|
|
9a8d55 |
-#define TIMESTAMP_LEN 16
|
|
|
9a8d55 |
+#define TIMESTAMP_LEN 64
|
|
|
9a8d55 |
#define HEADER_LINE_LEN 512
|
|
|
9a8d55 |
|
|
|
9a8d55 |
/* Maximum number of args that can be passed to sadc */
|
|
|
9a8d55 |
diff --git a/sar.c b/sar.c
|
|
|
9a8d55 |
index e8ad83e..8dd998b 100644
|
|
|
9a8d55 |
--- a/sar.c
|
|
|
9a8d55 |
+++ b/sar.c
|
|
|
9a8d55 |
@@ -469,10 +469,10 @@ int write_stats(int curr, int read_from_file, long *cnt, int use_tm_start,
|
|
|
9a8d55 |
}
|
|
|
9a8d55 |
|
|
|
9a8d55 |
/* Set previous timestamp */
|
|
|
9a8d55 |
- if (set_record_timestamp_string(!curr, timestamp[!curr], 16))
|
|
|
9a8d55 |
+ if (set_record_timestamp_string(!curr, timestamp[!curr], TIMESTAMP_LEN))
|
|
|
9a8d55 |
return 0;
|
|
|
9a8d55 |
/* Set current timestamp */
|
|
|
9a8d55 |
- if (set_record_timestamp_string(curr, timestamp[curr], 16))
|
|
|
9a8d55 |
+ if (set_record_timestamp_string(curr, timestamp[curr], TIMESTAMP_LEN))
|
|
|
9a8d55 |
return 0;
|
|
|
9a8d55 |
|
|
|
9a8d55 |
/* Check if we are beginning a new day */
|
|
|
9a8d55 |
--
|
|
|
9a8d55 |
2.9.3
|
|
|
9a8d55 |
|