It would be surprising if it did, since JS benchmarks usually acquire the JS 
lock around the whole benchmark.

-Filip


> On Feb 28, 2017, at 2:50 PM, Maciej Stachowiak <[email protected]> wrote:
> 
> 
> Good news that it doesn't affect Speedometer. Does this have any effect on 
> pure JS benchmarks running in the browser (e.g. JetStream)?
> 
> - Maciej
> 
>> On Feb 28, 2017, at 10:48 AM, Filip Pizlo <[email protected]> wrote:
>> 
>> 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
> 

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

Reply via email to