Search code examples
sconsgem5spectre

Can't build InvisiSpec in gem5 error no evictionCallback method


I'm trying to reproduce data from InvisiSpec paper. InvisiSpec is a defense mechanism in hardware for Spectre attack. I'm using github code that was released by the author of the paper.

Currently I can build and run last version of gem5 simulator on my system successfully. However I get the following exception when trying to build their code

Exception: MI_example-cache.sm:401: Error: Invalid method call: Type 'Sequencer' does not have a method evictionCallback, 'evictionCallback_Addr' nor '':

I don't know where this error comes from. I looked through many things but haven't had any success. I appreciate if anyone could help me find what is causing the exception. The issue is posted in the corresponding github repository too.


Solution

  • The above error and some other errors that came after were related to protocol MI and also scons and python version. I could build it with MESI protocol.

    python2.7 `which scons` build/X86/gem5.opt --default=X86 PROTOCOL=MESI_Two_Level
    

    Comparing the modified version of InvisiSpec with original Gem5, I believe the author of paper made changes for memory consistency that works with MESI protocol. Codes related to other protocols need to be updated accordingly.