From Robert:
      There is a real issue with the time it takes megatest to process runconfigs.

      Every #{shell ...} command is processed in every target from every included
file even if the target is not the one being run, or a simple -list-targets
is given on the command line.

To make matters worse, when running a regression, not only does the main
megatest "mtest" call processes runconfigs, so does any server started by
the regression run.

And if it takes a LONG time to process the runconfigs, the regression run
will spend a lot of time waiting for the server to start.
      Every single call to megatest, whether its to start the regression, or start
      a server, or whatever, is subject to the time it takes to process the
      runconfig files.

      The parsing of runconfigs should happen 1 time per session, and the
      evaluation of value should only happen 1 time and when its needed/used
      (there should not be a global evaluation of all parameters across all
      targets unless there is some kind of dump operation occurring).

While I appreciate that there was some original reason/intent for re-parsing
the runconfigs the entire process is leading to a substantial performance
issues in regression runs. Even if there is a need to re-evaluate a
variable value, there should be a means of indicating so, like:

      VAR #{eval ...}

Something needs to be done to improve performance of reading the runconfigs.