Previous Up Next

Instruction clflushopt acts differentlty from instruction clflush

We run our test base on top of a model that equates the effect of the clflushopt instruction to the one of the clflush instruction, yielding log file ModelNoOpt.3 We then display the hardware observation that do not comply with this model. Thereby we display behaviours of the clflushopt instruction that the clflush instruction forbids.

Like the clflush instruction, the clflusopt instruction takes an address4 as argument. Test names reflect that address: clflushopt refers to the variable accessed by the previous instruction clflushoptnext refers to the variable accessed by the next instruction, while clflushoptother refers to an arbitrary variable, different from all variables accessed by the test.

We first show the four “MP” tests of Figure 11.

There are 4 such tests
 Model-NoOptHardwareModelSCCoreI5CoreI7EstepheZdani
MP+clflushoptnext+mfence+WB+WCForbidOk, 3/9.4GAllowForbidOk, 1/4.6GNo, 0/3.8GOk, 2/704MNo, 0/227M
  Forbid invalidated  Forbid invalidated Forbid invalidated 
MP+clflushoptnextntna+mfence+WB+WBForbidOk, 517/9.4GAllowForbidNo, 0/4.6GNo, 0/3.8GOk, 352/704MOk, 165/227M
  Forbid invalidated    Forbid invalidatedForbid invalidated
MP+clflushoptother+mfence+WB+WCForbidOk, 11/7.1GAllowForbidNo, 0/3.8GNo, 0/2.8GNo, 0/320MOk, 11/212M
  Forbid invalidated     Forbid invalidated
MP+clflushoptothernant+mfence+WB+WBForbidOk, 19/13GAllowForbidNo, 0/7.8GNo, 0/4.0GNo, 0/979MOk, 19/527M
  Forbid invalidated     Forbid invalidated

The following table lists all our observations of clflushopt being weaker then clflush. From the table below, one may notice that no experiment makes a distinction between the clflush and clflushopt instructions when they apply to the address accessed by the previous instruction.

There are 23 such tests
 Model-NoOptHardwareModelSCCoreI5CoreI7EstepheZdani
2+2W+mfence+clflushoptnext+WC+WBForbidOk, 4/9.4GAllowForbidOk, 1/4.6GOk, 3/3.8GNo, 0/704MNo, 0/227M
  Forbid invalidated  Forbid invalidatedForbid invalidated  
2+2W+mfence+clflushoptnextntna+WB+WBForbidOk, 1.1k/9.4GAllowForbidNo, 0/4.6GNo, 0/3.8GOk, 1.0k/704MOk, 73/227M
  Forbid invalidated    Forbid invalidatedForbid invalidated
2+2W+mfence+clflushoptother+WC+WBForbidOk, 1/7.1GAllowForbidNo, 0/3.8GOk, 1/2.8GNo, 0/320MNo, 0/212M
  Forbid invalidated   Forbid invalidated  
2+2W+mfence+clflushoptothernant+WB+WBForbidOk, 15/13GAllowForbidNo, 0/7.8GNo, 0/4.0GOk, 1/979MOk, 14/527M
  Forbid invalidated    Forbid invalidatedForbid invalidated
2+2W+mfence+clflushoptothernant+WT+WBForbidOk, 1/13GAllowForbidNo, 0/7.8GNo, 0/4.0GOk, 1/979MNo, 0/527M
  Forbid invalidated    Forbid invalidated 
MP+clflushoptnext+mfence+WB+WCForbidOk, 3/9.4GAllowForbidOk, 1/4.6GNo, 0/3.8GOk, 2/704MNo, 0/227M
  Forbid invalidated  Forbid invalidated Forbid invalidated 
MP+clflushoptnextntna+mfence+WB+WBForbidOk, 517/9.4GAllowForbidNo, 0/4.6GNo, 0/3.8GOk, 352/704MOk, 165/227M
  Forbid invalidated    Forbid invalidatedForbid invalidated
