Re: [patch] Real-Time Preemption, -RT-2.6.12-rc1-V0.7.41-01

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

 



On Tue, Mar 22, 2005 at 10:32:01AM +0100, Ingo Molnar wrote:
> 
> * Ingo Molnar <[email protected]> wrote:
> 
> > seems to be a true SMP race: when i boot with 1 CPU it doesnt trigger,
> > the same kernel image and 2 CPUs triggers it on CPU#1. (CPU#0 is the
> > boot CPU) Note that the timing of the crash is not deterministic
> > (sometimes i get it during net startup, sometimes during ACPI
> > startup), but it always crashes within rcu_advance_callbacks().
> > 
> > one difference between your tests and mine is that your kernel is
> > doing _synchronize_kernel() from preempt-off sections (correct?),
> > while my kernel with PREEMPT_RT does it on preemptable sections.
> 
> hm, another thing: i think call_rcu() needs to take the read-lock. Right
> now it assumes that it has the data structure private, but that's only
> statistically true on PREEMPT_RT: another CPU may have this CPU's RCU
> control structure in use. So IRQs-off (or preempt-off) is not a
> guarantee to have the data structure, the read lock has to be taken.

!!!  The difference is that in the stock kernel, rcu_check_callbacks()
is invoked from irq.  In PREEMPT_RT, it is invoked from process context
and appears to be preemptible.  This means that rcu_advance_callbacks()
can be preempted, resulting in all sorts of problems.  Need to disable
preemption over this.

There are probably other bugs of this sort, I will track them down.

But, just to make sure I understand -- if I have preempt disabled over
all accesses to a per-CPU variable, and that variable is -not- accessed
from a real interrupt handler, then I am safe without a lock, right?

						Thanx, Paul

PS.  Fixing my stupid bugs that you pointed out in earlier email,
     as well.  :-/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux