On Tue, Dec 10, 2024 at 09:00:13AM -0800, Lucas De Marchi wrote: > On Mon, Dec 09, 2024 at 03:53:51PM +0200, Luca Coelho wrote: > > This reverts commit 560af5dc839eef08a273908f390cfefefb82aa04. > > > > Signed-off-by: Luca Coelho <luciano.coelho@xxxxxxxxx> > > --- > > > > It seems that we have a few issues with this configuration in xe and > > in i915. Let's try to revert it to see if the problems we're seeing > > go away. > > > > Note, these are _real_ issues, but only if CONFIG_RT is enabled, so the actual issues need to be solved properly, but we can revert this change until then, to avoid regressions. > > +Jani Nikula, +Rodrigo > > I'm thinking about landing this in topic/core-for-CI. It seems we have > quite a few locks to revisit - we are taking spinlocks while holding > raw_spinlocks and until now there's no warning about this bug. could you point to one case? I don't see us using the raw_spinlocks... > > It's a real problem only for PREEMPT_RT since otherwise there's > no difference between the 2 lock types. However fixing this may involve > quite a few changes: if we convert the lock to raw we may need to > cascade the conversions to additional locks. The ones I identified are: > pmu->lock, which would also need to have uncore->lock converted, which > would then probably cascade to quite a few others :-/. I'm not sure > converting uncore->lock will actually be a good thing. hmm raw_spinlocks for the lowlevel might not be a bad idea, but perhaps we need to convert the other way around the upper levels? > > I will keep digging. Ack on getting this to topic/core-for-CI so we don't block our CI while we investigate and fix this. Thanks, Rodrigo. > > > Lucas De Marchi > > > > > > > > lib/Kconfig.debug | 12 ++++++++++-- > > 1 file changed, 10 insertions(+), 2 deletions(-) > > > > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug > > index f3d723705879..de4ffe09323b 100644 > > --- a/lib/Kconfig.debug > > +++ b/lib/Kconfig.debug > > @@ -1397,14 +1397,22 @@ config PROVE_LOCKING > > For more details, see Documentation/locking/lockdep-design.rst. > > > > config PROVE_RAW_LOCK_NESTING > > - bool > > + bool "Enable raw_spinlock - spinlock nesting checks" > > depends on PROVE_LOCKING > > - default y > > + default n > > help > > Enable the raw_spinlock vs. spinlock nesting checks which ensure > > that the lock nesting rules for PREEMPT_RT enabled kernels are > > not violated. > > > > + NOTE: There are known nesting problems. So if you enable this > > + option expect lockdep splats until these problems have been fully > > + addressed which is work in progress. This config switch allows to > > + identify and analyze these problems. It will be removed and the > > + check permanently enabled once the main issues have been fixed. > > + > > + If unsure, select N. > > + > > config LOCK_STAT > > bool "Lock usage statistics" > > depends on DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT > > -- > > 2.45.2 > >