summaryrefslogtreecommitdiff
path: root/tools/vm
diff options
context:
space:
mode:
authorRong Tao <rongtao@cestc.cn>2022-11-08 20:47:57 +0800
committerVlastimil Babka <vbabka@suse.cz>2022-11-10 10:00:38 +0100
commit654058e67b9490a655d9a01e838168fb499f2aa3 (patch)
tree6e8bbdeb1cd27f4d167a184711b45a62d1d985a3 /tools/vm
parent247f34f7b80357943234f93f247a1ae6b6c3a740 (diff)
tools/vm/slabinfo: indicates the cause of the EACCES error
If you don't run slabinfo with a superuser, return 0 when read_slab_dir() reads get_obj_and_str("slabs", &t), because fopen() fails (sometimes EACCES), causing slabcache() to return directly, without any error during this time, we should tell the user about the EACCES problem instead of running successfully($?=0) without any error printing. For example: $ ./slabinfo Permission denied, Try using superuser <== What this submission did $ sudo ./slabinfo Name Objects Objsize Space Slabs/Part/Cpu O/S O %Fr %Ef Flg Acpi-Namespace 5950 48 286.7K 65/0/5 85 0 0 99 Acpi-Operand 13664 72 999.4K 231/0/13 56 0 0 98 ... Signed-off-by: Rong Tao <rongtao@cestc.cn> Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
Diffstat (limited to 'tools/vm')
-rw-r--r--tools/vm/slabinfo.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/tools/vm/slabinfo.c b/tools/vm/slabinfo.c
index 0fffaeedee76..cfaeaea71042 100644
--- a/tools/vm/slabinfo.c
+++ b/tools/vm/slabinfo.c
@@ -157,9 +157,11 @@ static unsigned long read_obj(const char *name)
{
FILE *f = fopen(name, "r");
- if (!f)
+ if (!f) {
buffer[0] = 0;
- else {
+ if (errno == EACCES)
+ fatal("%s, Try using superuser\n", strerror(errno));
+ } else {
if (!fgets(buffer, sizeof(buffer), f))
buffer[0] = 0;
fclose(f);