# Linux Kernel Module Cheat

##### 11.7.5.1. gem5 syscall emulation --smt

gem5 b1623cb2087873f64197e503ab8894b5e4d4c7b4 syscall emulation has an `--smt` option presumably for Hardware threads but it has been neglected forever it seems: https://github.com/cirosantilli/linux-kernel-module-cheat/issues/104

If we start from the manually hacked working command from gem5 syscall emulation multiple executables and try to add:

    --cpu 1 --cpu-type Derivo3CPU --caches

We choose `DerivO3CPU` because of the se.py assert:

    example/se.py:115:        assert(options.cpu_type == "DerivO3CPU")

But then that fails with:

    gem5.opt: /path/to/linux-kernel-module-cheat/out/gem5/master3/build/ARM/cpu/o3/cpu.cc:205: FullO3CPU<Impl>::FullO3CPU(DerivO3CPUParams*) [with Impl = O3CPUImpl]: Assertion `params->numPhysVecPredRegs >= numThreads * TheISA::NumVecPredRegs' failed.
    Program aborted at tick 0