Re: 4.19.106-rt44 -- boot problems with irqwork: push most work into softirq context

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

 



Hi!

> > > > I'm pleased to announce the 4.19.106-rt44 stable release.
> > > > 
> > > > 
> > > > This release is just an update to the new stable 4.19.106 version
> > > > and no RT specific changes have been made.
> > > > 
> > > > 
> > > > You can get this release via the git tree at:
> > > > 
> > > >   git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git
> > > > 
> > > >   branch: v4.19-rt
> > > >   Head SHA1: 0f2960c75dd68d339f0aff2935f51652b5625fbf  
> > > 
> > > This brought some problems for me. de0-nano board now fails to boot in
> > > cca 50% of cases if I move these patches on top of -cip tree.
> > > 
> > > This is example of failed job:
> > > 
> > > https://lava.ciplatform.org/scheduler/job/13037
> > > 
> > > de0-nano is 32-bit arm, should be based on Altera SoCFPGA if I understand
> > > things correctly.
> > > 
> > > "fc9f4631a290 irqwork: push most work into softirq context" touches
> > > area of the panic above. I tried to revert it on top of the full
> > > series, and tests passed twice so far...  
> > 
> > Test passed 7 times now. So yes, reverting this fixes de0-nano
> > boot. Any ideas what might be wrong?
> > 
> > I'll be running it few more times.
> > 
> > https://gitlab.com/cip-project/cip-kernel/linux-cip/pipelines/127953471
> > 
> 
> Looks like you are running this without PREEMPT_RT enabled.

Yes. We still need to set up proper realtime testing.

> Does this patch help?

I don't think so. It also failed, and the failure seems to be
identical to me.

https://gitlab.com/cip-project/cip-kernel/linux-cip/tree/ci/pavel/linux-cip
https://lava.ciplatform.org/scheduler/job/13110

Best regards,
								Pavel

> diff --git a/kernel/irq_work.c b/kernel/irq_work.c
> index 2940622da5b3..0ca75c77536b 100644
> --- a/kernel/irq_work.c
> +++ b/kernel/irq_work.c
> @@ -146,8 +146,9 @@ bool irq_work_needs_cpu(void)
>  	raised = this_cpu_ptr(&raised_list);
>  	lazy = this_cpu_ptr(&lazy_list);
>  
> -	if (llist_empty(raised) && llist_empty(lazy))
> -		return false;
> +	if (llist_empty(raised) || arch_irq_work_has_interrupt())
> +		if (llist_empty(lazy))
> +			return false;
>  
>  	/* All work should have been flushed before going offline */
>  	WARN_ON_ONCE(cpu_is_offline(smp_processor_id()));

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany

Attachment: signature.asc
Description: PGP signature


[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