On Thu, Oct 20, 2016 at 12:22 AM, Matt Turner <matts...@gmail.com> wrote:
> On Wed, Oct 19, 2016 at 1:58 PM, Jan Ziak <0xe2.0x9a.0...@gmail.com> wrote:
>> The current git code and the patched code are fully equivalent to each
>> other. In the unpatched code RefCount is always protected by a mutex
>> and the RefCount adjustment region protects just the RefCount (it
>> doesn't protect anything else) - in the patched code RefCount is
>> always adjusted via p_atomic*().
>>
>> Because of this equivalence: If the new code contains a bug then the
>> unpatched code must contain the same bug as well.
>
> That's all well and good, but it's not sufficient and not really how
> we do things. To replace the mutexes around bufferobjs and texobjs
> with atomics would take us *further* from working code.

The patch replaces mutexes around RefCounts with atomics on RefCounts.

Any other data reachable from bufferobj/texobj pointers still needs to
be protected by a mutex (or multiple mutexes if necessary).

Rule: A refcount dropping to zero implies that the refcounted data
(that is: data under the refcount) won't be accessed from the
direction of the refcount.

A refcount dropping to zero can (under certain circumstances) imply
that the refcounted data no longer needs to be protected by a mutex.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to