History log of /fuchsia/zircon/kernel/tests/timer_tests.cpp
Revision Date Author Comments
# 73bd065d 19-Sep-2018 Nick Maniscalco <maniscalco@google.com>

[kernel][timer][test] Don't assert trylock result to eliminate test flake

I was overzealous with my test assertions in
Ie46d329d59cf00ed8d8d4e9c51b80fd4b7c6a517.

While unlikely, the timer could certainly observe the cancel before
the lock release so we can't assert on the result of
trylock_or_cancel.

Test: "k ut timer" in a loop on VIM2 for several mins, no failures

Change-Id: I2f6c6e8a3fc39a024229676167cc55b84cf2df89


# f49420da 17-Sep-2018 Nick Maniscalco <maniscalco@google.com>

[kernel][timer][test] Add stress test for kernel timers

Add a simple timer stress test that reproduces the system hang
observed in ZX-2562.

Prior to I9cc79d6c00dc5eaf574c0dc51dbf030158cdadfb, this test
immediately triggers a system hang on VIM2. After the change, no hang.

Example output:

$ k timer_stress
not enough args
usage: timer_stress <num seconds>
$ k timer_stress 1
running for 1 seconds
timer stress done; timer set 21759, timer fired 21645
$ k timer_stress 2
running for 2 seconds
timer stress done; timer set 35657, timer fired 35469

Test: ran "k timer_stress 60", observed no hangs

ZX-2562 #comment add repro stress test

Change-Id: I003004f1d4fc37585465fb2bb37431bf98471501


# 11e1c88e 17-Sep-2018 Nick Maniscalco <maniscalco@google.com>

[kernel][timer] Add timer unit tests and rename timer_tests command

Add some basic unit tests for kernel timers.

Rename "k timer_tests" to "k timer_diag" so someone doesn't mistake it
for unit tests.

Test: ran "k timer_diag"; ran "k ut timer"

Change-Id: Ie46d329d59cf00ed8d8d4e9c51b80fd4b7c6a517


# 048b4b3c 17-Aug-2018 Nick Maniscalco <maniscalco@google.com>

[kernel][heap] Don't use heap for thread stacks

Kernel stacks are now allocated by vm_allocate_kstack.

Thread creation no longer allows you to bring your own
stack. thread_create and thread_create_etc now always create a stack
of size DEFAULT_STACK_SIZE.

Remove THREAD_STACK_BOUNDS_CHECK feature as it has been subsumed by
guard pages provided by vm_allocate_kstack.

Test: verified no leaks using "k vmm kaspaces" and "k thread_tests"

ZX-2509 #done

Change-Id: I8dbde5c8a6852775b9796e0c7f963289291822b2


# e302c45d 26-Jul-2018 Nick Maniscalco <maniscalco@google.com>

[zircon][syscalls] Make zx_time_t and zx_duration_t signed types

This change is part of a hard transition and breaks the layers above.

zx_time_t and zx_duration_t are now int64_t. ZX_TIME_INFINITE is now
INT64_MAX.

A negative time value passed to a syscall is treated as any other time
value that's "in the past".

Test: CQ; new unit tests; built and ran topaz system on Eve

ZX-2100 #comment

Change-Id: I2a020cb2cf3dd7212608e24c1ee90cec58dd51ef


# ca7f5a1f 15-Jun-2018 Roland McGrath <mcgrathr@google.com>

[kernel][cmd] Don't cast between function pointer types

Such casts are not valid in standard C++.

Change-Id: I99e5c95ee3c802bd9051904fffc3ac98aeec93d2


# dd8669e1 06-Jun-2018 George Kulakowski <kulakowski@google.com>

[kernel] Prefer fbl::count_of in C++ code

This also migrates some C++ code to use fbl::atomic, to help settle
some integer comparison differences.

Change-Id: Ief77949d571351a3990fe9a8251d56d35735422c


# f6fc40ba 23-Feb-2018 Mark Seaborn <mseaborn@google.com>

[kernel][tests] Fix printf() format string warnings

Enable -Wformat warnings for this directory by removing -Wno-format.

This involves:
* Size fixes for correctness/strictness.
* Signedness fixes, because we compile the kernel with
-Wformat-signedness (which GCC supports but Clang does not support).

Change-Id: Id1f3a73f4dbeee319e2aa80b05cc6648280dafd5


# 5907e30d 23-Jan-2018 Mark Seaborn <mseaborn@google.com>

[kernel][timer] Change timer callbacks to return void

Following recent changes, all of the timer callbacks now always return
INT_NO_RESCHEDULE. We can therefore remove the return values. We can
change the timer callbacks to return void instead of "enum
handler_return".

ZX-1490

Change-Id: Idb42c52c1daec599ffb16d5862048d57f520db0f


# 92fc9801 23-Jan-2018 Mark Seaborn <mseaborn@google.com>

[kernel] Convert remaining timer callbacks to make use of preempt_disable

Remove the remaining uses of INT_RESCHEDULE in timer callbacks.
Convert to calling thread_preempt_set_pending() or passing
reschedule=true.

Note that for threadload() in debug.c, printf() currently does not
trigger a reschedule by itself for running debuglog. In this CL, I am
not changing printf() to trigger a reschedule yet, because that has
potential to cause performance regressions.

ZX-1490

Change-Id: I2b5f13028fdcb1ca629ae57ac9dda86ede2505d2


# 89b0728c 10-Jan-2018 Mark Seaborn <mseaborn@google.com>

[kernel] Cleanup: Refer to "timer_t" rather than "struct timer" for consistency

ZX-1490

Change-Id: I653b55552c901ad5ee43fb3ba3826b51a01038d1


# 07e82268 05-Oct-2017 Roland McGrath <mcgrathr@google.com>

[kernel] Remove kernel/app module

This is no longer used at all.
The kernel/app/tests code doesn't use the "app" infrastructure.
So move it to kernel/tests.

Change-Id: I6cd8ec1bf569fd95940e5ebf4dc5f640b265eb69