• Johannes Berg's avatar
    um: Support time travel mode · 06503870
    Johannes Berg authored
    Sometimes it can be useful to run with "time travel" inside the
    UML instance, for example for testing. For example, some tests
    for the wireless subsystem and userspace are based on hwsim, a
    virtual wireless adapter. Some tests can take a long time to
    run because they e.g. wait for 120 seconds to elapse for some
    regulatory checks. This obviously goes faster if it need not
    actually wait that long, but time inside the test environment
    just "bumps up" when there's nothing to do.
    
    Add CONFIG_UML_TIME_TRAVEL_SUPPORT to enable code to support
    such modes at runtime, selected on the command line:
     * just "time-travel", in which time inside the UML instance
       can move faster than real time, if there's nothing to do
     * "time-travel=inf-cpu" in which time also moves slower and
       any CPU processing takes no time at all, which allows to
       implement consistent behaviour regardless of host CPU load
       (or speed) or debug overhead.
    
    An additional "time-travel-start=<seconds>" parameter is also
    supported in this case to start the wall clock at this time
    (in unix epoch).
    
    With this enabled, the test mentioned above goes from a runtime
    of about 140 seconds (with startup overhead and all) to being
    CPU bound and finishing in 15 seconds (on my slow laptop).
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
    06503870
time.c 6.54 KB