linux/arch/um/kernel
Johannes Berg 065038706f um: Support time travel mode
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: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
2019-07-02 23:27:36 +02:00
..
skas um: Support time travel mode 2019-07-02 23:27:36 +02:00
asm-offsets.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
config.c.in um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
dyn.lds.S Construct init thread stack in the linker script rather than by union 2018-01-09 23:21:02 +00:00
early_printk.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
exec.c sched/headers: Prepare to remove the <linux/mm_types.h> dependency from <linux/sched.h> 2017-03-02 08:42:37 +01:00
exitcode.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
gmon_syms.c um: Fix CONFIG_GCOV for modules. 2017-09-13 22:33:54 +02:00
gprof_syms.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
initrd.c treewide: add checks for the return value of memblock_alloc*() 2019-03-12 10:04:02 -07:00
irq.c um: Don't garbage collect in deactivate_all_fds() 2019-07-02 23:27:19 +02:00
kmsg_dump.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ksyms.c um: Move syscall() declaration into os.h 2015-05-31 13:14:07 +02:00
maccess.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
Makefile um: Support kcov 2016-08-04 00:18:06 +02:00
mem.c initramfs: provide a generic free_initrd_mem implementation 2019-05-14 09:47:47 -07:00
physmem.c mm: remove include/linux/bootmem.h 2018-10-31 08:54:16 -07:00
process.c um: Support time travel mode 2019-07-02 23:27:36 +02:00
ptrace.c Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
reboot.c sched/headers: Prepare to remove the <linux/mm_types.h> dependency from <linux/sched.h> 2017-03-02 08:42:37 +01:00
sigio.c um: Remove obsolete reenable_XX calls 2018-12-27 22:48:35 +01:00
signal.c Revert "um: Fix get_signal() usage" 2016-03-05 22:16:40 +01:00
stacktrace.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
syscall.c mm: add ksys_mmap_pgoff() helper; remove in-kernel calls to sys_mmap_pgoff() 2018-04-02 20:16:11 +02:00
sysrq.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
time.c um: Support time travel mode 2019-07-02 23:27:36 +02:00
tlb.c um: Optimize Flush TLB for force/fork case 2018-12-27 22:48:34 +01:00
trap.c um: trap: fix spelling mistake, EACCESS -> EACCES 2018-10-29 22:34:15 +01:00
um_arch.c Construct init thread stack in the linker script rather than by union 2018-01-09 23:21:02 +00:00
umid.c um: Use os_warn to print out pre-boot warning/error messages 2017-07-05 23:18:25 +02:00
uml.lds.S Construct init thread stack in the linker script rather than by union 2018-01-09 23:21:02 +00:00
vmlinux.lds.S