From: Peter Hurley <peter@hurleysoftware.com>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>,
Intel Graphics Development <intel-gfx@lists.freedesktop.org>,
dri-devel@lists.freedesktop.org
Subject: Re: [PATCH] drm: Assert correct locking for drm_send_vblank_event
Date: Fri, 12 Sep 2014 13:42:59 -0400 [thread overview]
Message-ID: <541330A3.4020108@hurleysoftware.com> (raw)
In-Reply-To: <20140912172531.GI4740@phenom.ffwll.local>
On 09/12/2014 01:25 PM, Daniel Vetter wrote:
> On Fri, Sep 12, 2014 at 01:03:51PM -0400, Peter Hurley wrote:
>> On 09/12/2014 12:04 PM, Chris Wilson wrote:
>>> On Fri, Sep 12, 2014 at 05:34:56PM +0200, Daniel Vetter wrote:
>>>> On Fri, Sep 12, 2014 at 04:23:29PM +0100, Chris Wilson wrote:
>>>>> On Fri, Sep 12, 2014 at 03:40:56PM +0200, Daniel Vetter wrote:
>>>>>> The comment says that the caller must hold the dev->event_lock
>>>>>> spinlock, so let's enforce this.
>>>>>>
>>>>>> A quick audit over all driver shows that except for the one place in
>>>>>> i915 which motivated this all callers fullfill this requirement
>>>>>> already.
>>>>>
>>>>> Replace the rogue WARN_ON_SMP(!spin_is_locked(&dev->event_lock)) in
>>>>> send_vblank_event() as well then.
>>>>
>>>> Meh, I've missed that one, that's actually better I think. I'll drop my
>>>> patch here.
>>>
>>> I thought assert_spin_lock was the preferred form?
>>
>> Actually, lockdep_assert_held() is the preferred form.
>>
>> See https://lkml.org/lkml/2014/9/3/171
>
> Which unfortunately doesn't warn for all the normal users which are not
> insane enough to enable lockdep and so is totally useless to validate a
> driver that runs on metric piles of different chips (with a resulting
> combinatorial explosion of code-paths because hw designers are creative).
> And we rely a lot on random drive-by testers to report such issues.
I know. When I wrote [in that thread linked above]:
On Wed, Sep 03, 2014 at 10:50:01AM -0400, Peter Hurley wrote:
> So a lockdep-only assert is unlikely to draw attention to existing bugs,
> especially in established drivers.
here's the replies I got:
Peter Zijlstra <peterz@infradead.org> wrote:
> By the same logic lockdep will not find locking errors in established
> drivers.
and
On 09/04/2014 01:14 AM, Ingo Molnar wrote:
> Indeed, this patch is ill-advised in several ways:
>
> - it extends an API variant that we want to phase
>
> - emits a warning even if say lockdep has already emitted a
> warning and locking state is not guaranteed to be consistent.
>
> - makes the kernel more expensive once fully debugged, in that
> non-fatal checks are unconditional.
:/
Regards,
Peter Hurley
prev parent reply other threads:[~2014-09-12 17:42 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-12 13:40 [PATCH] drm: Assert correct locking for drm_send_vblank_event Daniel Vetter
2014-09-12 15:23 ` Chris Wilson
2014-09-12 15:34 ` Daniel Vetter
2014-09-12 16:04 ` [Intel-gfx] " Chris Wilson
2014-09-12 17:03 ` Peter Hurley
2014-09-12 17:25 ` [Intel-gfx] " Daniel Vetter
2014-09-12 17:42 ` Peter Hurley [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=541330A3.4020108@hurleysoftware.com \
--to=peter@hurleysoftware.com \
--cc=daniel.vetter@ffwll.ch \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.