From 8ee4b8b26a7d663a3b56667469ceb363bf63a502 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Fri, 28 Apr 2023 17:55:39 +0200 Subject: gmon: Revert addition of tunables to the manual These tunables had to be removed over GLIBC_PRIVATE ABI stability concerns. (cherry picked from commit b7008a92f505632f32b313d1033d6d15c99a0b31) --- manual/tunables.texi | 59 ---------------------------------------------------- 1 file changed, 59 deletions(-) diff --git a/manual/tunables.texi b/manual/tunables.texi index 8bb2f29ea5..83cdcdac6d 100644 --- a/manual/tunables.texi +++ b/manual/tunables.texi @@ -77,9 +77,6 @@ glibc.malloc.check: 0 (min: 0, max: 3) capabilities seen by @theglibc{} * Memory Related Tunables:: Tunables that control the use of memory by @theglibc{}. -* gmon Tunables:: Tunables that control the gmon profiler, used in - conjunction with gprof - @end menu @node Tunable names @@ -615,59 +612,3 @@ support in the kernel if this tunable has any non-zero value. The default value is @samp{0}, which disables all memory tagging. @end deftp - -@node gmon Tunables -@section gmon Tunables -@cindex gmon tunables - -@deftp {Tunable namespace} glibc.gmon -This tunable namespace affects the behaviour of the gmon profiler. -gmon is a component of @theglibc{} which is normally used in -conjunction with gprof. - -When GCC compiles a program with the @code{-pg} option, it instruments -the program with calls to the @code{mcount} function, to record the -program's call graph. At program startup, a memory buffer is allocated -to store this call graph; the size of the buffer is calculated using a -heuristic based on code size. If during execution, the buffer is found -to be too small, profiling will be aborted and no @file{gmon.out} file -will be produced. In that case, you will see the following message -printed to standard error: - -@example -mcount: call graph buffer size limit exceeded, gmon.out will not be generated -@end example - -Most of the symbols discussed in this section are defined in the header -@code{sys/gmon.h}. However, some symbols (for example @code{mcount}) -are not defined in any header file, since they are only intended to be -called from code generated by the compiler. -@end deftp - -@deftp Tunable glibc.mem.minarcs -The heuristic for sizing the call graph buffer is known to be -insufficient for small programs; hence, the calculated value is clamped -to be at least a minimum size. The default minimum (in units of -call graph entries, @code{struct tostruct}), is given by the macro -@code{MINARCS}. If you have some program with an unusually complex -call graph, for which the heuristic fails to allocate enough space, -you can use this tunable to increase the minimum to a larger value. -@end deftp - -@deftp Tunable glibc.mem.maxarcs -To prevent excessive memory consumption when profiling very large -programs, the call graph buffer is allowed to have a maximum of -@code{MAXARCS} entries. For some very large programs, the default -value of @code{MAXARCS} defined in @file{sys/gmon.h} is too small; in -that case, you can use this tunable to increase it. - -Note the value of the @code{maxarcs} tunable must be greater or equal -to that of the @code{minarcs} tunable; if this constraint is violated, -a warning will printed to standard error at program startup, and -the @code{minarcs} value will be used as the maximum as well. - -Setting either tunable too high may result in a call graph buffer -whose size exceeds the available memory; in that case, an out of memory -error will be printed at program startup, the profiler will be -disabled, and no @file{gmon.out} file will be generated. -@end deftp -- cgit v1.2.3-65-gdbad