aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/features/lib/strncasecmp/ssh:/git@git.zx2c4.com
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2020-05-27 22:11:15 +0200
committerIngo Molnar <mingo@kernel.org>2020-05-28 10:31:10 +0200
commitb01b2141999936ac3e4746b7f76c0f204ae4b445 (patch)
tree3bcc43a5fad0b59f0919e7fc2a4ed7e381c3d947 /Documentation/features/lib/strncasecmp/ssh:/git@git.zx2c4.com
parentradix-tree: Use local_lock for protection (diff)
mm/swap: Use local_lock for protection
The various struct pagevec per CPU variables are protected by disabling either preemption or interrupts across the critical sections. Inside these sections spinlocks have to be acquired. These spinlocks are regular spinlock_t types which are converted to "sleeping" spinlocks on PREEMPT_RT enabled kernels. Obviously sleeping locks cannot be acquired in preemption or interrupt disabled sections. local locks provide a trivial way to substitute preempt and interrupt disable instances. On a non PREEMPT_RT enabled kernel local_lock() maps to preempt_disable() and local_lock_irq() to local_irq_disable(). Create lru_rotate_pvecs containing the pagevec and the locallock. Create lru_pvecs containing the remaining pagevecs and the locallock. Add lru_add_drain_cpu_zone() which is used from compact_zone() to avoid exporting the pvec structure. Change the relevant call sites to acquire these locks instead of using preempt_disable() / get_cpu() / get_cpu_var() and local_irq_disable() / local_irq_save(). There is neither a functional change nor a change in the generated binary code for non PREEMPT_RT enabled non-debug kernels. When lockdep is enabled local locks have lockdep maps embedded. These allow lockdep to validate the protections, i.e. inappropriate usage of a preemption only protected sections would result in a lockdep warning while the same problem would not be noticed with a plain preempt_disable() based protection. local locks also improve readability as they provide a named scope for the protections while preempt/interrupt disable are opaque scopeless. Finally local locks allow PREEMPT_RT to substitute them with real locking primitives to ensure the correctness of operation in a fully preemptible kernel. [ bigeasy: Adopted to use local_lock ] Signed-off-by: Ingo Molnar <mingo@kernel.org> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Ingo Molnar <mingo@kernel.org> Acked-by: Peter Zijlstra <peterz@infradead.org> Link: https://lore.kernel.org/r/20200527201119.1692513-4-bigeasy@linutronix.de
Diffstat (limited to 'Documentation/features/lib/strncasecmp/ssh:/git@git.zx2c4.com')
0 files changed, 0 insertions, 0 deletions
/span>perf config: Add '--system' and '--user' options to select which config file is usedTaeung Song1-0/+3 2015-12-17perf subcmd: Create subcmd libraryJosh Poimboeuf1-1/+1 2015-12-16perf tools: Provide subcmd configuration at runtimeJosh Poimboeuf1-0/+1 2015-12-16perf tools: Move strlcpy() from perf to tools/lib/string.cJosh Poimboeuf1-5/+2 2015-12-14perf tools: Create pager.hJosh Poimboeuf1-4/+1 2015-12-09perf tools: Remove unused pager_use_color variableJosh Poimboeuf1-1/+0 2015-05-14perf report: Fix some option handling on --stdioNamhyung Kim1-1/+0 2015-02-11perf tools: Make perf aware of tracefsSteven Rostedt (Red Hat)1-0/+1 2015-01-16perf tools: Elide strlcpy warning with uclibcVineet Gupta1-0/+2 2014-08-12perf tools: Add perf_config_u64 functionJiri Olsa1-0/+1 2013-10-09tools/perf: Turn strlcpy() into a __weak functionIngo Molnar1-2/+1 2013-10-09tools/perf: Standardize feature support define names to: HAVE_{FEATURE}_SUPPORTIngo Molnar1-1/+1 2012-11-14perf ui: Always compile browser setup codeNamhyung Kim1-38/+1 2012-10-02perf tools: Convert to HAVE_STRLCPYNamhyung Kim1-1/+1 2012-10-02perf tools: Convert to GTK2_SUPPORTNamhyung Kim1-13/+15 2012-10-02perf tools: Convert to NEWT_SUPPORTNamhyung Kim1-6/+6 2012-09-11perf tools: Use __maybe_used for unused variablesIrina Tirdea1-3/+3 2012-05-02perf ui: Change fallback policy of setup_browser()Namhyung Kim1-9/+6 2012-05-02perf ui: Add gtk2 support into setup_browser()Namhyung Kim1-5/+18 2012-05-02perf ui gtk: Rename functions for consistencyNamhyung Kim1-4/+4 2012-05-02perf ui gtk: Drop arg[cv] arguments from perf_gtk_setup_browser()Namhyung Kim1-2/+2 2012-03-19perf report: Add a simple GTK2-based 'perf report' browserPekka Enberg1-0/+12 2011-01-31perf tools: Don't fallback to setup_pager unconditionallyArnaldo Carvalho de Melo1-3/+4 2010-08-21perf tools: add test for strlcpy()Kirill A. Shutemov1-0/+2 2010-06-05perf buildid: add perfconfig option to specify buildid cache dirStephane Eranian1-0/+1 2010-05-20perf tui: Allow disabling the TUI on a per command basis in ~/.perfconfigArnaldo Carvalho de Melo1-1/+1 2010-05-18perf tools: Remove some unused functionsArnaldo Carvalho de Melo1-54/+1 2010-03-22perf newt: Properly restore the screen when error exitingArnaldo Carvalho de Melo1-2/+2 2010-03-12perf report: Implement initial UI using newtArnaldo Carvalho de Melo1-0/+14 2009-10-13perf tools: Do not manually count string lengthsVincent Legoll1-0/+5 2009-09-24perf tools: Protect header files with a consistent styleJohn Kacur1-3/+3 2009-08-16perf: Enable more compiler warningsIngo Molnar1-1/+0 2009-07-22perf_counter: Detect debugfs locationJason Baron1-0/+1 2009-07-01perf_counter tools: Add more warnings and fix/annotate themIngo Molnar1-0/+1 2009-06-06perf_counter tools: Move from Documentation/perf_counter/ to tools/perf/Ingo Molnar1-0/+119