Re: schdule bug in 4.4.38-rt49

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

 



On 2019-06-26 15:35:04 [+0800], xiaoqiang.zhao wrote:
> Hi, guys:
Hi,

>     I have built a kernel 4.4.38-rt49 with CONFIG_PREEMPT_RT_FULL=y , the
> kernel crash when I run the UnixBench of spawn test case.

Can you forward to something newer, 4.4.179-rt181 for instance?

>     Here is the oops info:
…
> The call path is:
> 
>  do_fork-> copy_process -> threadgroup_change_end -> percpu_up_read(call
> preempt_disable) -> __percpu_up_read
> 
>  -> wake_up -> rt_spin_lock -> rt_spin_lock_slowlock ->  schedule(call
> preempt_disable again) -> __schedule
> 
>  -> schedule_debug -> in_aotmic_preempt_off (return true, preempt_count ==
> 2) -> __schedule_bug ( leads to kernel pagefault exception, OOPS!!)
> 
> Before schedule, we have call preempt_disable twice, this will definitely
> bump preempt_count to 2 and

something probably disabled preemption before that.

> in_atomic_preempt_off will fail.
> 
> I did not figure out:   WHY we call schedule inside rt_spin_lock_slowlock
> and under what condition this call is correct ?

if the lock is acquired you schedule out and wait und it is available
again.

Sebastian



[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux