1

我正在尝试从InvisiSpec paper复制数据。InvisiSpec 是一种针对 Spectre 攻击的硬件防御机制。我正在使用论文作者发布的 github代码。我之前在 Gem5 上构建 InvisiSpec 时遇到了问题,但现在这个问题已经解决了。

目前,此存储库中的 Gem5 在我的系统上构建时没有错误。并使用以下方案成功完成运行它。

--scheme=UnsafeBaseline
--scheme=FuturisticSafeFence
--scheme=SpectreSafeFence 

然而SpectreSafeInvisibleSpec,方案因核心转储而中止。显然泄漏的来源来自satisfyRequest缓存中的函数:

build/X86/mem/cache/cache.cc:192: void Cache::satisfyRequest(PacketPtr, CacheBlk*, bool, bool): Assertion `pkt->hasRespData()' failed.

我尝试为更少的指令以及不同的缓存配置和不同的 TSO 运行此方案,但没有成功。

build/X86/gem5.opt -d myout/gcc configs/example/se.py --cmd=../workspace/benchmarks/cpu2006/spec-SE/binaries/x86/linux/gcc -I 100000 --cpu-type=DerivO3CPU --caches --scheme=SpectreSafeInvisibleSpec --needsTSO=1

这是回溯:

    build/X86/gem5.opt(_Z15print_backtracev+0x2c)[0x563bddc2e4ec]
    build/X86/gem5.opt(_Z12abortHandleri+0x4a)[0x563bddc42c1a]
    /lib/x86_64-linux-gnu/libpthread.so.0(+0x12890)[0x7fd71633f890]
    /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7)[0x7fd714b4de97]
    /lib/x86_64-linux-gnu/libc.so.6(abort+0x141)[0x7fd714b4f801]
    /lib/x86_64-linux-gnu/libc.so.6(+0x3039a)[0x7fd714b3f39a]
    /lib/x86_64-linux-gnu/libc.so.6(+0x30412)[0x7fd714b3f412]
    build/X86/gem5.opt(_ZN5Cache14satisfyRequestEP6PacketP8CacheBlkbb+0x6d1)[0x563bdda3d0f1]
    build/X86/gem5.opt(_ZN5Cache14recvTimingRespEP6Packet+0xa7d)[0x563bdda45ced]
    build/X86/gem5.opt(_ZN5Cache11MemSidePort14recvTimingRespEP6Packet+0x10)[0x563bdda46c40]
    build/X86/gem5.opt(+0x9c809e)[0x563bdd3e609e]
    build/X86/gem5.opt(_ZN10EventQueue10serviceOneEv+0xd9)[0x563bddc35c59]
    build/X86/gem5.opt(_Z9doSimLoopP10EventQueue+0x87)[0x563bddc50a67]
    build/X86/gem5.opt(_Z8simulatem+0xcba)[0x563bddc51aba]
    build/X86/gem5.opt(+0xfc6d2e)[0x563bdd9e4d2e]
    build/X86/gem5.opt(+0xcf1e9b)[0x563bdd70fe9b]
    /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x64d7)[0x7fd7165f9697]
    /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7d8)[0x7fd71672b278]
    /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x5bf6)[0x7fd7165f8db6]
    /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x8b5b)[0x7fd7165fbd1b]
    /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x8b5b)[0x7fd7165fbd1b]
    /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7d8)[0x7fd71672b278]
    /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCode+0x19)[0x7fd7165f3029]
    /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x6ac0)[0x7fd7165f9c80]
    /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7d8)[0x7fd71672b278]
    /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x5bf6)[0x7fd7165f8db6]
    /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7d8)[0x7fd71672b278]
    /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCode+0x19)[0x7fd7165f3029]
    /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyRun_StringFlags+0x76)[0x7fd716696546]
    build/X86/gem5.opt(_Z6m5MainiPPc+0x83)[0x563bddc417e3]
    build/X86/gem5.opt(main+0x33)[0x563bdcde0843]
    /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7)[0x7fd714b30b97]

在相应的github存储库中也报告了此问题。

4

0 回答 0