On Fri, Nov 22, 2013 at 12:36 PM, malc <mlash...@gmail.com> wrote: > Hey Mark, > > /usr/src/linux/init/Kconfig and kernel/Kconfig.preempt are the droids you > are looking for... > > config PREEMPT_RCU > def_bool TREE_PREEMPT_RCU > help > This option enables preemptible-RCU code that is common between > the TREE_PREEMPT_RCU and TINY_PREEMPT_RCU implementations. > > So you would want to /not/ pick one of those - however - looking further > > choice > prompt "RCU Implementation" > default TREE_RCU > > config TREE_RCU > bool "Tree-based hierarchical RCU" > depends on !PREEMPT && SMP > select IRQ_WORK > help > This option selects the RCU implementation that is > designed for very large SMP system with hundreds or > thousands of CPUs. It also scales down nicely to > smaller systems. > > config TREE_PREEMPT_RCU > bool "Preemptible tree-based hierarchical RCU" > depends on PREEMPT > select IRQ_WORK > help > This option selects the RCU implementation that is > designed for very large SMP systems with hundreds or > thousands of CPUs, but for which real-time response > is also required. It also scales down nicely to > smaller systems. > > Select this option if you are unsure. > > config TINY_RCU > bool "UP-only small-memory-footprint RCU" > depends on !PREEMPT && !SMP > help > This option selects the RCU implementation that is > designed for UP systems from which real-time response > is not required. This option greatly reduces the > memory footprint of RCU. > > endchoice > > Seems you would want TREE_RCU (or TINY_RCU if you really have a UP system) - > but both of those depend on !PREEMPT... which is counter to what you were > asked. > > In short - at least in 3.12.0 - I don't think what you've been asked for is > in fact possible - or I'm reading Kconfig wrongly (it's been a while) > > Cheers, > malc. >
Thanks malc. I really appreciate your efforts to go through that. I think I'm going to throw this back to Oracle for now. RCU has been in the kernel for a long time as best I can tell. I tried a number of kernels going back to 3.7.10 through 3.10.20. The older 4.2.x versions of Virtualbox had no problem on any of the kernels I tested. All of the 4.3 versions cause this lock up and I'm far from being the only person who's seen it so if it was something really wrong with the RCU preempt stuff I think some other app would have had the problem also. I don't really believe it's a kernel problem but rather that the VB developers have messed something up and they're just hoping I can point them in the right direction. Again, THANKS for the help! Cheers, Mark