ksft_print_dbg_msg
ksft_print_dbg_msg("Requeuing 1 futex from f1 to f2\n");
ksft_print_dbg_msg("Waking 1 futex at f2\n");
ksft_print_dbg_msg("Waking 3 futexes at f1 and requeuing 7 futexes from f1 to f2\n");
ksft_print_dbg_msg("Waking INT_MAX futexes at f2\n");
ksft_print_dbg_msg("Waiter %ld: running\n", args->id);
ksft_print_dbg_msg("Calling futex_wait_requeue_pi: %p (%u) -> %p\n",
ksft_print_dbg_msg("waiter %ld woke with %d %s\n", args->id, args->ret,
ksft_print_dbg_msg("Waiter %ld: exiting with %d\n", args->id, args->ret);
ksft_print_dbg_msg("Waker: waiting for waiters to block\n");
ksft_print_dbg_msg("Waker: Calling broadcast\n");
ksft_print_dbg_msg("Calling FUTEX_LOCK_PI on mutex=%x @ %p\n", f2, &f2);
ksft_print_dbg_msg("Waker: exiting with %d\n", args->ret);
ksft_print_dbg_msg("Waker: waiting for waiters to block\n");
ksft_print_dbg_msg("task_count: %d, waiters_woken: %d\n",
ksft_print_dbg_msg("Calling FUTEX_LOCK_PI on mutex=%x @ %p\n",
ksft_print_dbg_msg("Waker: Calling signal\n");
ksft_print_dbg_msg("futex: %x\n", f2);
ksft_print_dbg_msg("Calling FUTEX_UNLOCK_PI on mutex=%x @ %p\n",
ksft_print_dbg_msg("futex: %x\n", f2);
ksft_print_dbg_msg("Waker: exiting with %d\n", args->ret);
ksft_print_dbg_msg("Waker: waiters_woken: %d\n", waiters_woken.val);
ksft_print_dbg_msg("timeout_ns = %ld\n", timeout_ns);
ksft_print_dbg_msg("ts.tv_sec = %ld\n", ts.tv_sec);
ksft_print_dbg_msg("ts.tv_nsec = %ld\n", ts.tv_nsec);
ksft_print_dbg_msg("Starting thread %d\n", i);
ksft_print_dbg_msg("m1:f2: %x\n", f2);
ksft_print_dbg_msg("Creating waiter\n");
ksft_print_dbg_msg("Calling FUTEX_LOCK_PI on f2=%x @ %p\n", f2, &f2);
ksft_print_dbg_msg("m2:f2: %x\n", f2);
ksft_print_dbg_msg("m3:f2: %x\n", f2);
ksft_print_dbg_msg("Issuing SIGUSR1 to waiter\n");
ksft_print_dbg_msg("Requeueing waiter via FUTEX_CMP_REQUEUE_PI\n");
ksft_print_dbg_msg("m4:f2: %x\n", f2);
ksft_print_dbg_msg("Issuing SIGUSR1 to waiter\n");
ksft_print_dbg_msg("Waiting for waiter to return\n");
ksft_print_dbg_msg("Calling FUTEX_UNLOCK_PI on mutex=%x @ %p\n", f2, &f2);
ksft_print_dbg_msg("m5:f2: %x\n", f2);
ksft_print_dbg_msg("signal received %s requeue\n",
ksft_print_dbg_msg("Waiter running\n");
ksft_print_dbg_msg("Calling FUTEX_LOCK_PI on f2=%x @ %p\n", f2, &f2);
ksft_print_dbg_msg("w2:futex: %x\n", f2);
ksft_print_dbg_msg("Calling shared (file backed) futex_wait on futex: %p\n", futex);
ksft_print_dbg_msg("Calling shared (file backed) futex_wake on futex: %p\n", futex);
ksft_print_dbg_msg("Calling private futex_wait on futex: %p\n", futex);
ksft_print_dbg_msg("Calling private futex_wake on futex: %p\n", futex);
ksft_print_dbg_msg("Calling shared (page anon) futex_wait on futex: %p\n", futex);
ksft_print_dbg_msg("Calling shared (page anon) futex_wake on futex: %p\n", futex);
ksft_print_dbg_msg("futex wait\n");
ksft_print_dbg_msg("futex_wait: ret = %d, errno = %d\n", ret, errno);
ksft_print_dbg_msg("wait a while\n");
ksft_print_dbg_msg("futex_wake %d\n", res);
ksft_print_dbg_msg("join\n");
ksft_print_dbg_msg("waiting %dus for child to return\n", WAIT_US);
ksft_print_dbg_msg("Calling futex_wait on f1: %u @ %p with val=%u\n", f1, &f1, f1+1);
ksft_print_dbg_msg("Calling futex_waitv on f1: %u @ %p with val=%u\n", f1, &f1, f1+1);