Kconfig (e9dc122166b8d863d3057a66ada04838e5548e52) | Kconfig (f41d911f8c49a5d65c86504c19e8204bb605c4fd) |
---|---|
1config ARCH 2 string 3 option env="ARCH" 4 5config KERNELVERSION 6 string 7 option env="KERNELVERSION" 8 --- 302 unchanged lines hidden (view full) --- 311 select INOTIFY 312 313menu "RCU Subsystem" 314 315choice 316 prompt "RCU Implementation" 317 default TREE_RCU 318 | 1config ARCH 2 string 3 option env="ARCH" 4 5config KERNELVERSION 6 string 7 option env="KERNELVERSION" 8 --- 302 unchanged lines hidden (view full) --- 311 select INOTIFY 312 313menu "RCU Subsystem" 314 315choice 316 prompt "RCU Implementation" 317 default TREE_RCU 318 |
319config CLASSIC_RCU 320 bool "Classic RCU" 321 help 322 This option selects the classic RCU implementation that is 323 designed for best read-side performance on non-realtime 324 systems. 325 326 Select this option if you are unsure. 327 | |
328config TREE_RCU 329 bool "Tree-based hierarchical RCU" 330 help 331 This option selects the RCU implementation that is 332 designed for very large SMP system with hundreds or | 319config TREE_RCU 320 bool "Tree-based hierarchical RCU" 321 help 322 This option selects the RCU implementation that is 323 designed for very large SMP system with hundreds or |
333 thousands of CPUs. | 324 thousands of CPUs. It also scales down nicely to 325 smaller systems. |
334 335config PREEMPT_RCU 336 bool "Preemptible RCU" 337 depends on PREEMPT 338 help 339 This option reduces the latency of the kernel by making certain 340 RCU sections preemptible. Normally RCU code is non-preemptible, if 341 this option is selected then read-only RCU sections become 342 preemptible. This helps latency, but may expose bugs due to 343 now-naive assumptions about each RCU read-side critical section 344 remaining on a given CPU through its execution. 345 | 326 327config PREEMPT_RCU 328 bool "Preemptible RCU" 329 depends on PREEMPT 330 help 331 This option reduces the latency of the kernel by making certain 332 RCU sections preemptible. Normally RCU code is non-preemptible, if 333 this option is selected then read-only RCU sections become 334 preemptible. This helps latency, but may expose bugs due to 335 now-naive assumptions about each RCU read-side critical section 336 remaining on a given CPU through its execution. 337 |
338config TREE_PREEMPT_RCU 339 bool "Preemptable tree-based hierarchical RCU" 340 depends on PREEMPT 341 help 342 This option selects the RCU implementation that is 343 designed for very large SMP systems with hundreds or 344 thousands of CPUs, but for which real-time response 345 is also required. 346 |
|
346endchoice 347 348config RCU_TRACE 349 bool "Enable tracing for RCU" | 347endchoice 348 349config RCU_TRACE 350 bool "Enable tracing for RCU" |
350 depends on TREE_RCU || PREEMPT_RCU | 351 depends on TREE_RCU || PREEMPT_RCU || TREE_PREEMPT_RCU |
351 help 352 This option provides tracing in RCU which presents stats 353 in debugfs for debugging RCU implementation. 354 355 Say Y here if you want to enable RCU tracing 356 Say N if you are unsure. 357 358config RCU_FANOUT 359 int "Tree-based hierarchical RCU fanout value" 360 range 2 64 if 64BIT 361 range 2 32 if !64BIT | 352 help 353 This option provides tracing in RCU which presents stats 354 in debugfs for debugging RCU implementation. 355 356 Say Y here if you want to enable RCU tracing 357 Say N if you are unsure. 358 359config RCU_FANOUT 360 int "Tree-based hierarchical RCU fanout value" 361 range 2 64 if 64BIT 362 range 2 32 if !64BIT |
362 depends on TREE_RCU | 363 depends on TREE_RCU || TREE_PREEMPT_RCU |
363 default 64 if 64BIT 364 default 32 if !64BIT 365 help 366 This option controls the fanout of hierarchical implementations 367 of RCU, allowing RCU to work efficiently on machines with 368 large numbers of CPUs. This value must be at least the cube 369 root of NR_CPUS, which allows NR_CPUS up to 32,768 for 32-bit 370 systems and up to 262,144 for 64-bit systems. 371 372 Select a specific number if testing RCU itself. 373 Take the default if unsure. 374 375config RCU_FANOUT_EXACT 376 bool "Disable tree-based hierarchical RCU auto-balancing" | 364 default 64 if 64BIT 365 default 32 if !64BIT 366 help 367 This option controls the fanout of hierarchical implementations 368 of RCU, allowing RCU to work efficiently on machines with 369 large numbers of CPUs. This value must be at least the cube 370 root of NR_CPUS, which allows NR_CPUS up to 32,768 for 32-bit 371 systems and up to 262,144 for 64-bit systems. 372 373 Select a specific number if testing RCU itself. 374 Take the default if unsure. 375 376config RCU_FANOUT_EXACT 377 bool "Disable tree-based hierarchical RCU auto-balancing" |
377 depends on TREE_RCU | 378 depends on TREE_RCU || TREE_PREEMPT_RCU |
378 default n 379 help 380 This option forces use of the exact RCU_FANOUT value specified, 381 regardless of imbalances in the hierarchy. This is useful for 382 testing RCU itself, and might one day be useful on systems with 383 strong NUMA behavior. 384 385 Without RCU_FANOUT_EXACT, the code will balance the hierarchy. 386 387 Say N if unsure. 388 389config TREE_RCU_TRACE | 379 default n 380 help 381 This option forces use of the exact RCU_FANOUT value specified, 382 regardless of imbalances in the hierarchy. This is useful for 383 testing RCU itself, and might one day be useful on systems with 384 strong NUMA behavior. 385 386 Without RCU_FANOUT_EXACT, the code will balance the hierarchy. 387 388 Say N if unsure. 389 390config TREE_RCU_TRACE |
390 def_bool RCU_TRACE && TREE_RCU | 391 def_bool RCU_TRACE && ( TREE_RCU || TREE_PREEMPT_RCU ) |
391 select DEBUG_FS 392 help | 392 select DEBUG_FS 393 help |
393 This option provides tracing for the TREE_RCU implementation, 394 permitting Makefile to trivially select kernel/rcutree_trace.c. | 394 This option provides tracing for the TREE_RCU and 395 TREE_PREEMPT_RCU implementations, permitting Makefile to 396 trivially select kernel/rcutree_trace.c. |
395 396config PREEMPT_RCU_TRACE 397 def_bool RCU_TRACE && PREEMPT_RCU 398 select DEBUG_FS 399 help 400 This option provides tracing for the PREEMPT_RCU implementation, 401 permitting Makefile to trivially select kernel/rcupreempt_trace.c. 402 --- 805 unchanged lines hidden --- | 397 398config PREEMPT_RCU_TRACE 399 def_bool RCU_TRACE && PREEMPT_RCU 400 select DEBUG_FS 401 help 402 This option provides tracing for the PREEMPT_RCU implementation, 403 permitting Makefile to trivially select kernel/rcupreempt_trace.c. 404 --- 805 unchanged lines hidden --- |