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

Reply via email to