On Thu, Jun 04, 2020 at 12:41:33PM +0300, Mike Rapoport wrote: > On Wed, Jun 03, 2020 at 04:44:17PM -0700, Guenter Roeck wrote: > > > > sparc32 smp images in next-20200603 still crash for me with a spinlock > > recursion. s390 images hang early in boot. Several others (alpha, arm64, > > various ppc) don't even compile. I can run some more bisects over time, > > but this is becoming a full-time job :-(. > > I've been able to bisect s390 hang to commit b614345f52bc ("x86/entry: > Clarify irq_{enter,exit}_rcu()"). > > After this commit, lockdep_hardirq_exit() is called twice on s390 (and > others) - one time in irq_exit_rcu() and another one in irq_exit(): > > /** > * irq_exit_rcu() - Exit an interrupt context without updating RCU > * > * Also processes softirqs if needed and possible. > */ > void irq_exit_rcu(void) > { > __irq_exit_rcu(); > /* must be last! */ > lockdep_hardirq_exit(); > } > > /** > * irq_exit - Exit an interrupt context, update RCU and lockdep > * > * Also processes softirqs if needed and possible. > */ > void irq_exit(void) > { > irq_exit_rcu(); > rcu_irq_exit(); > /* must be last! */ > lockdep_hardirq_exit(); > } > > Removing the call in irq_exit() make s390 boot again, and judgung by the > x86 entry code, the comment /* must be last! */ is stale... FWIW I got s390 to compile and this patch fixes s390 booting for me as well. 13:05:25 > /home/iweiny/dev/linux-build-test/rootfs/s390/run-qemu-s390.sh Build reference: next-20200603-4-g840714292d8c Building s390:defconfig:initrd ... running ........... passed Building s390:defconfig:virtio-blk-ccw:rootfs ... running ........... passed Building s390:defconfig:scsi[virtio-ccw]:rootfs ... running .............. passed Building s390:defconfig:virtio-pci:rootfs ... running ........... passed Building s390:defconfig:scsi[virtio-pci]:rootfs ... running ........... passed Ira > > @Peter, @Thomas, can you comment please? > > From e51d50ee6f4d1f446decf91c2c67230da14ff82c Mon Sep 17 00:00:00 2001 > From: Mike Rapoport <rppt@xxxxxxxxxxxxx> > Date: Thu, 4 Jun 2020 12:37:03 +0300 > Subject: [PATCH] softirq: don't call lockdep_hardirq_exit() twice > > After commit b614345f52bc ("x86/entry: Clarify irq_{enter,exit}_rcu()") > lockdep_hardirq_exit() is called twice on every architecture that uses > irq_exit(): one time in irq_exit_rcu() and another one in irq_exit(). > > Remove the extra call in irq_exit(). > > Signed-off-by: Mike Rapoport <rppt@xxxxxxxxxxxxx> > --- > kernel/softirq.c | 3 --- > 1 file changed, 3 deletions(-) > > diff --git a/kernel/softirq.c b/kernel/softirq.c > index a3eb6eba8c41..7523f4ce4c1d 100644 > --- a/kernel/softirq.c > +++ b/kernel/softirq.c > @@ -427,7 +427,6 @@ static inline void __irq_exit_rcu(void) > void irq_exit_rcu(void) > { > __irq_exit_rcu(); > - /* must be last! */ > lockdep_hardirq_exit(); > } > > @@ -440,8 +439,6 @@ void irq_exit(void) > { > irq_exit_rcu(); > rcu_irq_exit(); > - /* must be last! */ > - lockdep_hardirq_exit(); > } > > /* > -- > 2.26.2 > > > > > Guenter > > -- > Sincerely yours, > Mike. _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel