Messages in this thread Patch in this message | | | From | "Doug Smythies" <> | Subject | RE: [PATCH] tools/power turbostat: Increase the limit for fd opened | Date | Fri, 22 Sep 2023 13:48:05 -0700 |
| |
On 2023.09.22 02:28 Wyes Karny wrote:
> When running turbostat, a system with 512 cpus reaches the limit for
Suggest" ... reaches the default limit for..."
> maximum number of file descriptors that can be opened. To solve this > problem, the limit is raised to 2^15, which is a large enough number. > > Below data is collected from AMD server systems while running turbostat: > > |-----------+-------------------------------| > | # of cpus | # of opened fds for turbostat | > |-----------+-------------------------------| > | 128 | 260 | > |-----------+-------------------------------| > | 192 | 388 | > |-----------+-------------------------------| > | 512 | 1028 | > |-----------+-------------------------------|
The number of open files is a function of what is being "show"ed or "hide"en. They can also increase beyond the above 2 X (# of CPUs) + 4 number via the --add directive. > > So, the new max limit would be sufficient up to 2^14 cpus.
Well, not quiet, but the point is valid.
Normally, I would assume that a server with a large number of CPUs would have set a much higher limit of the number of open files than the default. I use 131,072 and so this patch reduces the maximum.
Unpatched: root@s19:~# cat /proc/47043/limits | grep "Max open files" Max open files 131072 131072 files
Patched: root@s19:~# cat /proc/47032/limits | grep "Max open files" Max open files 32768 32768 files
Anyway:
Reviewed-by: Doug Smythies <dsmythies@telus.net> Tested-by: Doug Smythies <dsmythies@telus.net>
> > Signed-off-by: Wyes Karny <wyes.karny@amd.com> > --- > tools/power/x86/turbostat/turbostat.c | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c > index 9a10512e3407..23f1fe58289a 100644 > --- a/tools/power/x86/turbostat/turbostat.c > +++ b/tools/power/x86/turbostat/turbostat.c > @@ -6717,6 +6717,18 @@ void cmdline(int argc, char **argv) > } > } > > +void set_rlimit(void) > +{ > + struct rlimit limit; > + > + limit.rlim_cur = 0x8000; > + limit.rlim_max = 0x8000; > + > + if (setrlimit(RLIMIT_NOFILE, &limit) < 0) { > + err(1, "Failed to set rlimit"); > + } > +} > + > int main(int argc, char **argv) > { > outf = stderr; > @@ -6729,6 +6741,9 @@ int main(int argc, char **argv) > > probe_sysfs(); > > + if (!getuid()) > + set_rlimit(); > + > turbostat_init(); > > msr_sum_record(); > -- > 2.34.1 >
| |