Re: __mutex_lock_common() unlikely very likely

From: Chris Wilson
Date: Thu Jan 19 2017 - 03:56:02 EST


On Wed, Jan 18, 2017 at 03:58:24PM -0500, Steven Rostedt wrote:
> Chris,
>
> My branch tracer flagged the unlikely in __mutex_lock_common() as
> always hit. That's the:
>
> if (use_ww_ctx) {
> [...]
> if (unlikely(ww_ctx == READ_ONCE(ww->ctx)))
> return -EALREADY;
> }
>
> This is hit 100% of the time, and its coming from the drm logic:

By design this is an exceptional case. In practice, drm modesetting is a
little slapsidasical when it comes to locking. However, it is the
minority use case, just that on intel, the more prevalent users do not
hit this path - though they will with the ww_mutex refactoring work. ttm
drivers (amdgpu, nouveau etc) will be demonstrating that this is the
unlikely branch.
-Chris

--
Chris Wilson, Intel Open Source Technology Centre