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
abspath.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
alias.c perf_counter tools: Add more warnings and fix/annotate them 2009-07-01 12:49:48 +02:00
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 perf tools: Don't use code surrounded by __KERNEL__ 2010-05-02 12:00:44 -03:00
build-id.c perf session: Pass evsel in event_ops->sample() 2011-03-23 19:28:58 -03:00
build-id.h perf annotate: Use build-ids to find the right DSO 2010-05-20 12:15:33 -03:00
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 perf hist: Replace ->print() routines by ->snprintf() equivalents 2010-04-02 16:28:15 -03:00
color.h perf hist: Replace ->print() routines by ->snprintf() equivalents 2010-04-02 16:28:15 -03:00
config.c perf buildid: add perfconfig option to specify buildid cache dir 2010-06-05 09:34:04 -03:00
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 perf tools: Move graph_line and graph_dotted_line from top 2009-11-23 21:55:20 +01:00
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 perf trace: Clean up find_debugfs() 2009-12-28 10:36:36 +01:00
debugfs.h perf tools: Mount debugfs automatically 2009-12-28 10:36:36 +01:00
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 perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
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 perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
help.h perf tools: Protect header files with a consistent style 2009-09-24 21:27:51 +02:00
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 perf tools: Don't use code surrounded by __KERNEL__ 2010-05-02 12:00:44 -03:00
levenshtein.c
levenshtein.h perf tools: Protect header files with a consistent style 2009-09-24 21:27:51 +02:00
map.c perf tools: Fix 64 bit integer format strings 2011-01-22 23:41:57 -02:00
map.h perf probe: Add basic module support 2010-10-21 16:11:44 -02:00
pager.c perf_counter tools: Remove dead code 2009-06-27 06:06:39 +02:00
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 perf options: Type check all the remaining OPT_ variants 2010-05-17 16:22:41 -03:00
parse-options.h perf options: add OPT_CALLBACK_DEFAULT_NOOPT 2010-12-06 15:33:29 -02:00
path.c perf tools: add test for strlcpy() 2010-08-21 11:22:47 -03:00
PERF-VERSION-GEN perf tools: Version incorrect with some versions of grep 2011-03-16 08:59:50 -03:00
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 perf tools: Remove hardcoded include paths for elfutils 2010-11-19 16:38:04 -02:00
pstack.c perf newt: Make <- zoom out filters 2010-05-14 20:05:21 -03:00
pstack.h perf ui: Move hists browser to util/ui/browsers/ 2010-08-10 16:11:08 -03:00
python.c perf evsel: Fix use of inherit 2011-04-15 12:52:28 -03:00
quote.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
quote.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
run-command.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
run-command.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
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 perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
sigchain.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
sort.c perf hist: Better displaying of unresolved DSOs and symbols 2010-12-06 15:12:34 -02:00
sort.h perf: Keep track of the max depth of a callchain 2010-08-22 20:43:17 +02:00
strbuf.c perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
strbuf.h perf tools: Remove some unused functions 2010-05-18 23:03:35 -03:00
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 perf probe: Fix --del to update current event list 2009-12-15 20:22:01 +01:00
strlist.h perf tools: Add for_each macros for strlist 2009-12-15 20:22:02 +01:00
svghelper.c perf timechart: Fix black idle boxes in the title 2011-02-28 08:56:14 +01:00
svghelper.h perf tools: Protect header files with a consistent style 2009-09-24 21:27:51 +02:00
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_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
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
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 perf tools: Introduce event selectors 2011-01-03 16:39:04 -02:00
trace-event-parse.c rcu: move TREE_RCU from softirq to kthread 2011-05-05 23:16:54 -07:00
trace-event-read.c perf: Use read() instead of lseek() in trace_event_read.c:skip() 2010-05-20 08:37:17 +02:00
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 perf top: Fall back to cpu-clock-tick hrtimer sampling if no cycle counter available 2009-06-07 17:31:52 +02:00
util.c perf util: Move do_read from session to util 2011-01-03 16:50:55 -02:00
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 perf tools: Protect header files with a consistent style 2009-09-24 21:27:51 +02:00
wrapper.c perf tools: remove xstrndup, xmalloc, xzalloc 2010-05-18 23:05:28 -03:00
xyarray.c perf tools: Introduce event selectors 2011-01-03 16:39:04 -02:00
xyarray.h perf tools: Introduce event selectors 2011-01-03 16:39:04 -02:00