summaryrefslogtreecommitdiffstats
path: root/scripts/buildstats-diff
Commit message (Collapse)AuthorAgeFilesLines
* scripts/buildstats-diff: Add option to filter tasksJoshua Watt2019-07-171-6/+8
| | | | | | | | | | | | | | | | 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. (From OE-Core rev: a8c7960d24c48107fd3703e49c38f890e84e2226) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta/lib+scripts: Convert to SPDX license headersRichard Purdie2019-05-091-8/+2
| | | | | | | | | | | | | | | | | | | | | | | 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. (From OE-Core rev: f8c9c511b5f1b7dbd45b77f345cb6c048ae6763e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* scripts/buildstats-diff: move more code to lib/buildstats.pyMarkus Lehtonen2017-09-181-55/+31
| | | | | | | | | | | | | | 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] (From OE-Core rev: 2f8942d6830258fcbe1925f12ba1516def32d132) 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>
* scripts/buildstats-diff: move code to lib/buildstats.pyMarkus Lehtonen2017-09-181-250/+28
| | | | | | | | | | | | | | | 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] (From OE-Core rev: 8a2cd9afc95919737d8e75234e78bbc52e1494a1) 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>
* buildstats-diff: show more graceful error messagesMing Liu2017-06-091-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. (From OE-Core rev: dee3c29071017b4d12c02b711c5e42ca96e0578d) Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* scripts/buildstats-diff: support optimized rusage valuesMarkus Lehtonen2017-05-231-4/+16
| | | | | | | | | | | | | | | 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] (From OE-Core rev: 496a9dc179fe9dc370c940f4a2f7bcab869a804f) 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>
* scripts/buildstats-diff: fix epoch numbers in --ver-diffMarkus Lehtonen2017-02-231-1/+1
| | | | | | | | | | | | | Incorrect data was printed (recipe name instead of epoch number) when displaying changes in epoch. (From OE-Core rev: 5e2b1bfb684dc76963f692172f7457c2249c3266) (From OE-Core rev: d3f4ec2ad5e83f52f7d3824cfe1f5a64f2d81bcf) 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>
* scripts/buildstats-diff: simplify timestamp handlingMarkus Lehtonen2017-01-281-31/+3
| | | | | | | | | | Simply use floats instead of datetime and timedelta objects for handling timestamps. (From OE-Core rev: d97c844f388bd4c52248fe597d5985ef20d5a96d) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* scripts/buildstats-diff: implement --multi optionMarkus Lehtonen2016-10-011-26/+73
| | | | | | | | | | | | | | | | | 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. (From OE-Core rev: 315f44ba39e9b13facacd0fd3796fa87329d9d69) 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>
* scripts/buildstats-diff: make logger msg format a bit more readableMarkus Lehtonen2016-10-011-1/+1
| | | | | | | | (From OE-Core rev: 49ae4382dd0a71f45989af3679bd35ce2bfa82f8) 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>
* scripts/buildstats-diff: use exception for internal error handlingMarkus Lehtonen2016-10-011-17/+21
| | | | | | | | (From OE-Core rev: 17b27b7a8bfc8b1c9ee274d1ed2d5b57bea13bf5) 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>
* scripts/buildstats-diff: add walltime to --diff-attrMarkus Lehtonen2016-10-011-3/+10
| | | | | | | | | | | For comparing the elapsed wall clock time of tests. Default values for --min-val and --min-absdiff are 5 seconds and 2 seconds. (From OE-Core rev: 8e7a5beb2ce116bcd87111d190a4ac5d771e8884) 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>
* scripts/buildstats-diff: add read_ops and write_ops to --diff-attrMarkus Lehtonen2016-10-011-3/+24
| | | | | | | | | | | | 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. (From OE-Core rev: 75292a1de1a59e19198d26b7c1291004a5ca92f3) 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>
* scripts/buildstats-diff: add read_bytes and write_bytes to --diff-attrMarkus Lehtonen2016-10-011-10/+36
| | | | | | | | | | | | | 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. (From OE-Core rev: 24a12e40caeb05dac13c417f35733761af219f03) 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>
* scripts/buildstats-diff: introduce --diff-attrMarkus Lehtonen2016-10-011-56/+84
| | | | | | | | | | | | | 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. (From OE-Core rev: 0782825138731b3f1e6a8e05d723c1d5cd60c90c) 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>
* scripts/buildstats-diff: do not hardcode field widths in outputMarkus Lehtonen2016-10-011-28/+32
| | | | | | | | | | | Dynamically adjust the width of all fields in task diff output. Makes it easier to print other units than cputime, too. (From OE-Core rev: 559b858f2a3712ec21debb71681593bd7cf55041) 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>
* scripts/buildstats-diff: implement BSTask classMarkus Lehtonen2016-10-011-19/+32
| | | | | | | | | | New class representing buildstats data of a single task. (From OE-Core rev: 472818a32f96699a6dc9c7c487f38d716678fd7a) 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>
* scripts/buildstats-diff: rename --min-time and --min-timediff argsMarkus Lehtonen2016-10-011-12/+12
| | | | | | | | | | | Rename these arguments to --min-val and --min-absdiff in preparation for supporting other "quantities" than just cputime. (From OE-Core rev: 441336bc1750939c2da2d9e4dc5a6893b283bf68) 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>
* scripts/buildstats-diff: check that the given directory existsMarkus Lehtonen2016-10-011-1/+4
| | | | | | | | (From OE-Core rev: 08082b96d8d09215f02e9251f354bb6e8bb3e712) 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>
* scripts: introduce buildstats-diffMarkus Lehtonen2016-09-161-0/+411
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. (From OE-Core rev: e707718374ce1c95769a5f99aa3bfdfc0be685b2) 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>