linux/tools/perf/util
Paul E. McKenney a26ac2455f rcu: move TREE_RCU from softirq to kthread
If RCU priority boosting is to be meaningful, callback invocation must
be boosted in addition to preempted RCU readers.  Otherwise, in presence
of CPU real-time threads, the grace period ends, but the callbacks don't
get invoked.  If the callbacks don't get invoked, the associated memory
doesn't get freed, so the system is still subject to OOM.

But it is not reasonable to priority-boost RCU_SOFTIRQ, so this commit
moves the callback invocations to a kthread, which can be boosted easily.

Also add comments and properly synchronized all accesses to
rcu_cpu_kthread_task, as suggested by Lai Jiangshan.

Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
2011-05-05 23:16:54 -07:00
..
include perf evsel: Introduce perf_evlist 2011-01-22 19:56:28 -02:00
scripting-engines perf session: Pass evsel in event_ops->sample() 2011-03-23 19:28:58 -03:00
ui perf hists browser: Fix seg fault when annotate null symbol 2011-04-15 12:51:49 -03:00
PERF-VERSION-GEN perf tools: Version incorrect with some versions of grep 2011-03-16 08:59:50 -03:00
abspath.c
alias.c
annotate.c perf symbols: Rename dso->origin to dso->symtab_type 2011-03-11 13:28:45 -03:00
annotate.h perf top: Live TUI Annotation 2011-02-22 12:02:07 -03:00
bitmap.c
build-id.c perf session: Pass evsel in event_ops->sample() 2011-03-23 19:28:58 -03:00
build-id.h
cache.h perf tools: Don't fallback to setup_pager unconditionally 2011-01-31 18:08:39 -02:00
callchain.c perf tools: Kill event_t typedef, use 'union perf_event' instead 2011-01-29 16:25:37 -02:00
callchain.h perf tools: Kill event_t typedef, use 'union perf_event' instead 2011-01-29 16:25:37 -02:00
cgroup.c perf: Fix a build error with some GCC versions 2011-04-08 17:40:21 +02:00
cgroup.h perf tool: Add cgroup support 2011-02-16 13:30:48 +01:00
color.c
color.h
config.c
cpumap.c perf tools: Add missing cpu_map__delete() 2011-01-22 19:56:30 -02:00
cpumap.h perf tools: Add missing cpu_map__delete() 2011-01-22 19:56:30 -02:00
ctype.c
debug.c perf tools: Fixup exit path when not able to open events 2011-03-29 13:40:27 -03:00
debug.h perf tools: Fixup exit path when not able to open events 2011-03-29 13:40:27 -03:00
debugfs.c
debugfs.h
environment.c
event.c perf symbols: Fix vsyscall symbol lookup 2011-03-28 14:44:15 -03:00
event.h Merge remote branch 'acme/perf/urgent' into perf/core 2011-02-11 11:45:54 -02:00
evlist.c perf evsel: Fix use of inherit 2011-04-15 12:52:28 -03:00
evlist.h perf session: Use evlist/evsel for managing perf.data attributes 2011-03-10 11:15:54 -03:00
evsel.c perf evsel: Fix use of inherit 2011-04-15 12:52:28 -03:00
evsel.h perf evsel: Fix use of inherit 2011-04-15 12:52:28 -03:00
exec_cmd.c perf tools: Makefile: Remove various and sundry cruft 2011-02-18 07:43:06 -02:00
exec_cmd.h
generate-cmdlist.sh
header.c perf build-id: Add quirk to deal with perf.data file format breakage 2011-03-23 19:29:40 -03:00
header.h perf header: Stop using 'self' 2011-03-10 11:16:28 -03:00
help.c
help.h
hist.c perf tools: Improve support for sessions with multiple events 2011-03-06 13:13:40 -03:00
hist.h perf session: Pass evsel in event_ops->sample() 2011-03-23 19:28:58 -03:00
hweight.c
levenshtein.c
levenshtein.h
map.c perf tools: Fix 64 bit integer format strings 2011-01-22 23:41:57 -02:00
map.h
pager.c
parse-events.c perf script: Add support for H/W and S/W events 2011-03-14 17:07:20 -03:00
parse-events.h perf script: Add support for H/W and S/W events 2011-03-14 17:07:20 -03:00
parse-options.c
parse-options.h
path.c
probe-event.c perf probe: Fix multiple --vars options behavior 2011-04-05 15:36:04 -03:00
probe-event.h perf probe: Add filters support for available functions 2011-01-28 09:20:25 -02:00
probe-finder.c perf probe: Fix listing incorrect line number with inline function 2011-04-05 15:38:12 -03:00
probe-finder.h
pstack.c
pstack.h
python.c perf evsel: Fix use of inherit 2011-04-15 12:52:28 -03:00
quote.c
quote.h
run-command.c
run-command.h
session.c perf session: Pass evsel in event_ops->sample() 2011-03-23 19:28:58 -03:00
session.h perf session: Pass evsel in event_ops->sample() 2011-03-23 19:28:58 -03:00
setup.py perf tools: Fix NO_NEWT=1 python build error 2011-03-29 16:46:57 -03:00
sigchain.c
sigchain.h
sort.c
sort.h
strbuf.c
strbuf.h
strfilter.c perf: Fix missing strndup declaration 2011-03-04 01:17:18 +01:00
strfilter.h perf tools: Add strfilter for general purpose string filter 2011-01-28 09:19:38 -02:00
string.c Fix common misspellings 2011-03-31 11:26:23 -03:00
strlist.c
strlist.h
svghelper.c perf timechart: Fix black idle boxes in the title 2011-02-28 08:56:14 +01:00
svghelper.h
symbol.c perf symbols: Properly align symbol_conf.priv_size 2011-03-29 14:18:39 -03:00
symbol.h perf symbol: Move sym_entry->skip to symbol->ignore 2011-03-11 13:36:01 -03:00
thread.c perf threads: Move thread_map to separate file 2011-01-24 10:59:00 -02:00
thread.h perf threads: Move thread_map to separate file 2011-01-24 10:59:00 -02:00
thread_map.c perf threads: Move thread_map to separate file 2011-01-24 10:59:00 -02:00
thread_map.h perf threads: Move thread_map to separate file 2011-01-24 10:59:00 -02:00
top.c perf top: Remove redundant syme->origin field 2011-03-11 13:28:45 -03:00
top.h perf symbol: Move sym_entry->skip to symbol->ignore 2011-03-11 13:36:01 -03:00
trace-event-info.c
trace-event-parse.c rcu: move TREE_RCU from softirq to kthread 2011-05-05 23:16:54 -07:00
trace-event-read.c
trace-event-scripting.c perf session: Pass evsel in event_ops->sample() 2011-03-23 19:28:58 -03:00
trace-event.h perf session: Pass evsel in event_ops->sample() 2011-03-23 19:28:58 -03:00
types.h perf tools: Fix 64 bit integer format strings 2011-01-22 23:41:57 -02:00
usage.c
util.c
util.h perf tools: Makefile: Remove platform-specific cruft 2011-02-18 07:42:07 -02:00
values.c perf tools: Fix 64 bit integer format strings 2011-01-22 23:41:57 -02:00
values.h
wrapper.c
xyarray.c
xyarray.h