diff --git a/man-pages-3.72-memusage-man-pages.patch b/man-pages-3.72-memusage-man-pages.patch new file mode 100644 index 0000000..7fd6188 --- /dev/null +++ b/man-pages-3.72-memusage-man-pages.patch @@ -0,0 +1,462 @@ +From 3e6bb789d1d279635a9c74b1b673b9b0ea5df42c Mon Sep 17 00:00:00 2001 +From: Jan Chaloupka +Date: Mon, 8 Sep 2014 08:40:53 +0200 +Subject: [PATCH] memusage man pages + +--- + man1/memusage.1 | 274 ++++++++++++++++++++++++++++++++++++++++++++++++++++ + man1/memusagestat.1 | 90 +++++++++++++++++ + man1/mtrace.1 | 63 ++++++++++++ + 3 files changed, 427 insertions(+) + create mode 100644 man1/memusage.1 + create mode 100644 man1/memusagestat.1 + create mode 100644 man1/mtrace.1 + +diff --git a/man1/memusage.1 b/man1/memusage.1 +new file mode 100644 +index 0000000..b615204 +--- /dev/null ++++ b/man1/memusage.1 +@@ -0,0 +1,274 @@ ++.\" Copyright (c) 2013, Peter Schiffer ++.\" and Copyright (C) 2014, Michael Kerrisk ++.\" ++.\" %%%LICENSE_START(GPLv2+_DOC_FULL) ++.\" This is free documentation; you can redistribute it and/or ++.\" modify it under the terms of the GNU General Public License as ++.\" published by the Free Software Foundation; either version 2 of ++.\" the License, or (at your option) any later version. ++.\" ++.\" The GNU General Public License's references to "object code" ++.\" and "executables" are to be interpreted as the output of any ++.\" document formatting or typesetting system, including ++.\" intermediate and printed output. ++.\" ++.\" This manual is distributed in the hope that it will be useful, ++.\" but WITHOUT ANY WARRANTY; without even the implied warranty of ++.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++.\" GNU General Public License for more details. ++.\" ++.\" You should have received a copy of the GNU General Public ++.\" License along with this manual; if not, see ++.\" . ++.\" %%%LICENSE_END ++.TH MEMUSAGE 1 2013-04-10 "GNU" "Linux user manual" ++.SH NAME ++memusage \- profile memory usage of a program ++.SH SYNOPSIS ++.BR memusage " [\fIoption\fR]... \fIprogram\fR [\fIprogramoption\fR]..." ++.SH DESCRIPTION ++.B memusage ++is a bash script which profiles memory usage of the program, ++.IR program . ++It preloads the ++.B libmemusage.so ++library into the caller's environment (via the ++.B LD_PRELOAD ++environment variable; see ++.BR ld.so (8)). ++The ++.B libmemusage.so ++library traces memory allocation by intercepting calls to ++.BR malloc (3), ++.BR calloc (3), ++.BR free (3), ++and ++.BR realloc (3); ++optionally, calls to ++.BR mmap (2), ++.BR mremap (2), ++and ++.BR munmap (2) ++can also be intercepted. ++.PP ++.B memusage ++can output the collected data in textual form, or it can use ++.BR memusagestat (1) ++(see the ++.B -p ++option, below) ++to create a PNG file containing graphical representation ++of the collected data. ++.SS Memory usage summary ++The "Memory usage summary" line output by ++.BR memusage ++contains three fields: ++.RS 4 ++.TP ++\fBheap total\fR ++Sum of \fIsize\fR arguments of all ++.BR malloc (3) ++calls, ++products of arguments (\fInmemb\fR*\fIsize\fR) of all ++.BR calloc (3) ++calls, ++and sum of \fIlength\fR arguments of all ++.BR mmap (2) ++calls. ++In the case of ++.BR realloc (3) ++and ++.BR mremap (2), ++if the new size of an allocation is larger than the previous size, ++the sum of all such differences (new size minus old size) is added. ++.TP ++.B "heap peak" ++Maximum of all \fIsize\fR arguments of ++.BR malloc (3), ++all products of \fInmemb\fR*\fIsize\fR of ++.BR calloc (3), ++all \fIsize\fR arguments of ++.BR realloc (3), ++.I length ++arguments of ++.BR mmap (2), ++and ++\fInew_size\fR arguments of ++.BR mremap (2). ++.TP ++.B "stack peak" ++Before the first call to any monitored function, ++the stack pointer address (base stack pointer) is saved. ++After each function call, the actual stack pointer address is read and ++the difference from the base stack pointer computed. ++The maximum of these differences is then the stack peak. ++.RE ++.PP ++Immediately following this summary line, a table shows the number calls, ++total memory allocated or deallocated, ++and number of failed calls for each intercepted function. ++For ++.BR realloc (3) ++and ++.BR mremap (2), ++the additional field "nomove" shows reallocations that ++changed the address of a block, ++and the additional "dec" field shows reallocations that ++decreased the size of the block. ++For ++.BR realloc (3), ++the additional field "free" shows reallocations that ++caused a block to be freed (i.e., the reallocated size was 0). ++ ++ ++The "realloc/total memory" of the table output by ++.B memusage ++does not reflect cases where ++.BR realloc (3) ++is used to reallocate a block of memory ++to have a smaller size than previously. ++This can cause sum of all "total memory" cells (excluding "free") ++to be larger than the "free/total memory" cell. ++.SS Histogram for block sizes ++The "Histogram for block sizes" provides a breakdown of memory ++allocations into various bucket sizes. ++.SH OPTIONS ++.TP ++.BI \-n\ name \fR,\ \fB\-\-progname= name ++Name of the program file to profile. ++.TP ++.BI \-p\ file \fR,\ \fB\-\-png= file ++Generate PNG graphic and store it in ++.IR file . ++.TP ++.BI \-d\ file \fR,\ \fB\-\-data= file ++Generate binary data file and store it in ++.IR file . ++.TP ++.BI \-u\fR,\ \fB\-\-unbuffered ++Do not buffer output. ++.TP ++.BI \-b\ size \fR,\ \fB\-\-buffer= size ++Collect ++.I size ++entries before writing them out. ++.TP ++.BI \fB\-\-no-timer ++Disable timer-based ++.RB ( SIGPROF ) ++sampling of stack pointer value. ++.TP ++.BI \-m\fR,\ \fB\-\-mmap ++Also trace ++.BR mmap (2), ++.BR mremap (2), ++and ++.BR mmap (2). ++.TP ++.BI \-?\fR,\ \fB\-\-help ++Print help and exit. ++.TP ++.BI \fB\-\-usage ++Print a short usage message and exit. ++.TP ++.BI \-V\fR,\ \fB\-\-version ++Print version information and exit. ++.TP ++The following options only apply when generating graphical output: ++.TP ++.BI \-t\fR,\ \fB\-\-time\-based ++Use time (rather than number of function calls) as the scale for the X axis. ++.TP ++.BI \-T\fR,\ \fB\-\-total ++Also draw a graph of total memory use. ++.TP ++.BI \fB\-\-title= name ++Use ++.I name ++as the title of the graph. ++.TP ++.BI \-x\ size \fR,\ \fB\-\-x\-size= size ++Make the graph ++.I size ++pixels wide. ++.TP ++.BI \-y\ size \fR,\ \fB\-\-y\-size= size ++Make the graph ++.I size ++pixels high. ++.SH EXIT STATUS ++Exit status is equal to the exit status of profiled program. ++.SH EXAMPLE ++Below is a simple program that reallocates a block of ++memory in cycles that rise to a peak before then cyclically ++reallocating the memory in smaller blocks that return to zero. ++After compiling the program and running the following commands, ++a graph of the memory usage of the program can be found in the file ++.IR memusage.png : ++ ++.in +4n ++.nf ++$ \fBmemusage --data=memusage.dat ./a.out\fP ++\&... ++Memory usage summary: heap total: 45200, heap peak: 6440, stack peak: 224 ++ total calls total memory failed calls ++ malloc| 1 400 0 ++realloc| 40 44800 0 (nomove:40, dec:19, free:0) ++ calloc| 0 0 0 ++ free| 1 440 ++Histogram for block sizes: ++ 192-207 1 2% ================ ++\&... ++ 2192-2207 1 2% ================ ++ 2240-2255 2 4% ================================= ++ 2832-2847 2 4% ================================= ++ 3440-3455 2 4% ================================= ++ 4032-4047 2 4% ================================= ++ 4640-4655 2 4% ================================= ++ 5232-5247 2 4% ================================= ++ 5840-5855 2 4% ================================= ++ 6432-6447 1 2% ================ ++$ \fBmemusagestat memusage.dat memusage.png\fP ++.fi ++.in ++.SS Program source ++.nf ++#include ++#include ++ ++#define CYCLES 20 ++ ++int ++main(int argc, char *argv[]) ++{ ++ int i, j; ++ int *p; ++ ++ printf("malloc: %zd\\n", sizeof(int) * 100); ++ p = malloc(sizeof(int) * 100); ++ ++ for (i = 0; i < CYCLES; i++) { ++ if (i < CYCLES / 2) ++ j = i; ++ else ++ j--; ++ ++ printf("realloc: %zd\\n", sizeof(int) * (j * 50 + 110)); ++ p = realloc(p, sizeof(int) * (j * 50 + 100)); ++ ++ printf("realloc: %zd\\n", sizeof(int) * ((j+1) * 150 + 110)); ++ p = realloc(p, sizeof(int) * ((j + 1) * 150 + 110)); ++ } ++ ++ free(p); ++ exit(EXIT_SUCCESS); ++} ++.fi ++.SH BUGS ++To report bugs, see ++.UR http://www.gnu.org/software/libc/bugs.html ++.UE ++.SH SEE ALSO ++.BR memusagestat (1), ++.BR mtrace (1) ++.BR ld.so (8) +diff --git a/man1/memusagestat.1 b/man1/memusagestat.1 +new file mode 100644 +index 0000000..e04562f +--- /dev/null ++++ b/man1/memusagestat.1 +@@ -0,0 +1,90 @@ ++.\" Copyright (c) 2013, Peter Schiffer ++.\" ++.\" %%%LICENSE_START(GPLv2+_DOC_FULL) ++.\" This is free documentation; you can redistribute it and/or ++.\" modify it under the terms of the GNU General Public License as ++.\" published by the Free Software Foundation; either version 2 of ++.\" the License, or (at your option) any later version. ++.\" ++.\" The GNU General Public License's references to "object code" ++.\" and "executables" are to be interpreted as the output of any ++.\" document formatting or typesetting system, including ++.\" intermediate and printed output. ++.\" ++.\" This manual is distributed in the hope that it will be useful, ++.\" but WITHOUT ANY WARRANTY; without even the implied warranty of ++.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++.\" GNU General Public License for more details. ++.\" ++.\" You should have received a copy of the GNU General Public ++.\" License along with this manual; if not, see ++.\" . ++.\" %%%LICENSE_END ++.TH MEMUSAGESTAT 1 2013-04-10 "GNU" "Linux programmer's manual" ++.SH NAME ++memusagestat \- generate graphic from memory profiling data ++.SH SYNOPSIS ++.BR memusagestat " [\fIoption\fR]... \fIdatafile\fR [\fIoutfile\fR]" ++.SH DESCRIPTION ++.B memusagestat ++creates a PNG file containing a graphical representation of the ++memory profiling data in the file ++.IR datafile ; ++that file is generated via the ++.I -d ++(or ++.IR --data ) ++option of ++.BR memusage (1). ++ ++The red line in the graph shows the heap usage (allocated memory) ++and the green line shows the stack usage. ++The x-scale is either the number of memory-handling function calls or ++(if the ++.I -t ++option is specified) ++time. ++.SH OPTIONS ++.TP ++.BI \-o\ file \fR,\ \fB\-\-output= file ++Name of the output file. ++.TP ++.BI \-s\ string \fR,\ \fB\-\-string= string ++Use ++.I string ++as the title inside the output graph. ++.TP ++.BI \-t\fR,\ \fB\-\-time ++Use time (rather than number of function calls) as the scale for the X axis. ++.TP ++.BI \-T\fR,\ \fB\-\-total ++Also draw a graph of total memory consumption. ++.TP ++.BI \-x\ size \fR,\ \fB\-\-x-size= size ++Make the output graph ++.I size ++pixels wide. ++.TP ++.BI \-y\ size \fR,\ \fB\-\-y\-size= size ++Make the output graph ++.I size ++pixels high. ++.TP ++.BI \-?\fR,\ \fB\-\-help ++Print a help message and exit. ++.TP ++.BI \fB\-\-usage ++Print a short usage message and exit. ++.TP ++.BI \-V\fR,\ \fB\-\-version ++Print version information and exit. ++.SH EXAMPLE ++See ++.BR memusage (1). ++.SH BUGS ++To report bugs, see ++.UR http://www.gnu.org/software/libc/bugs.html ++.UE ++.SH SEE ALSO ++.BR memusage (1), ++.BR mtrace (1) +diff --git a/man1/mtrace.1 b/man1/mtrace.1 +new file mode 100644 +index 0000000..9755000 +--- /dev/null ++++ b/man1/mtrace.1 +@@ -0,0 +1,63 @@ ++.\" Copyright (c) 2013, Peter Schiffer (pschiffe@redhat.com) ++.\" ++.\" %%%LICENSE_START(GPLv2+_DOC_FULL) ++.\" This is free documentation; you can redistribute it and/or ++.\" modify it under the terms of the GNU General Public License as ++.\" published by the Free Software Foundation; either version 2 of ++.\" the License, or (at your option) any later version. ++.\" ++.\" The GNU General Public License's references to "object code" ++.\" and "executables" are to be interpreted as the output of any ++.\" document formatting or typesetting system, including ++.\" intermediate and printed output. ++.\" ++.\" This manual is distributed in the hope that it will be useful, ++.\" but WITHOUT ANY WARRANTY; without even the implied warranty of ++.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++.\" GNU General Public License for more details. ++.\" ++.\" You should have received a copy of the GNU General Public ++.\" License along with this manual; if not, see ++.\" . ++.\" %%%LICENSE_END ++.TH MTRACE 1 2014-09-01 "GNU" "Linux user manual" ++.SH NAME ++mtrace \- interpret the malloc trace log ++.SH SYNOPSIS ++.BR mtrace " [\fIoption\fR]... [\fIbinary\fR] \fImtracedata\fR" ++.SH DESCRIPTION ++.B mtrace ++is a Perl script used to interpret and provide human readable output ++of the trace log contained in the file ++.IR mtracedata , ++whose contents were produced by ++.BR mtrace (3). ++If ++.I binary ++is provided, the output of ++.B mtrace ++also contains the source file name with line number information ++for problem locations ++(assuming that ++.I binary ++was compiled with debugging information). ++ ++For more information about the ++.BR mtrace (3) ++function and ++.B mtrace ++script usage, see ++.BR mtrace (3). ++.SH OPTIONS ++.TP ++.BI \fB\-\-help ++Print help and exit. ++.TP ++.BI \fB\-\-version ++Print version information and exit. ++.SH BUGS ++For bug reporting instructions, please see: ++. ++.SH SEE ALSO ++.BR memusage (1), ++.BR mtrace (3) +-- +1.9.3 + diff --git a/man-pages.spec b/man-pages.spec index c7126ce..5042b5e 100644 --- a/man-pages.spec +++ b/man-pages.spec @@ -7,7 +7,7 @@ Summary: Man (manual) pages from the Linux Documentation Project Name: man-pages Version: 3.53 -Release: 3%{?dist} +Release: 4%{?dist} License: GPL+ and GPLv2+ and BSD and MIT and Copyright only and IEEE Group: Documentation URL: http://www.kernel.org/doc/man-pages/ @@ -37,6 +37,8 @@ Patch22: man-pages-3.42-connect.patch Patch23: man-pages-3.43-tcp-congestion.patch # resolves: #1099453 Patch24: man-pages-3.57-open.2.patch +# resolves: #661376 +Patch25: man-pages-3.72-memusage-man-pages.patch Autoreq: false BuildArch: noarch @@ -60,6 +62,7 @@ Documentation Project (LDP). %patch22 -p1 %patch23 -p1 %patch24 -p1 +%patch25 -p1 ## Remove man pages we are not going to use ## @@ -122,6 +125,10 @@ cd .. %lang(en) %{_mandir}/en/man*/* %changelog +* Mon Sep 08 2014 jchaloup - 3.53-4 +- resolves: #661376 + new man pages for memusage.1 and memusagestat.1 + * Wed Jul 23 2014 jchaloup - 3.53-3 - resolves: #1099453 new man page for open.2