Re: [PATCH] rcu: Delay the RCU-selftests during boot.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Mar 02, 2022 at 12:09:42PM +0100, Sebastian Andrzej Siewior wrote:
> On 2022-03-01 21:42:17 [-0800], Paul E. McKenney wrote:
> > There have been several different things requiring various pieces of RCU
> > to be running quite early, and I need to do a bit of code archaeology to
> > check this out.  One of these is what forced me to move to expedited grace
> > periods once the scheduler started.  And the expedited grace periods do
> > require the timers be working, at least in their current form.
> 
> expedited as in synchronize_rcu_expedited()? Because we don't do this
> but then only after boot so it probably doesn't change a thing and makes
> other complicated.

Expedited as in both synchronize_rcu_expedited() on the one hand and
also synchronize_rcu() between the time that the scheduler is active and
RCU has spawned its kthreads (AKA the "mid-boot dead zone").  I agree
that the former is not important for you, especially if you boot with
rcupdate.rcu_normal=1.  But the mid-boot dead zone uses expedited grace
periods because at that point in the process, the normal grace period
cannot function.

> > I vaguely recall tracing requiring call_rcu() extremely early (as
> > in before rcu_init() is called), but that was not a problem because
> > there was no requirement that the callback be invoked before the first
> > couple of sets of initcalls had completed.  The only challenge in this
> > case was to avoid stomping on the callback lists at rcu_init() time,
> > no timers required.
> 
> Okay.
> 
> > One straightforward approach would be to choose the call site of the
> > rcu_tasks_initiate_self_tests() function based on whether or not the
> > kernel was built with CONFIG_PREEMPT_RT.
> 
> But then we have this change between RT and !RT due to other
> limitations. But my understanding is correct that RT does not have a
> working synchronize_rcu() in an early_initcall() while !RT does, right?


[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux