diff --git a/README.adoc b/README.adoc index dc8bef9..330e576 100644 --- a/README.adoc +++ b/README.adoc @@ -4768,16 +4768,22 @@ Like QEMU, gem5 also has a syscall emulation mode (SE), but in this tutorial we * advantages of gem5: ** simulates a generic more realistic pipelined and optionally out of order CPU cycle by cycle, including a realistic DRAM memory access model with latencies, caches and page table manipulations. This allows us to: ++ +-- *** do much more realistic performance benchmarking with it, which makes absolutely no sense in QEMU, which is purely functional *** make certain functional observations that are not possible in QEMU, e.g.: **** use Linux kernel APIs that flush cache memory like DMA, which are crucial for driver development. In QEMU, the driver would still work even if we forget to flush caches. **** spectre / meltdown: ***** https://www.mail-archive.com/gem5-users@gem5.org/msg15319.html ***** https://github.com/jlpresearch/gem5/tree/spectre-test +-- + -It is not of course truly cycle accurate, as that +It is not of course truly cycle accurate, as that: ++ +-- ** would require exposing proprietary information of the CPU designs: link:https://stackoverflow.com/questions/17454955/can-you-check-performance-of-a-program-running-with-qemu-simulator/33580850#33580850[] ** would make the simulation even slower TODO confirm, by how much +-- + but the approximation is reasonable. +