git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v1 0/4] Teach 'run' perf script to read config files

From
Christian Couder <christian.couder@gmail.com>
Date
Jul 13, 2017, 06:50 UTC
Message-ID
<20170713065050.19215-1-chriscool@tuxfamily.org>

Goal ~~~~

Using many long environment variables to give parameters to the 'run' script is error prone and tiring.

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.

In the future it could also make it easy to run series of tests. 

Design ~~~~~~

We use the same config format as the ".git/config" file as Git users and developers are familiar with this nice format and have great tools to change, query and manage it.

We use values from the config file to set the environment variables that are used by the scripts if they are not already set.

Highlevel view of the patches in the series ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Patch 1/4 teaches the '--config <configfile>' option to the 'run' script, but <configfile> is just put into the GIT_PERF_CONFIG_FILE variable which is not used yet.

Patch 2/4 add the get_var_from_env_or_config() function to read config options from the <configfile> and set values to some variables from these config options or from default values.

Patch 3/4 and 4/4 use the get_var_from_env_or_config() function to make it possible to set parameters used by the 'run' script.

Future work ~~~~~~~~~~~

We want to make it possible to run series of tests by passing only a config file to the 'run' script.

For example a config file like the following could be used to run perf tests with Git compiled both with and without libpcre:

[perf]
        dirsOrRevs = v2.12.0 v2.13.0
        repeatCount = 10
[perf "with libpcre"]
        makeOpts = DEVELOPER=1 CFLAGS='-g -O0' USE_LIBPCRE=YesPlease
[perf "without libpcre"]
        makeOpts = DEVELOPER=1 CFLAGS='-g -O0'
This will make it easy to see what changes between the different runs.

But this can be added later, and the current series can already be useful as is.

Links ~~~~~

This patch series is also available here:
  https://github.com/chriscool/git/commits/perf-conf
Christian Couder (4):
  perf/run: add '--config' option to the 'run' script
  perf/run: add get_var_from_env_or_config()
  perf/run: add GIT_PERF_DIRS_OR_REVS
  perf/run: add calls to get_var_from_env_or_config()
 t/perf/perf-lib.sh |  3 ---
 t/perf/run         | 34 +++++++++++++++++++++++++++++++++-
 2 files changed, 33 insertions(+), 4 deletions(-)
-- 
2.13.2.647.g8b2efe2a0f
Next: Christian Couder
Message 1 of 16 in “Teach 'run' perf script to read config files”
  1. 0/4 Teach 'run' perf script to read config filesChristian Couder, Jul 13, 2017
  2. 2/4 perf/run: add get_var_from_env_or_config()Christian Couder, Jul 13, 2017
  3. 1/4 perf/run: add '--config' option to the 'run' scriptChristian Couder, Jul 13, 2017
  4. 3/4 perf/run: add GIT_PERF_DIRS_OR_REVSChristian Couder, Jul 13, 2017
  5. 4/4 perf/run: add calls to get_var_from_env_or_config()Christian Couder, Jul 13, 2017
  6. Jeff KingJul 13, 2017
  7. Junio C HamanoJul 13, 2017
  8. Jeff KingJul 13, 2017
  9. Junio C HamanoJul 13, 2017
  10. Christian CouderJul 13, 2017
  11. Christian CouderJul 13, 2017
  12. Jeff KingJul 13, 2017
  13. Christian CouderJul 14, 2017
  14. Jeff KingJul 14, 2017
  15. Christian CouderJul 26, 2017
  16. Jeff KingJul 26, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.