Gentoo Archives: gentoo-amd64

From: Mark Knecht <markknecht@×××××.com>
To: Gentoo AMD64 <gentoo-amd64@l.g.o>
Subject: Re: [gentoo-amd64] Can I disable PREMPT_RCU?
Date: Fri, 22 Nov 2013 20:48:50
Message-Id: CAK2H+ecKbuyzaywC2gq3hEwdtP2Bp+eRd6_=Q682Gb+_6ginCA@mail.gmail.com
In Reply to: Re: [gentoo-amd64] Can I disable PREMPT_RCU? by malc
1 On Fri, Nov 22, 2013 at 12:36 PM, malc <mlashley@×××××.com> wrote:
2 > Hey Mark,
3 >
4 > /usr/src/linux/init/Kconfig and kernel/Kconfig.preempt are the droids you
5 > are looking for...
6 >
7 > config PREEMPT_RCU
8 > def_bool TREE_PREEMPT_RCU
9 > help
10 > This option enables preemptible-RCU code that is common between
11 > the TREE_PREEMPT_RCU and TINY_PREEMPT_RCU implementations.
12 >
13 > So you would want to /not/ pick one of those - however - looking further
14 >
15 > choice
16 > prompt "RCU Implementation"
17 > default TREE_RCU
18 >
19 > config TREE_RCU
20 > bool "Tree-based hierarchical RCU"
21 > depends on !PREEMPT && SMP
22 > select IRQ_WORK
23 > help
24 > This option selects the RCU implementation that is
25 > designed for very large SMP system with hundreds or
26 > thousands of CPUs. It also scales down nicely to
27 > smaller systems.
28 >
29 > config TREE_PREEMPT_RCU
30 > bool "Preemptible tree-based hierarchical RCU"
31 > depends on PREEMPT
32 > select IRQ_WORK
33 > help
34 > This option selects the RCU implementation that is
35 > designed for very large SMP systems with hundreds or
36 > thousands of CPUs, but for which real-time response
37 > is also required. It also scales down nicely to
38 > smaller systems.
39 >
40 > Select this option if you are unsure.
41 >
42 > config TINY_RCU
43 > bool "UP-only small-memory-footprint RCU"
44 > depends on !PREEMPT && !SMP
45 > help
46 > This option selects the RCU implementation that is
47 > designed for UP systems from which real-time response
48 > is not required. This option greatly reduces the
49 > memory footprint of RCU.
50 >
51 > endchoice
52 >
53 > Seems you would want TREE_RCU (or TINY_RCU if you really have a UP system) -
54 > but both of those depend on !PREEMPT... which is counter to what you were
55 > asked.
56 >
57 > In short - at least in 3.12.0 - I don't think what you've been asked for is
58 > in fact possible - or I'm reading Kconfig wrongly (it's been a while)
59 >
60 > Cheers,
61 > malc.
62 >
63
64 Thanks malc. I really appreciate your efforts to go through that.
65
66 I think I'm going to throw this back to Oracle for now. RCU has been
67 in the kernel for a long time as best I can tell. I tried a number of
68 kernels going back to 3.7.10 through 3.10.20. The older 4.2.x versions
69 of Virtualbox had no problem on any of the kernels I tested. All of
70 the 4.3 versions cause this lock up and I'm far from being the only
71 person who's seen it so if it was something really wrong with the RCU
72 preempt stuff I think some other app would have had the problem also.
73 I don't really believe it's a kernel problem but rather that the VB
74 developers have messed something up and they're just hoping I can
75 point them in the right direction.
76
77 Again, THANKS for the help!
78
79 Cheers,
80 Mark