poc.ko exposes six module_param variables that let you tune the exploit’s
virtualization backend, kthread count, race timing, diagnostic verbosity, and
shadow page cache pressure. All parameters are read-only after load (mode
0444) and are passed as key=value arguments to insmod. The defaults are
chosen to work on a wide range of hardware with no extra flags required.
Parameter Reference
The declarations frompoc.c are reproduced below for reference:
int
default:"0"
Selects the virtualization backend.
Must match the host CPU architecture. Loading with the wrong value causes the
module to abort immediately with a
CPU lacks VMX/SVM error.Example — AMD host:int
default:"8"
Number of vCPU kthreads to launch. The actual count is capped at
Exactly one thread (cpu 0) is always the writer. The remaining threads
are either flood threads (Intel only, controlled by
num_online_cpus() at load time. Thread roles are assigned as follows:nflood) or
faulter threads. Higher values increase race contention between faulters
and the writer’s page-track callback, which generally shortens the time to
trigger.int
default:"256"
Number of Lower values increase toggle frequency. Higher values widen the
race window per toggle. The default of
cpu_relax() spins inserted between each PDE toggle. The writer
thread alternates between writing a huge-page PTE and a table PTE at
nest_pd[PDE_IDX]; dwell controls how long it pauses at each state:256 is a middle ground that works
reliably across typical guest CPU counts.int
default:"600000"
Maximum race duration in milliseconds (default: 10 minutes). If the race has
not triggered within this window, the writer thread sets
stop_all = 1 and
the module self-terminates.Set to 0 for an indefinite run — the module will keep racing until it is
manually removed with rmmod poc or the host panics.int
default:"1"
Diagnostic output verbosity level written to the kernel log.
int
default:"0"
Number of EPT-pointer flood vCPUs. Intel VMX only — this parameter is
ignored when Adding flood threads increases shadow page cache pressure on the host, which
can widen the race window by delaying shadow page cleanup. Use
amd=1.Flood threads do not participate in the writer/faulter race. Instead, each
flood thread cycles through NPRESS (200) different pre-built EPT roots on
every vmexit, stressing the host’s shadow page cache eviction path:nflood=4 as
a starting point on hosts with 16 or more physical CPUs.