MP+clflushoptother+mfence+WB+WCForbidOk, 11/7.1GAllowForbidNo, 0/3.8GNo, 0/2.8GNo, 0/320MOk, 11/212M
  Forbid invalidated     Forbid invalidated
MP+clflushoptother+mfence+WC+WBForbidOk, 4/13GAllowForbidNo, 0/7.8GNo, 0/4.0GNo, 0/979MOk, 4/527M
  Forbid invalidated     Forbid invalidated
MP+clflushoptothernant+mfence+WB+WBForbidOk, 19/13GAllowForbidNo, 0/7.8GNo, 0/4.0GNo, 0/979MOk, 19/527M
  Forbid invalidated     Forbid invalidated
MP+clflushoptothernant+mfence+WB+WTForbidOk, 7/13GAllowForbidNo, 0/7.8GNo, 0/4.0GOk, 1/979MOk, 6/527M
  Forbid invalidated    Forbid invalidatedForbid invalidated
R+clflushoptnext+mfence+WB+WCForbidOk, 4/9.4GAllowForbidOk, 1/4.6GNo, 0/3.8GOk, 3/704MNo, 0/227M
  Forbid invalidated  Forbid invalidated Forbid invalidated 
R+clflushoptnextntna+mfence+WB+WBForbidOk, 539/9.4GAllowForbidNo, 0/4.6GNo, 0/3.8GOk, 372/704MOk, 167/227M
  Forbid invalidated    Forbid invalidatedForbid invalidated
R+clflushoptother+mfence+WB+WCForbidOk, 1/7.2GAllowForbidOk, 1/3.8GNo, 0/2.8GNo, 0/320MNo, 0/269M
  Forbid invalidated  Forbid invalidated   
R+clflushoptother+mfence+WC+WBForbidOk, 2/13GAllowForbidNo, 0/7.8GNo, 0/4.0GNo, 0/979MOk, 2/584M
  Forbid invalidated     Forbid invalidated
R+clflushoptothernant+mfence+WB+WBForbidOk, 13/13GAllowForbidNo, 0/7.8GNo, 0/4.0GNo, 0/979MOk, 13/584M
  Forbid invalidated     Forbid invalidated
R+clflushoptothernant+mfence+WB+WTForbidOk, 1/13GAllowForbidOk, 1/7.8GNo, 0/4.0GNo, 0/979MNo, 0/584M
  Forbid invalidated  Forbid invalidated   
S+clflushoptnext+mfence+WB+WCForbidOk, 1/9.4GAllowForbidNo, 0/4.6GNo, 0/3.8GNo, 0/704MOk, 1/269M
  Forbid invalidated     Forbid invalidated
S+clflushoptnextntna+mfence+WB+WBForbidOk, 401/9.4GAllowForbidNo, 0/4.6GNo, 0/3.8GOk, 287/704MOk, 114/269M
  Forbid invalidated    Forbid invalidatedForbid invalidated
S+clflushoptother+mfence+WB+WCForbidOk, 23/7.2GAllowForbidNo, 0/3.8GNo, 0/2.8GNo, 0/320MOk, 23/269M
  Forbid invalidated     Forbid invalidated
S+clflushoptother+mfence+WC+WBForbidOk, 5/13GAllowForbidNo, 0/7.8GNo, 0/4.0GNo, 0/979MOk, 5/529M
  Forbid invalidated     Forbid invalidated
S+clflushoptothernant+mfence+WB+WBForbidOk, 18/13GAllowForbidOk, 1/7.8GNo, 0/4.0GNo, 0/979MOk, 17/529M
  Forbid invalidated  Forbid invalidated  Forbid invalidated
S+clflushoptothernant+mfence+WB+WTForbidOk, 6/13GAllowForbidNo, 0/7.8GNo, 0/4.0GOk, 2/979MOk, 4/529M
  Forbid invalidated    Forbid invalidatedForbid invalidated

Previous Up Next