summaryrefslogtreecommitdiffstats
path: root/scripts/buildstats-diff
AgeCommit message (Collapse)Author
2023-05-05scripts: fix buildstats diff/summary hard bound to host python3Paul Gortmaker
Somehow these two got left behind and hence on older hosts that are using buildtools for a newer python - they will still fail. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-17scripts/buildstats-diff: Add option to filter tasksJoshua Watt
Adds a command line option to filter out the buildstats-diff report by one more more tasks. e.g.: buildstats-diff --only-task do_compile A B will only show the differences for do_compile tasks. The --only-task option can be specified multiple times to filter out multiple tasks at once. Signed-off-by: Joshua Watt <JPEWhacker@gmail.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>
2017-09-18scripts/buildstats-diff: move more code to lib/buildstats.pyMarkus Lehtonen
More refactoring of buildstats-diff script. Move recipe version comparison functionality to scripts/lib/buildstats.py. This patch also compasses some wording changes, i.e. changing 'package' to 'recipe'. [YOCTO #11382] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-09-18scripts/buildstats-diff: move code to lib/buildstats.pyMarkus Lehtonen
Move over code from buildstats-diff to new scripts/lib/buildstats.py module in order to share code related to buildstats processing. Also, refactor the code, introducing new classes to make the code readable, maintainable and easier to debug. [YOCTO #11381] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-06-09buildstats-diff: show more graceful error messagesMing Liu
I got a following error when I run buildstats-diff against a invalid buildstats file: | Traceback (most recent call last): | File "/poky/scripts/buildstats-diff", line 548, in <module> | sys.exit(main()) | File "/poky/scripts/buildstats-diff", line 534, in main | bs1 = read_buildstats(args.buildstats1, args.multi) | File "/poky/scripts/buildstats-diff", line 222, in read_buildstats | return read_buildstats_dir(path) | File "/poky/scripts/buildstats-diff", line 165, in read_buildstats_dir | os.path.join(recipe_dir, task))] | File "/poky/scripts/buildstats-diff", line 124, in read_buildstats_file | bs_task['elapsed_time'] = end_time - start_time | UnboundLocalError: local variable 'end_time' referenced before assignment the root cause is that a task was terminated by me on the terminal, so the generated buildstats file was invalid, supposing that it would make the buildstats.sh fail, but the script should give more graceful error messages. Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-05-23scripts/buildstats-diff: support optimized rusage valuesMarkus Lehtonen
Buildstats from oe-build-perf-test results have been optimized to not have child rusage values at all. There, rusage is the sum of parent and child rusage values. This patch makes buildstats-diff compatible with this format. [YOCTO #11355] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-02-23scripts/buildstats-diff: fix epoch numbers in --ver-diffMarkus Lehtonen
Incorrect data was printed (recipe name instead of epoch number) when displaying changes in epoch. (From OE-Core rev: 5e2b1bfb684dc76963f692172f7457c2249c3266) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-28scripts/buildstats-diff: simplify timestamp handlingMarkus Lehtonen
Simply use floats instead of datetime and timedelta objects for handling timestamps. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-09-30scripts/buildstats-diff: implement --multi optionMarkus Lehtonen
Makes it possible to average over multiple buildstats. If --multi is specified (and the given path is a directory) the script will read all buildstats from the given directory and use averaged values calculated from them. All of the buildstats must be from a "similar" build, meaning that no differences in package versions or tasks are allowed. Otherwise, the script will exit with an error. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-09-30scripts/buildstats-diff: make logger msg format a bit more readableMarkus Lehtonen
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-09-30scripts/buildstats-diff: use exception for internal error handlingMarkus Lehtonen
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-09-30scripts/buildstats-diff: add walltime to --diff-attrMarkus Lehtonen
For comparing the elapsed wall clock time of tests. Default values for --min-val and --min-absdiff are 5 seconds and 2 seconds. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-09-30scripts/buildstats-diff: add read_ops and write_ops to --diff-attrMarkus Lehtonen
Two new options, making it possible to compare the number of filesystem operations of tasks. Defaults for --min-val and --min-absdiff are set to more or less arbitrary 500 and 50 operations, respectively. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-09-30scripts/buildstats-diff: add read_bytes and write_bytes to --diff-attrMarkus Lehtonen
These are I/O counter values from /proc/<pid>/io and represent the number of bytes read from / written to the storage layer. Default values for --min-val and --min-absdiff limits are set to 512kB and 128kB, respectively. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-09-30scripts/buildstats-diff: introduce --diff-attrMarkus Lehtonen
A new command line option for choosing which "attribute" of the buildstats to compare. At first, the already supported 'cputime' is the only available option. But, refactoring done in this patch should make it easy to add new attribute types. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-09-30scripts/buildstats-diff: do not hardcode field widths in outputMarkus Lehtonen
Dynamically adjust the width of all fields in task diff output. Makes it easier to print other units than cputime, too. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-09-30scripts/buildstats-diff: implement BSTask classMarkus Lehtonen
New class representing buildstats data of a single task. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-09-30scripts/buildstats-diff: rename --min-time and --min-timediff argsMarkus Lehtonen
Rename these arguments to --min-val and --min-absdiff in preparation for supporting other "quantities" than just cputime. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-09-30scripts/buildstats-diff: check that the given directory existsMarkus Lehtonen
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-09-16scripts: introduce buildstats-diffMarkus Lehtonen
New script for comparing buildstats from two separate builds. The script has two modes: normally it prints the differences in task execution (cpu) times but using --ver-diff option makes it just print the recipe version differences without any cpu time data. Other command line options are provided to alter the sort criteria of the data and to filter out insignificant differences and/or short tasks. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>