summaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace_events.c
diff options
context:
space:
mode:
authorAlexey Kardashevskiy2015-12-06 03:14:19 +0100
committerPaul E. McKenney2015-12-08 02:01:33 +0100
commit69b907297f4edf13182e3fa3adc0160df077746c (patch)
tree426f6e2eefb7c03e0f278231f20166514dcdde3e /kernel/trace/trace_events.c
parentrcu: Make rcu_gp_init() be bool rather than int (diff)
downloadkernel-qcow2-linux-69b907297f4edf13182e3fa3adc0160df077746c.tar.gz
kernel-qcow2-linux-69b907297f4edf13182e3fa3adc0160df077746c.tar.xz
kernel-qcow2-linux-69b907297f4edf13182e3fa3adc0160df077746c.zip
list: Add lockless list traversal primitives
Although list_for_each_entry_rcu() can in theory be used anywhere preemption is disabled, it can result in calls to lockdep, which cannot be used in certain constrained execution environments, such as exception handlers that do not map the entire kernel into their address spaces. This commit therefore adds list_entry_lockless() and list_for_each_entry_lockless(), which never invoke lockdep and can therefore safely be used from these constrained environments, but only as long as those environments are non-preemptible (or items are never deleted from the list). Use synchronize_sched(), call_rcu_sched(), or synchronize_sched_expedited() in updates for the needed grace periods. Of course, if items are never deleted from the list, there is no need to wait for grace periods. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'kernel/trace/trace_events.c')
0 files changed, 0 insertions, 0 deletions