Paul E. McKenney <paulmck@xxxxxxxxxx> writes: > Thomas! > > On Thu, Oct 19, 2023 at 02:21:35AM +0200, Thomas Gleixner wrote: >> Paul! >> >> On Wed, Oct 18 2023 at 10:19, Paul E. McKenney wrote: >> > On Wed, Oct 18, 2023 at 03:16:12PM +0200, Thomas Gleixner wrote: >> >> On Tue, Oct 17 2023 at 18:03, Paul E. McKenney wrote: >> >> In the end there is no CONFIG_PREEMPT_XXX anymore. The only knob >> >> remaining would be CONFIG_PREEMPT_RT, which should be renamed to >> >> CONFIG_RT or such as it does not really change the preemption >> >> model itself. RT just reduces the preemption disabled sections with the >> >> lock conversions, forced interrupt threading and some more. >> > >> > Again, please, no. >> > >> > There are situations where we still need rcu_read_lock() and >> > rcu_read_unlock() to be preempt_disable() and preempt_enable(), >> > repectively. Those can be cases selected only by Kconfig option, not >> > available in kernels compiled with CONFIG_PREEMPT_DYNAMIC=y. >> >> Why are you so fixated on making everything hardcoded instead of making >> it a proper policy decision problem. See above. > > Because I am one of the people who will bear the consequences. > > In that same vein, why are you so opposed to continuing to provide > the ability to build a kernel with CONFIG_PREEMPT_RCU=n? This code > is already in place, is extremely well tested, and you need to handle > preempt_disable()/preeempt_enable() regions of code in any case. What is > the real problem here? I have a somewhat related question. What ties PREEMPTION=y to PREEMPT_RCU=y? I see e72aeafc66 ("rcu: Remove prompt for RCU implementation") from 2015, stating that the only possible choice for PREEMPTION=y kernels is PREEMPT_RCU=y: The RCU implementation is chosen based on PREEMPT and SMP config options and is not really a user-selectable choice. This commit removes the menu entry, given that there is not much point in calling something a choice when there is in fact no choice.. The TINY_RCU, TREE_RCU, and PREEMPT_RCU Kconfig options continue to be selected based solely on the values of the PREEMPT and SMP options. As far as I can tell (which isn't all that far), TREE_RCU=y makes strictly stronger forward progress guarantees with respect to rcu readers (in that they can't be preempted.) So, can PREEMPTION=y run with, say TREE_RCU=y? Or maybe I'm missing something obvious there. Thanks -- ankur