[Fuego] [PATCH] dbench: adjust test materials for dbench version
Tim.Bird at sony.com
Tim.Bird at sony.com
Mon Apr 9 17:25:17 UTC 2018
> -----Original Message-----
> From: Daniel Sangorrin
> Hi Tim,
>
> > -----Original Message-----
> > From: Tim.Bird at sony.com [mailto:Tim.Bird at sony.com]
> > Sent: Thursday, April 5, 2018 7:43 AM
> > To: daniel.sangorrin at toshiba.co.jp; fuego at lists.linuxfoundation.org
> > Subject: [PATCH] dbench: adjust test materials for dbench version
> >
> > Daniel,
> >
> > I had a host of issues with the dbench upgrade. I used the patch below
> > to adjust some of the test materials for the different dbench tests.
> > Let me know if you have feedback on this.
>
> Thanks for the review and the fixes as well!
>
> > In hindsight, maybe splitting the tests wasn't such a great idea.
> > It may have been better to write a parser that could recognize
> > and handle both versions (3 and 4) of the test output format.
> > Although it appears that most systems will be using dbench
> > version 4.0 or above, it's not impossible that Benchmark.dbench4
> > could discover dbench version 3.x on a system, and try to use
> > it, which would result in errors.
>
> Yes, that's true.
> Another option would be to check the version and ask the user to
> run Benchmark.dbench3 instead of Benchmark.dbench4. Which one
> do you prefer?
I prefer checking the version and telling the user to run Benchmark.dbench3.
If we get serious about running tests that already exist on the target board,
then it could come in handy to have an example of version checking code,
so this would be nice to have.
>
> > Also, I find that using the test name to prefix the test variable
> > (from the spec file), is problematic in this case. To rename a test
> > requires changing all the variable names. Maybe we should use
> > a generic prefix, like TVAR_ or something.
>
> Good idea. The variables would be sorter as well.
It's too big a change for the 1.3 release, but I'll make a note and
we can consider it for 1.4.
>
> > Also, I wasn't sure whether I should change the testcase name
> > (in the parser and resulting json file) to match the test name (dbench4).
> > I ended up doing this for dbench3, but left dbench4 alone, as I expect
> > it will become our defacto 'dbench' test in the future.
>
> mm I am worrying a new version will come up and we will have to change
> many things.
For now, I think we should just keep an eye on it. Tests don't change
very often. We'll see how often this situation comes up and determine
how we ought to deal with test version changes in general. So far, I believe
this is the first parser that has broken for us in Fuego, on a test version change.
>
> >
> > And I found that the name in the spec file is only used for generating
> > the test variable names. I tried changing it in dbench4, but then changed
> > my mind, and left it alone.
> >
> > Something is way different between versions 3 and 4 in reporting
> throughput
> > on my systems. I'm getting pretty significant differences in results on most
> > of my boards (the only one with 4.x results consistent with 3.x is on my
> Renesas
> > arm64 board).
> >
> > Here is a table of results:
> > test spec board tguid result
> > ------------------------------------------------------------
> > dbench3 default bbb <<< wouldn't compile >>>
> > dbench3 default bbb dbench3.Throughput 11.5173
> > dbench4 default bbb dbench.Throughput 0.0282559
> > dbench4 roota bbb dbench.Throughput 0.116864
> >
> > dbench testdir docker dbench.Throughput 1741.26
> > dbench testdir docker dbench.Throughput 1831.78
> > dbench3 default docker dbench3.Throughput 1169.77
> > dbench4 default docker dbench.Throughput 10.394
> > dbench4 roota docker dbench.Throughput 10.959
> >
> > dbench default min1 dbench.Throughput 254.03
> > dbench3 default min1 dbench3.Throughput 253.83
> > dbench3 default min1 dbench3.Throughput 251.732
> > dbench4 default min1 dbench.Throughput 32.1764
> > dbench4 default min1 dbench.Throughput 33.0374
> > dbench4 roota min1 dbench.Throughput 34.0026
> > dbench4 roota min1 dbench.Throughput 21.3904
> >
> > dbench default ren1 dbench.Throughput 8.41553
> > dbench default ren1 dbench.Throughput 8.62088
> > dbench3 default ren1 dbench3.Throughput 8.43887
> > dbench3 default ren1 dbench3.Throughput 8.45205
> > dbench4 default ren1 dbench.Throughput 7.53374
> > dbench4 roota ren1 dbench.Throughput 8.03552
> > dbench4 roota ren1 dbench.Throughput 7.72424
> >
> > dbench default rpi3-1 dbench.Throughput 136.099
> > dbench default rpi3-1 dbench.Throughput 132.869
> > dbench3 default rpi3-1 dbench3.Throughput 159.953
> > dbench4 default rpi3-1 dbench.Throughput 39.9088
> > dbench4 roota rpi3-1 dbench.Throughput 50.6633
> >
> > Note that the 'roota' spec tries to mimic the settings used by
> > the old Benchmark.dbench test.
> >
> > I'm not sure which version of the test to believe for my
> > throughput. But something is different enough to skew the
> > results by a large amount - in the case of docker by 100x.
> >
> > Have you seen differences in the reported throughput?
>
> Yes, they are completely different in my boards too. I am not sure why,
> probably the dbench developers know better.
Do you plan to ask them, or should I?
I'd like to know which is the "real" number.
Thanks,
-- Tim
More information about the Fuego
mailing list