Hi Ilpo,
On 8/30/24 4:13 AM, Ilpo Järvinen wrote:
On Thu, 29 Aug 2024, Reinette Chatre wrote:
The benchmark used during the CMT, MBM, and MBA tests can be provided by the user via (-b) parameter to the tests, if not provided the default "fill_buf" benchmark is used.
The "fill_buf" benchmark requires parameters and these are managed as an array of strings.
Using an array of strings to manage the "fill_buf" parameters is complex because it requires transformations to/from strings at every producer and consumer. This is made worse for the individual tests where the default benchmark parameters values may not be appropriate and additional data wrangling is required. For example, the CMT test duplicates the entire array of strings in order to replace one of the parameters.
Replace the "array of strings" parameters used for "fill_buf" with a struct that contains the "fill_buf" parameters that can be used directly without transformations to/from strings. Make these parameters part of the parameters associated with each test so that each test can set benchmark parameters that are appropriate for it.
Signed-off-by: Reinette Chatre reinette.chatre@intel.com
...
If I didn't miss anything important, this change takes away the ability to alter fill_buf's parameters using -b option which to me felt the most useful way to use that parameter. The current code of course was lacks many safeguards for that case but still felt an useful feature.
hmmm ... thank you for pointing this out. I did not consider this use case. I have never received feedback on how these tests are used and if folks even use "-b", for "fill_buf" parameter changes or something else.
I suggest that while parsing -b parameter, check if it starts with "fill_buf", and if it does, parse the argument into fill_buf_param in user_params which will override the default fill_buf parameters.
While parsing, adding new sanity checks wouldn't be a bad idea.
It might be some parameters might be better to be overridden always by the tests, e.g. "once" but specifying "operation" (W instead or R) or "buf_size" seems okay use cases to me.
Will do. Thank you for the suggestion.
Reinette