# Linux Kernel Module Cheat

###### 24.22.4.1.2. AtomicSimpleCPU tick reschedule timing

Inside `AtomicSimpleCPU::tick()` we saw previously that the reschedule happens at:

        if (latency < clockPeriod())
            latency = clockPeriod();

        if (_status != Idle)
            reschedule(tickEvent, curTick() + latency, true);

so it is interesting to learn where that `latency` comes from.

From our logs, we see that all events happened with a `500` time unit interval between them, so that must be the value for all instructions of our simple example.

By GDBing it a bit, we see that none of our instructions incremented `latency`, and so it got set to `clockPeriod()`, which comes from `ClockDomain::clockPeriod()` which then likely comes from:

        parser.add_option("--cpu-clock", action="store", type="string",
                          default='2GHz',

because the time unit is picoseconds. This then shows on the `config.ini` as:

    [system.cpu_clk_domain]
    type=SrcClockDomain
    clock=500