title: When to use full system FS vs syscall emulation SE with userland programs in gem5?
body: <p>Since syscall emulation is much easier to setup, I'm wondering what are the advantages of using the full system emulation when running an userland program.</p>
  
  <p>Or in other words, what interesting aspects are modeled in the full system but not syscall emulation mode, and when are they significant?</p>
  
  <p>It is mentioned in the docs at: <a href="http://gem5.org/Splash_benchmarks" rel="nofollow noreferrer">http://gem5.org/Splash_benchmarks</a> that full system is</p>
  
  <blockquote>
    <p>Realistic: you're getting the actual Linux thread scheduler to schedule your threads</p>
  </blockquote>
  
  <p>Is this the only advantage, or are there any other advantage for users that are optimizing their applications or investigating micro-architecture?</p>
  
  <p>I also suspect that the MMU simulation is another important feature that is only modeled properly in full system mode, and could affect program performance.</p>