linux/kernel
Paul E. McKenney c17ac85504 Make rcutorture RNG use temporal entropy
Repost of http://lkml.org/lkml/2007/8/10/472 made available by request.

The locking used by get_random_bytes() can conflict with the
preempt_disable() and synchronize_sched() form of RCU.  This patch changes
rcutorture's RNG to gather entropy from the new cpu_clock() interface
(relying on interrupts, preemption, daemons, and rcutorture's reader
thread's rock-bottom scheduling priority to provide useful entropy), and
also adds and EXPORT_SYMBOL_GPL() to make that interface available to GPLed
kernel modules such as rcutorture.

Passes several hours of rcutorture.

[ego@in.ibm.com: Use raw_smp_processor_id() in rcu_random()]
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Gautham R Shenoy <ego@in.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-17 08:42:53 -07:00
..
irq Fix CONFIG_DEBUG_SHIRQ trigger on free_irq() 2007-10-17 08:42:49 -07:00
power hibernation doesn't even build on frv - tons of helpers are missing 2007-09-26 09:22:04 -07:00
time Use num_possible_cpus() instead of NR_CPUS for timer distribution 2007-10-17 08:42:53 -07:00
.gitignore
acct.c
audit.c [NET]: make netlink user -> kernel interface synchronious 2007-10-10 21:15:29 -07:00
audit.h
auditfilter.c
auditsc.c Clean up duplicate includes in kernel/ 2007-10-17 08:42:48 -07:00
capability.c
compat.c
configs.c
cpu.c
cpuset.c oom: compare cpuset mems_allowed instead of exclusive ancestors 2007-10-17 08:42:46 -07:00
delayacct.c sched: clean up schedstats, cnt -> count 2007-10-15 17:00:12 +02:00
die_notifier.c
dma.c
exec_domain.c
exit.c wait_task_stopped/continued: remove unneeded p->signal != NULL check 2007-10-17 08:42:52 -07:00
extable.c
fork.c Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
futex_compat.c robust futex thread exit race 2007-10-01 07:52:23 -07:00
futex.c robust futex thread exit race 2007-10-01 07:52:23 -07:00
hrtimer.c [KTIME]: Introduce ktime_sub_ns and ktime_sub_us 2007-10-10 16:48:12 -07:00
itimer.c
kallsyms.c
Kconfig.hz
Kconfig.preempt
kexec.c Clean up duplicate includes in kernel/ 2007-10-17 08:42:48 -07:00
kfifo.c
kmod.c
kprobes.c kprobes: support kretprobe blacklist 2007-10-16 09:43:10 -07:00
ksysfs.c sched: group scheduling, sysfs tunables 2007-10-15 17:00:14 +02:00
kthread.c
latency.c
lockdep_internals.h
lockdep_proc.c lockdep: Avoid /proc/lockdep & lock_stat infinite output 2007-10-11 22:11:11 +02:00
lockdep.c lockdep: syscall exit check 2007-10-11 22:11:12 +02:00
Makefile
module.c Add /sys/module/name/notes 2007-10-17 08:42:50 -07:00
mutex-debug.c
mutex-debug.h
mutex.c lockdep: fixup mutex annotations 2007-10-11 22:11:12 +02:00
mutex.h
nsproxy.c [NET]: Add network namespace clone & unshare support. 2007-10-10 16:52:46 -07:00
panic.c
params.c
pid.c
posix-cpu-timers.c
posix-timers.c SLAB_PANIC more (proc, posix-timers, shmem) 2007-10-17 08:42:47 -07:00
printk.c printk: add interfaces for external access to the log buffer 2007-10-17 08:42:50 -07:00
profile.c Memoryless nodes: Allow profiling data to fall back to other nodes 2007-10-16 09:42:58 -07:00
ptrace.c m32r: convert to generic sys_ptrace 2007-10-16 09:43:04 -07:00
rcupdate.c Clean up duplicate includes in kernel/ 2007-10-17 08:42:48 -07:00
rcutorture.c Make rcutorture RNG use temporal entropy 2007-10-17 08:42:53 -07:00
relay.c
resource.c memory unplug: memory hotplug cleanup 2007-10-16 09:43:01 -07:00
rtmutex_common.h
rtmutex-debug.c kernel/rtmutex-debug.c: cleanups 2007-10-17 08:42:50 -07:00
rtmutex-debug.h
rtmutex-tester.c
rtmutex.c
rtmutex.h
rwsem.c
sched_debug.c Make scheduler debug file operations const 2007-10-15 17:00:19 +02:00
sched_fair.c sched: reintroduce cache-hot affinity 2007-10-15 17:00:18 +02:00
sched_idletask.c sched: mark scheduling classes as const 2007-10-15 17:00:12 +02:00
sched_rt.c sched: tidy up SCHED_RR 2007-10-15 17:00:13 +02:00
sched_stats.h sched: clean up schedstats, cnt -> count 2007-10-15 17:00:12 +02:00
sched.c cpuset: remove sched domain hooks from cpusets 2007-10-16 09:43:09 -07:00
seccomp.c
signal.c __group_complete_signal: eliminate unneeded wakeup of ->group_exit_task 2007-10-17 08:42:51 -07:00
softirq.c [KERNEL]: Unexport raise_softirq_irqoff 2007-10-10 16:49:18 -07:00
softlockup.c softlockup: add a /proc tuning parameter 2007-10-17 08:42:47 -07:00
spinlock.c
srcu.c
stacktrace.c
stop_machine.c
sys_ni.c
sys.c Fix SMP poweroff hangs 2007-10-01 07:52:23 -07:00
sysctl.c softlockup: add a /proc tuning parameter 2007-10-17 08:42:47 -07:00
taskstats.c Clean up duplicate includes in kernel/ 2007-10-17 08:42:48 -07:00
time.c Clean up duplicate includes in kernel/ 2007-10-17 08:42:48 -07:00
timer.c
tsacct.c
uid16.c
user_namespace.c
user.c sched: generate uevents for user creation/destruction 2007-10-15 17:00:18 +02:00
utsname_sysctl.c
utsname.c
wait.c
workqueue.c