Re: [PATCH 1/4] locking/ww_mutex: add ww_mutex_is_owned_by function v3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 20.02.2018 um 15:54 schrieb Peter Zijlstra:
On Tue, Feb 20, 2018 at 03:34:07PM +0100, Christian König wrote:
OK, but neither case would in fact need the !ctx case right? That's just
there for completeness sake?
Unfortunately not. TTM uses trylock to lock BOs which are about to be
evicted to make room for all the BOs locked with a ctx.

I need to be able to distinct between the BOs which are trylocked and those
which are locked with a ctx.

Writing this I actually noticed the current version is buggy, cause even
when we check the mutex owner we still need to make sure that the ctx in the
lock is NULL.
Hurm... I can't remember why trylocks behave like that, and it seems
rather unfortunate / inconsistent.

Actually for me that is rather fortunate, cause I need to distinct between the locks acquired through trylock and lock.

In other words when the amdgpu does it's checking if userspace sends nonsense to the kernel it should only get a green signal when the lock was intentionally locked using the context.

If the lock was just taken because TTM trylocked it because TTM had to evict the BO to make room then the check should fail and we need to tell userspace that it did something wrong.

Regards,
Christian.

Chris, Maarten, do either one of you remember?

I'm thinking that if we do acquire the trylock, the thing should join
the ctx such that a subsequent contending mutex_lock() can ww right.
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel

_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux