2019-07-16 19:52:07

by Clark Williams

[permalink] [raw]
Subject: [PREEMPT_RT] bogus lockdep assert from i915 on v5.2-rt1

Thomas,

When looking at a problem on v5.2-rt1, I turned on lockdep and started getting warnings
from lockdep_assert_irqs_disabled() in the i915 driver. They're making these calls inside
a spin_lock_irqsave/spin_lock_irqrestore block, which of course doesn't fiddle with IRQs
when PREEMPT_RT is configured. The attached patch places the three calls inside
if (!IS_ENABLED(CONFIG_PREEMPT_RT_FULL)) blocks, so should avoid the bogus warning on RT.

Clark

--
The United States Coast Guard
Ruining Natural Selection since 1790


Attachments:
(No filename) (538.00 B)
0001-i915-avoid-calling-lockdep_assert_irqs_disabled-on-P.patch (1.96 kB)
Download all attachments

2019-07-16 20:32:49

by Thomas Gleixner

[permalink] [raw]
Subject: Re: [PREEMPT_RT] bogus lockdep assert from i915 on v5.2-rt1

Clark,

On Tue, 16 Jul 2019, Clark Williams wrote:

> Thomas,
>
> When looking at a problem on v5.2-rt1, I turned on lockdep and started getting warnings
> from lockdep_assert_irqs_disabled() in the i915 driver. They're making these calls inside
> a spin_lock_irqsave/spin_lock_irqrestore block, which of course doesn't fiddle with IRQs
> when PREEMPT_RT is configured. The attached patch places the three calls inside
> if (!IS_ENABLED(CONFIG_PREEMPT_RT_FULL)) blocks, so should avoid the bogus warning on RT.

AFAICT, all three asserts are pointless because there are already the lock
held asserts and lockdep will warn anyway when these locks are taken with
interrupts enabled.

Thanks,

tglx