Sounds good!

I agree that a 20% regression on a microbenchmark of the exclusive JSLock is 
not a problem, since that's not how WebCore usually behaves and Speedometer 
doesn't seem to care.

-Filip


> On Feb 28, 2017, at 10:38 AM, Mark Lam <[email protected]> wrote:
> 
> I’ve run Speedometer many times on a quiet 13” MacBookPro: removing the use 
> of exclusive thread status does not appear to impact performance in any 
> measurable way.  I also did some measurements on a microbenchmark locking and 
> unlocking the JSLock using a JSLockHolder in a loop.  The microbenchmark 
> shows that removing exclusive thread status results in the locking and 
> unlocking operation increasing by up to 20%.
> 
> Given that locking and unlocking the JSLock is a very small fraction of the 
> work done in a webpage, it’s not surprising that the 20% increase in time for 
> the lock and unlock operation is not measurable in Speedometer.  Note also 
> that the 20% only impacts WebCore which uses the exclusive thread status.  
> For all other clients of JSC (which never uses exclusive thread status), it 
> may actually be faster to have exclusive thread checks removed (simply due to 
> that code doing less work).
> 
> I’ll put up a patch to remove the use of exclusive thread status.  This will 
> simplify the code and make it easier to move forward with new features.
> 
> Mark
> 
> 
>> On Feb 24, 2017, at 9:01 PM, Filip Pizlo <[email protected]> wrote:
>> 
>> Seems like if the relevant benchmarks (speedometer) are ok with it then we 
>> should just do this. 
>> 
>> -Filip
>> 
>>> On Feb 24, 2017, at 20:50, Mark Lam <[email protected]> wrote:
>>> 
>>> The JSC VM has this method setExclusiveThread().  Some details:
>>> 1. setExclusiveThread() is only used to forego actually locking/unlocking 
>>> the underlying lock inside JSLock.
>>> 2. setExclusiveThread() is only used by WebCore where we can guarantee that 
>>> the VM will only ever be used exclusively on one thread.
>>> 3. the underlying lock inside JSLock used to be a slow system lock.
>>> 
>>> Now that we have fast locking, I propose that we simplify the JSLock code 
>>> by removing the concept of the exclusiveThread and always lock/unlock the 
>>> underlying lock.  This also give us the ability to tryLock the JSLock 
>>> (something I would like to be able to do for something new I’m working on).
>>> 
>>> Does anyone see a reason why we can’t remove the concept of the 
>>> exclusiveThread?
>>> 
>>> Thanks.
>>> 
>>> Mark
>>> 
>>> _______________________________________________
>>> webkit-dev mailing list
>>> [email protected]
>>> https://lists.webkit.org/mailman/listinfo/webkit-dev
> 

_______________________________________________
webkit-dev mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to