diff options
Diffstat (limited to 'init/Kconfig')
-rw-r--r-- | init/Kconfig | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/init/Kconfig b/init/Kconfig index 1ef0b439908e..36890f0c8456 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
@@ -339,6 +339,8 @@ config AUDIT_TREE | |||
339 | depends on AUDITSYSCALL | 339 | depends on AUDITSYSCALL |
340 | select FSNOTIFY | 340 | select FSNOTIFY |
341 | 341 | ||
342 | source "kernel/irq/Kconfig" | ||
343 | |||
342 | menu "RCU Subsystem" | 344 | menu "RCU Subsystem" |
343 | 345 | ||
344 | choice | 346 | choice |
@@ -347,6 +349,7 @@ choice | |||
347 | 349 | ||
348 | config TREE_RCU | 350 | config TREE_RCU |
349 | bool "Tree-based hierarchical RCU" | 351 | bool "Tree-based hierarchical RCU" |
352 | depends on !PREEMPT && SMP | ||
350 | help | 353 | help |
351 | This option selects the RCU implementation that is | 354 | This option selects the RCU implementation that is |
352 | designed for very large SMP system with hundreds or | 355 | designed for very large SMP system with hundreds or |
@@ -354,7 +357,7 @@ config TREE_RCU | |||
354 | smaller systems. | 357 | smaller systems. |
355 | 358 | ||
356 | config TREE_PREEMPT_RCU | 359 | config TREE_PREEMPT_RCU |
357 | bool "Preemptable tree-based hierarchical RCU" | 360 | bool "Preemptible tree-based hierarchical RCU" |
358 | depends on PREEMPT | 361 | depends on PREEMPT |
359 | help | 362 | help |
360 | This option selects the RCU implementation that is | 363 | This option selects the RCU implementation that is |
@@ -372,8 +375,22 @@ config TINY_RCU | |||
372 | is not required. This option greatly reduces the | 375 | is not required. This option greatly reduces the |
373 | memory footprint of RCU. | 376 | memory footprint of RCU. |
374 | 377 | ||
378 | config TINY_PREEMPT_RCU | ||
379 | bool "Preemptible UP-only small-memory-footprint RCU" | ||
380 | depends on !SMP && PREEMPT | ||
381 | help | ||
382 | This option selects the RCU implementation that is designed | ||
383 | for real-time UP systems. This option greatly reduces the | ||
384 | memory footprint of RCU. | ||
385 | |||
375 | endchoice | 386 | endchoice |
376 | 387 | ||
388 | config PREEMPT_RCU | ||
389 | def_bool ( TREE_PREEMPT_RCU || TINY_PREEMPT_RCU ) | ||
390 | help | ||
391 | This option enables preemptible-RCU code that is common between | ||
392 | the TREE_PREEMPT_RCU and TINY_PREEMPT_RCU implementations. | ||
393 | |||
377 | config RCU_TRACE | 394 | config RCU_TRACE |
378 | bool "Enable tracing for RCU" | 395 | bool "Enable tracing for RCU" |
379 | depends on TREE_RCU || TREE_PREEMPT_RCU | 396 | depends on TREE_RCU || TREE_PREEMPT_RCU |
@@ -394,9 +411,12 @@ config RCU_FANOUT | |||
394 | help | 411 | help |
395 | This option controls the fanout of hierarchical implementations | 412 | This option controls the fanout of hierarchical implementations |
396 | of RCU, allowing RCU to work efficiently on machines with | 413 | of RCU, allowing RCU to work efficiently on machines with |
397 | large numbers of CPUs. This value must be at least the cube | 414 | large numbers of CPUs. This value must be at least the fourth |
398 | root of NR_CPUS, which allows NR_CPUS up to 32,768 for 32-bit | 415 | root of NR_CPUS, which allows NR_CPUS to be insanely large. |
399 | systems and up to 262,144 for 64-bit systems. | 416 | The default value of RCU_FANOUT should be used for production |
417 | systems, but if you are stress-testing the RCU implementation | ||
418 | itself, small RCU_FANOUT values allow you to test large-system | ||
419 | code paths on small(er) systems. | ||
400 | 420 | ||
401 | Select a specific number if testing RCU itself. | 421 | Select a specific number if testing RCU itself. |
402 | Take the default if unsure. | 422 | Take the default if unsure. |