Seite 1 von 1

Kernel - RCU priority boosting

Verfasst: So Jan 11, 2015 11:50 am
von khz
Was bringt bzw. hat jemand Erhahrung mit

Code: Alles auswählen

> General setup > RCU Subsystem > Enable RCU priority boosting
?

Auf welchen Wert habt ihr ihn gestellt?
z.b.

Code: Alles auswählen

CONFIG_RCU_BOOST_PRIO=99
<-- making it realtime,

Code: Alles auswählen

CONFIG_RCU_BOOST_DELAY=331
<-- using a prime number to avoid reoccurrences, smaller than default=500

Code: Alles auswählen

 .config - Linux/x86 3.18.2-gentoo Kernel Configuration
 > General setup > RCU Subsystem ──────────────────────────────────────────────
  ┌───────────────────── Enable RCU priority boosting ──────────────────────┐
  │ CONFIG_RCU_BOOST:                                                       │  
  │                                                                         │  
  │ This option boosts the priority of preempted RCU readers that           │  
  │ block the current preemptible RCU grace period for too long.            │  
  │ This option also prevents heavy loads from blocking RCU                 │  
  │ callback invocation for all flavors of RCU.                             │  
  │                                                                         │  
  │ Say Y here if you are working with real-time apps or heavy loads        │  
  │ Say N here if you are unsure.    

Code: Alles auswählen

  ┌────────────── Real-time priority to boost RCU readers to ───────────────┐
  │ CONFIG_RCU_BOOST_PRIO:                                                  │  
  │                                                                         │  
  │ This option specifies the real-time priority to which long-term         │  
  │ preempted RCU readers are to be boosted.  If you are working            │  
  │ with a real-time application that has one or more CPU-bound             │  
  │ threads running at a real-time priority level, you should set           │  
  │ RCU_BOOST_PRIO to a priority higher then the highest-priority           │  
  │ real-time CPU-bound thread.  The default RCU_BOOST_PRIO value           │  
  │ of 1 is appropriate in the common case, which is real-time              │  
  │ applications that do not have any CPU-bound threads.                    │  
  │                                                                         │  
  │ Some real-time applications might not have a single real-time           │  
  │ thread that saturates a given CPU, but instead might have               │  
  │ multiple real-time threads that, taken together, fully utilize          │  
  │ that CPU.  In this case, you should set RCU_BOOST_PRIO to               │  
  │ a priority higher than the lowest-priority thread that is               │  
  │ conspiring to prevent the CPU from running any non-real-time            │  
  │ tasks.  For example, if one thread at priority 10 and another           │  
  │ thread at priority 5 are between themselves fully consuming             │  
  │ the CPU time on a given CPU, then RCU_BOOST_PRIO should be              │  
  │ set to priority 6 or higher.                                            │  
  │                                                                         │  
  │ Specify the real-time priority, or take the default if unsure.          │  
 

Code: Alles auswählen

  ┌────── Milliseconds to delay boosting after RCU grace-period start ──────┐
  │ CONFIG_RCU_BOOST_DELAY:                                                 │  
  │                                                                         │  
  │ This option specifies the time to wait after the beginning of           │  
  │ a given grace period before priority-boosting preempted RCU             │  
  │ readers blocking that grace period.  Note that any RCU reader           │  
  │ blocking an expedited RCU grace period is boosted immediately.          │  
  │                                                                         │  
  │ Accept the default if unsure.                                           │  
https://www.kernel.org/doc/Documentation/RCU/rcu.txt
http://www.rdrop.com/users/paulmck/RCU/