53 lines
1.9 KiB
Diff
53 lines
1.9 KiB
Diff
From 1bdc66b453275d2095f488df92bb436408ddd8c8 Mon Sep 17 00:00:00 2001
|
|
From: Felix Fietkau <nbd@nbd.name>
|
|
Date: Tue, 25 May 2021 18:07:58 +0200
|
|
Subject: [PATCH 152/201] perf jevents: Fix getting maximum number of fds
|
|
|
|
mainline inclusion
|
|
from mainline-v5.13-rc4
|
|
commit 75ea44e356b5de8c817f821c9dd68ae329e82add
|
|
category: bugfix
|
|
bugzilla: https://gitee.com/openeuler/kernel/issues/I8C0CX
|
|
|
|
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=75ea44e356b5de8c817f821c9dd68ae329e82add
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
On some hosts, rlim.rlim_max can be returned as RLIM_INFINITY.
|
|
By casting it to int, it is interpreted as -1, which will cause get_maxfds
|
|
to return 0, causing "Invalid argument" errors in nftw() calls.
|
|
Fix this by casting the second argument of min() to rlim_t instead.
|
|
|
|
Fixes: 80eeb67fe577 ("perf jevents: Program to convert JSON file")
|
|
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
|
|
Cc: Andi Kleen <ak@linux.intel.com>
|
|
Cc: Jiri Olsa <jolsa@redhat.com>
|
|
Cc: Mark Rutland <mark.rutland@arm.com>
|
|
Cc: Namhyung Kim <namhyung@kernel.org>
|
|
Cc: Peter Zijlstra <peterz@infradead.org>
|
|
Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
|
|
Link: http://lore.kernel.org/lkml/20210525160758.97829-1-nbd@nbd.name
|
|
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
|
|
Signed-off-by: hongrongxuan <hongrongxuan@huawei.com>
|
|
---
|
|
tools/perf/pmu-events/jevents.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/tools/perf/pmu-events/jevents.c b/tools/perf/pmu-events/jevents.c
|
|
index 572b6d41d725..d547dc5e6efa 100644
|
|
--- a/tools/perf/pmu-events/jevents.c
|
|
+++ b/tools/perf/pmu-events/jevents.c
|
|
@@ -894,7 +894,7 @@ static int get_maxfds(void)
|
|
struct rlimit rlim;
|
|
|
|
if (getrlimit(RLIMIT_NOFILE, &rlim) == 0)
|
|
- return min((int)rlim.rlim_max / 2, 512);
|
|
+ return min(rlim.rlim_max / 2, (rlim_t)512);
|
|
|
|
return 512;
|
|
}
|
|
--
|
|
2.27.0
|
|
|