summaryrefslogtreecommitdiffstats
path: root/scripts/contrib/bb-perf
AgeCommit message (Collapse)Author
2020-03-25buildstats-plot.sh: Show spaces and underscores correctly in titles/keysPeter Kjellerstedt
Spaces were previously converted to dashes, and underscores caused the next character in the title/key to be printed using subscript due to the enhanced string support in gnuplot. Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-24buildstats*.sh: fix spacing indentation in the filesLuis Martins
Fix indentation in buildstats.sh and buildstats-plot.sh to convert every line to 4 spaces indentation. Signed-off-by: Luis Martins <luis.martins@criticaltechworks.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-24buildstats*.sh: add recipe parameter to scriptsLuis Martins
Add option to filter the stats results for a single recipe, allowing to easilly visuality the task resource consumption per recipe. This is specially useful when debugging the performance of the overall bitbake build system. Signed-off-by: Luis Martins <luis.martins@criticaltechworks.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-24buildstats*.sh: add accumulate parameter to scriptsLuis Martins
Add option to accumulate stats values per recipe, allowing to sum related values such as memory (main process + childs). This is specially useful when debugging the performance of the overall bitbake build system. Signed-off-by: Luis Martins <luis.martins@criticaltechworks.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-24buildstats-plot.sh: filter by taskLuis Martins
Extend buildstats-plot.sh script to also accept the name of the tasks as parameter. This value will be passed directly to buildstats.sh is already provides this option. Signed-off-by: Luis Martins <luis.martins@criticaltechworks.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-03-24buildstats-plot.sh: fix invoking buildstats.shLuis Martins
Fix the internal call to buildstats.sh by also providing the buildstats folder location in the system, which might differ from the default location. Signed-off-by: Luis Martins <luis.martins@criticaltechworks.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-09meta/lib+scripts: Convert to SPDX license headersRichard Purdie
This adds SPDX license headers in place of the wide assortment of things currently in our script headers. We default to GPL-2.0-only except for the oeqa code where it was clearly submitted and marked as MIT on the most part or some scripts which had the "or later" GPL versioning. The patch also drops other obsolete bits of file headers where they were encoountered such as editor modelines, obsolete maintainer information or the phrase "All rights reserved" which is now obsolete and not required in copyright headers (in this case its actually confusing for licensing as all rights were not reserved). More work is needed for OE-Core but this takes care of the bulk of the scripts and meta/lib directories. The top level LICENSE files are tweaked to match the new structure and the SPDX naming. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-11-30bb-perf: plot histograms base on buildstats dataLeonardo Sandoval
Scripts that produces script data to be consumed by gnuplot. There are two possible plots depending if either the -S parameter is present or not: * without -S: Produces a histogram listing top N recipes/tasks versus stats. The first stat defined in the -s parameter is the one taken into account for ranking * -S: Produces a histogram listing tasks versus stats. In this case, the value of each stat is the sum for that particular stat in all recipes found. Stats values are in descending order defined by the first stat defined on -s EXAMPLES 1. Top recipes' tasks taking into account utime $ buildstats-plot.sh -s utime | gnuplot -p 2. Tasks versus utime:stime $ buildstats-plot.sh -s utime:stime -S | gnuplot -p 3. Tasks versus IO write_bytes:IO read_bytes $ buildstats-plot.sh -s 'IO write_bytes:IO read_bytes' -S | gnuplot -p Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-11-23scripts: Specify the stats to take into accountLeonardo Sandoval
There are many more stats on buildstats that 'Elapsed time', so make the script more flexible to support all stats. Some cmd line examples: $ buildstats.sh -s 'utime' Buildstats' data covers proc's stats in different areas, including CPU times, IO, program system resources and child program system resources. In order to print values on each of these sets from command line, one can use the following: $ buildstats.sh -H -s 'TIME' | less $ buildstats.sh -H -s 'IO' | less and 'RUSAGE' and 'CHILD_RUSAGE' for program and program's child system resources. Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-09-12buildstats: Outputs 'task recipe elapsed-time' from each buildstats' recipeLeonardo Sandoval
Given a 'buildstats' path (created by bitbake when setting USER_CLASSES ?= "buildstats" on local.conf) and task names, outputs '<task> <recipe> <elapsed time>' for all recipes. Elapsed times are in seconds, and task should be given without the 'do_' prefix. Some useful pipelines 1. Tasks with largest elapsed times $ buildstats.sh -b <buildstats> | sort -k3 -n -r | head do_compile perl-5.20.0-r1 221.82 do_configure gettext-native-0.19.4-r0 140.34 do_compile openssl-native-1.0.2a-r0 107.48 do_compile openssl-1.0.2a-r0 102.10 do_configure perl-native-5.20.0-r0 90.70 do_configure gettext-0.19.4-r0 88.17 do_compile gcc-cross-i586-4.9.2-r0 83.98 do_configure m4-native-1.4.17-r0 83.44 do_compile qemu-native-2.2.0-r1 71.69 do_compile glibc-2.21-r0 60.88 2. Min, max, sum per task $ buildstats.sh | datamash -t' ' -g1 min 3 max 3 sum 3 | sort -k4 -n -r do_configure 0.03 140.34 1968.66 do_compile 0.01 221.82 1664.44 do_install 0.03 40.31 330.45 do_populate_sysroot 0.11 34.45 229.23 do_unpack 0.01 36.1 193.54 do_patch 0.01 9.2 62.07 do_fetch 0.01 6.66 32.13 do_populate_lic 0.09 1.65 30.7 Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2013-09-12bb-matrix-plot: Use interpolation for sparse dataPeter Kjellerstedt
If not every combination of BB_NUMBER_THREADS and PARALLEL_MAKE have been tested by bb-matrix.sh, e.g., by using BB_RANGE="04 08 10 12 16" and PM_RANGE="04 08 10 12 16", then the graph that gnuplot generates by default looks very jagged due to the missing data points. By using splines to interpolate the missing data the graph looks a lot better. This should not change graphs where all data points are available in any way, only improve sparse graphs. Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12bb-matrix: Clean before, rather than after, buildingPeter Kjellerstedt
This makes sure the the first build starts from a clean state. Otherwise one could have the first build affected by any leftover state from a previous build. This also leaves a working state behind after the final build. Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-21bb-matrix: Fix min and max calculationsDarren Hart
The BB and PM ranges were originally intended to use leading 0s to ensure all the values were the same string length, making for nice log filenames and columnar dat files. However, not everyone will do this - especially if it isn't documented. Document the intent. Make the generation and parsing of dat files robust to either method. Signed-off-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-14bb-matrix: correct BB and PM number canonicalizationDarren Hart
The bash string operation ${BB##*0} was greedy and in addition to converting "02" to "2", also converted "20" to "", causing all builds for a BB value ending in 0 to run with BB_NUMBER_THREADS=1. Signed-off-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-12bb-matrix: initial scripts to record TIME(1) metrics for BB and PM combinationsDarren Hart
The bb-matrix.sh script will run a bitbake command, building core-image-minimal by default, for various combinations of BB_NUMBER_THREADS and PARALLEL_MAKE. It records all relevant metrics of the TIME(1) command for each combination in a data file. The bb-matrix-plot.sh script can be used to visualize each of these metrics via a 3d surface plot, either solid surface or wireframe with a value-map projection on the XY plane. Signed-off-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>