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 <[email protected]>
> > ---
> > 
> > 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
> > 

Reply via email to