Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[gen] Ifetch config #719

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

Conversation

hugookeeffe
Copy link
Contributor

This PR introduces an example configuration file for generating forbidden ifetch tests. This PR is dependent on #707 and #703

-arch AArch64
-variant self

-relax RfeIP [DpCtrlIsbdR, I] [DC.CVAUn, FrePI, PodWW, DSB.ISH, IC.IVAUp] [FrePI PodW* DC.CVAUp DSB.ISH IC.IVAUp DSB.ISH ISB] [FrePI PosW* DC.CVAUp DSB.ISH IC.IVAUp DSB.ISH ISB] [ Pod*R DSB.ISH DC.CVAUn DSB.ISH IC.IVAUn DSB.ISH ISB FrePI] [ DpCtrlIsbdR DC.CVAUn DSB.ISH IC.IVAUn DSB.ISH ISB FrePI] [ Pod*R DSB.ISH IC.IVAUn DSB.ISH ISB FrePI PodW* DC.CVAUp DSB.ISH] [PodRR FrePI PodW* DC.CVAUp DSB.ISH IC.IVAUp DSB.ISH]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if these relaxations would be useful as well in the relax list:

[FrePI PodW* DC.CVAUp DSB.ISH IC.IVAUp DSB.ISH]
[Pod*R DSB.ISH DC.CVAUn DSB.ISH IC.IVAUn DSB.ISH ISB FrePI]
[Pod*R DMB.ISH DC.CVAUn DSB.ISH IC.IVAUn DSB.ISH ISB FrePI]
[Pod*R DSB.ISH IC.IVAUn DSB.ISH ISB FrePI PodW* DC.CVAUp DMB.ISH]
[DpCtrlisbdR IC.IVAU DSB.ISH ISB FrePI DC.CVAUp DMB.ISH PodW*]

The first one here is something that's already in the list, but it drops an ISB. The rest are variations of the relaxations that put a full DMB between a memory effect and a DC (instead of a full DSB).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thank you for the suggestion! I have added them to the relax list


-relax RfeIP [DpCtrlIsbdR, I] [DC.CVAUn, FrePI, PodWW, DSB.ISH, IC.IVAUp] [FrePI PodW* DC.CVAUp DSB.ISH IC.IVAUp DSB.ISH ISB] [FrePI PosW* DC.CVAUp DSB.ISH IC.IVAUp DSB.ISH ISB] [ Pod*R DSB.ISH DC.CVAUn DSB.ISH IC.IVAUn DSB.ISH ISB FrePI] [ DpCtrlIsbdR DC.CVAUn DSB.ISH IC.IVAUn DSB.ISH ISB FrePI] [ Pod*R DSB.ISH IC.IVAUn DSB.ISH ISB FrePI PodW* DC.CVAUp DSB.ISH] [PodRR FrePI PodW* DC.CVAUp DSB.ISH IC.IVAUp DSB.ISH]

-safe Rfe Fre DMB.ISH RfeII FreII DMB.STdWW DpAddrdR DpAddrdW DpAddrsR DpAddrsW DpDatadW DpDatasW DpCtrldW DpCtrlsW DpCtrlIsbdR [DC.CVAUn Pos** DC.CVAUp] [DpAddrdR, DC.CVAUn] [DpAddrdR, IC.IVAUn] [DpAddrsR, DC.CVAUn] [DpAddrsR, IC.IVAUn] [Pos**, IC.IVAUn, DSB.ISH, DC.CVAUn] [Pos**, IC.IVAUn, DSB.ISH, IC.IVAUn] [Pos**, DC.CVAUn, DSB.ISH, DC.CVAUn] [Pod**, DC.CVAUn, DSB.ISH, IC.IVAUn] [Pod**, IC.IVAUn, DSB.ISH] [Pod**, DC.CVAUn, DSB.ISH] [Pod**, IC.IVAUn, DSB.ISH, DC.CVAUn] [Pod**, IC.IVAUn, DSB.ISH, IC.IVAUn] [Pod**, DC.CVAUn, DSB.ISH, DC.CVAUn] [Pos**, DC.CVAUn, DSB.ISH, IC.IVAUn] [Pos**, IC.IVAUn, DSB.ISH] [Pos**, DC.CVAUn, DSB.ISH]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

An an optional remark, it might be that in the first iteration for a minimalistic configuration file generating an interesting subset of forbidden tests we'd prefer to drop the DC/IC relaxations from the safe list.

The thinking is that with the way we wrote the relax list, those composite relaxations already include necessary DCs and ICs, so hopefully additional ones are redundant for the purposes of forbidding tests. (That said, this is an untested conjecture.)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, I think you are right. If the configuration file was already generating only forbidden tests, then removing anything from the safe list will just reduce the number of tests generated.

I thought having the DC/IC relaxations in the safe list would allow for more variety in the generated tests, but I agree it would be redundant for forbidding tests.

Did you want these removed because it would make the configuration file simpler? I don't mind removing them if you think they are not necessary

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At the time, my thinking was that the interesting forbidden tests would be generated without those other relaxations, and I was not sure about the value of tests that those other relaxations would add. It is good to generate more tests, but only if that does not prevent the useful tests from getting generated (by delaying them forever).

If extra relaxations do not cause concerns about performance of diy7, I suppose they are fine to keep.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In that case I will keep them in. As far as I can tell, keeping them in isn't preventing useful tests from being generated

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, thanks for checking -- please consider this resolved. :-)

@artkhyzha
Copy link
Collaborator

LGTM. One thing I'd suggest doing before considering this ready for merging is a sanity check that tests it generates are indeed forbidden. (Maybe this has already been done?)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants