Re: [PATCH v1 0/4] Teach 'run' perf script to read config files
From: Christian Couder <hidden>
Date: 2017-07-26 16:00:35
On Fri, Jul 14, 2017 at 8:27 AM, Christian Couder [off-list ref] wrote:
On Thu, Jul 13, 2017 at 10:55 PM, Jeff King [off-list ref] wrote:quoted
On Thu, Jul 13, 2017 at 08:57:01PM +0200, Christian Couder wrote:quoted
quoted
quoted
We want to make it possible to store the parameters to the 'run' script in a config file. This will make it easier to store, reuse, share and compare parameters.Because perf-lib is built on test-lib, it already reads GIT-BUILD-OPTIONS.Actually the 'run' script also sources GIT-BUILD-OPTIONS, so maybe this is not necessary.Ah, right. The one that comes via perf-lib gets the variables into the test scripts themselves. But anything "run" would need itself would come from the source it does itself. And that's where GIT_PERF_MAKE_OPTS has an effect.quoted
Also are the variables in GIT-BUILD-OPTIONS exported already?No, I don't think so. But because both "run" and the scripts themselves source them, they're available more or less everywhere, except for sub-processes inside the scripts.Ok, I see.
Actually after taking another look at that, it looks like the following happens: 1) the run script sources the original GIT-BUILD-OPTIONS file from ../.. relative to its location 2) a git version is built in "build/$rev" using GIT_PERF_MAKE_OPTS which generates a new GIT-BUILD-OPTIONS file in "build/$rev/" 3) when the actual perf scripts are run they source the original GIT-BUILD-OPTIONS file (through perf-lib.sh which sources test-lib.sh) I wonder how useful 1) is, as the variables sourced from original GIT-BUILD-OPTIONS are not used inside the "run" script and not available to its child processes as they are not exported. Is it just so that if people add GIT_PERF_* variables to their config.mak before building they can then have those variables used by the run script? I also wonder if it would be better at step 3) to source the GIT-BUILD-OPTIONS file generated at step 2) instead of the original one, because they can be different as the options in $GIT_PERF_MAKE_OPTS will be baked into the new GIT-BUILD-OPTIONS file. (Of course if $GIT_PERF_MAKE_OPTS was added to config.mak before building, then they will be in the original one too. But $GIT_PERF_MAKE_OPTS should work without that.)