Hello, I think ELFies are a really interesting complement to GEM5 thanks to their agile generation process. I am recently trying to simulate the ROI of a huge program by sending their regional ELFies into GEM5 in SE mode. However I am a bit confused about what kind of information (in addition to the ELFie) to pass into GEM5, plus I want to know how are ELFies executed in GEM5.
The only evidence of GEM5 support for ELFie I have found is in the develop branch ahead of v22.1 (commit cd35c9a<https://gem5.googlesource.com/public/gem5/+/cd35c9a6194451952735f58fb09cb7983e5861ba>) - a Python method set_se_elfie_workload() is defined in src/python/gem5/components/board/se_binary_workload.py. In addition to needing the ELFie itself, the method requires two PCCountPairs as parameters. It turns out the PCCountPairs are basically telling the simulator to generate SIMPOINT_BEGIN events whenever the specified PCs have been encountered for a given amount of times. But what is purpose of doing this? Regarding how ELFies are simulated, as I understand how ELFies work (in the host) is they first restore all the application's register states and memory pages and then jump to the start of ROI of the application. Is that what GEM5 also does in SE mode? I have tried running two regional ELFies captured from the same program in SE mode. The simulator warns about instruction xrstor unimplemented. And one of the ELFies runs just fine (i.e. does not crash), but the other one crashes with a panic like this: build/X86/arch/x86/faults.cc:131: panic: Unrecognized/invalid instruction executed: { leg = 0x10, rex = 0, vex/xop = 0x5, op = { type = three byte 0f38, op = 0x78, }, modRM = 0, sib = 0, immediate = 0, displacement = 0 dispSize = 0} Fangjia Shen School of Electrical and Computer Engineering Purdue University
_______________________________________________ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org