On 01/04/2017 12:27, Gabe Black wrote:
Hi folks. I'm working through the nightly regressions to get them to a good
point for a rebase of our internal branch of gem5, and I've noticed a few
things:
1. The stats have been changed but not updated a bunch of times. I've
identified almost all the points this has happened since the references
were last updated, and have patches which fix them. Some stat changes are a
little fishy, but I'll at least identify the guilty change(s) so that their
authors can look them over.
This is really hard to get right with the current system of "push to
submit". I would really like to avoid including stat updates in normal
code submissions. It would make it really hard to automatically submit
code (there would be stat conflicts for every single non-trivial change)
and it'd make cherry-picking really annoying.
Ideally, the CI system should compare the stat output after applying a
CL to the previous stat update. That way, you can easily spot the
difference when submitting new code.
2. The SPARC FS regression were just plain not running because its
configuration had been broken. I'll have a patch to fix this.
3. The nightly regressions are still checking gem5 out from mercurial.
We should obviously fix this. However, the repo is kept in sync with the
golden git repo using a cron, so it's not quite as bad as it seems.
4. The "encumbered" repository has, as far as I can tell, not be converted
from mercurial to git. Probably this isn't a problem because this code is
mostly unchanging and becoming less relevant over time, especially since
EIO support was removed from the process classes (it was, right?).
5. The EIO code is also broken, because it tries to call "fatal" with a
"(void)" cast in front of it in a ternary operation. Something like "foo ?
(void)fatal("a bad thing happened") : (void)fatal("a different bad thing
happened")". What "fatal" expands to now is apparently not compatible with
this usage. Since I can access the encumbered repository, I can attempt to
fix this.
I can (and in at least in some cases will) fix most of these issues, except
maybe 4 if we still want encumbered to exist. Please speak up if I've
misinterpreted something or am missing some important bit of context.
[1] https://www.mail-archive.com/[email protected]/msg19438.html
As far as I know, the encumbered/EIO repo has been deprecated. There was
a discussion about deprecating old and broken ISAs a while back [1],
that resulted in removing EIO as a way to reduce the test overhead.
Steve sent out an email, which no one replied to, asking for EIO users
[2] shortly after the discussion. I think he disabled EIO tests after that.
We should probably think about what fixing means in this case. I have
actively removed stat diffing from tests that I consider to be
functional (e.g., atomic boot, CPU switching, checkpointing).
I wouldn't mind disabling stat diffing altogether until we have figured
out what to do for performance regressions. I'd prefer to see some more
directed performance tests that target specific components (e.g., using
traces) and specific stats.
//Andreas
[2] https://www.mail-archive.com/[email protected]/msg19379.html
IMPORTANT NOTICE: The contents of this email and any attachments are
confidential and may also be privileged. If you are not the intended recipient,
please notify the sender immediately and do not disclose the contents to any
other person, use it for any purpose, or store or copy the information in any
medium. Thank you.
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev