<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>164788</bug_id>
          
          <creation_ts>2016-11-15 13:47:00 -0800</creation_ts>
          <short_desc>It should be possible to disable concurrent GC timeslicing</short_desc>
          <delta_ts>2016-11-15 14:02:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>149432</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1251605</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-11-15 13:47:00 -0800</bug_when>
    <thetext>This will be an excellent testing configuration since it maximizes the chances of race conditions causing things to go terribly wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251610</commentid>
    <comment_count>1</comment_count>
      <attachid>294875</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-11-15 13:52:42 -0800</bug_when>
    <thetext>Created attachment 294875
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251613</commentid>
    <comment_count>2</comment_count>
      <attachid>294875</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-11-15 13:55:24 -0800</bug_when>
    <thetext>Comment on attachment 294875
the patch

View in context: https://bugs.webkit.org/attachment.cgi?id=294875&amp;action=review

r=me

&gt; Source/JavaScriptCore/ChangeLog:18
&gt; +        The idea is that we will usually use this in conjunction with collectContinuously=true

Is it worth just setting useCollectorTimeslicing=false when collectContinuously=true inside the compute dependent options function?

&gt; Source/JavaScriptCore/heap/Heap.cpp:686
&gt; +                // Disabling collector timeslicing is meant to be used together with
&gt; +                // --collectContinuously=true to maximize the opportunity for harmful races.

Might be worth mentioning this in the options file.

&gt; Source/JavaScriptCore/runtime/Options.h:197
&gt; +    v(bool, useCollectorTimeslicing, true, Normal, nullptr) \

It&apos;s probably worth adding a description here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251616</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-11-15 13:58:13 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 294875 [details]
&gt; the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=294875&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:18
&gt; &gt; +        The idea is that we will usually use this in conjunction with collectContinuously=true
&gt; 
&gt; Is it worth just setting useCollectorTimeslicing=false when
&gt; collectContinuously=true inside the compute dependent options function?

No, because I want to be able to test continuous collection with collector timeslicing.  That will shake out races in the stop-resume code.

&gt; 
&gt; &gt; Source/JavaScriptCore/heap/Heap.cpp:686
&gt; &gt; +                // Disabling collector timeslicing is meant to be used together with
&gt; &gt; +                // --collectContinuously=true to maximize the opportunity for harmful races.
&gt; 
&gt; Might be worth mentioning this in the options file.
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/Options.h:197
&gt; &gt; +    v(bool, useCollectorTimeslicing, true, Normal, nullptr) \
&gt; 
&gt; It&apos;s probably worth adding a description here.

Can you think of anything more clever than &quot;use collector timeslicing&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251619</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-11-15 14:02:22 -0800</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/208754</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294875</attachid>
            <date>2016-11-15 13:52:42 -0800</date>
            <delta_ts>2016-11-15 13:55:24 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>6158</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA4NzUxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBA
CisyMDE2LTExLTE1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
SXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIGRpc2FibGUgY29uY3VycmVudCBHQyB0aW1lc2xpY2lu
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0Nzg4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAg
ICBDb2xsZWN0b3IgdGltZXNsaWNpbmcgbWVhbnMgdGhhdCB0aGUgY29sbGVjdG9yIHdpbGwgdHJ5
IHRvIHBhdXNlIG9uY2UgZXZlcnkgMm1zLiBUaGlzIGlzCisgICAgICAgIGdyZWF0IGJlY2F1c2Ug
aXQgdGhyb3R0bGVzIHRoZSBtdXRhdG9yIGFuZCBwcmV2ZW50cyBpdCBmcm9tIG91dHBhY2luZyB0
aGUgY29sbGVjdG9yLiBCdXQKKyAgICAgICAgaXQgcmVkdWNlcyBzb21lIG9mIHRoZSBlZmZpY2Fj
eSBvZiB0aGUgY29sbGVjdENvbnRpbnVvdXNseT10cnVlIGNvbmZpZ3VyYXRpb246IHdoaWxlCisg
ICAgICAgIGl0J3MgZ3JlYXQgdGhhdCBjb2xsZWN0aW5nIGNvbnRpbnVvdXNseSBtZWFucyB0aGF0
IHRoZSBjb2xsZWN0b3Igd2lsbCBhbHNvIHBhdXNlIG1vcmUKKyAgICAgICAgZnJlcXVlbnRseSBh
bmQgc28gaXQgd2lsbCB0ZXN0IHRoZSBwYXVzaW5nIGNvZGUsIGl0IGFsc28gbWVhbnMgdGhhdCB0
aGUgY29sbGVjdG9yIHdpbGwKKyAgICAgICAgc3BlbmQgbGVzcyB0aW1lIHJ1bm5pbmcgY29uY3Vy
cmVudGx5LiBUaGUgcHJpbWFyeSBwdXJwb3NlIG9mIGNvbGxlY3RDb250aW51b3VzbHkgaXMgdG8K
KyAgICAgICAgbWF4aW1pemUgdGhlIGFtb3VudCBvZiB0aW1lIHRoYXQgdGhlIGNvbGxlY3RvciBp
cyBydW5uaW5nIGNvbmN1cnJlbnRseSB0byB0aGUgbXV0YXRvciB0bworICAgICAgICBtYXhpbWl6
ZSB0aGUgbGlrZWxpaG9vZCB0aGF0IGEgcmFjZSB3aWxsIGNhdXNlIGEgZGV0ZWN0YWJsZSBlcnJv
ci4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWRkcyBhbiBvcHRpb24gdG8gZGlzYWJsZSBjb2xs
ZWN0b3IgdGltZXNsaWNpbmcgKHVzZUNvbGxlY3RvclRpbWVzbGljaW5nPWZhbHNlKS4KKyAgICAg
ICAgVGhlIGlkZWEgaXMgdGhhdCB3ZSB3aWxsIHVzdWFsbHkgdXNlIHRoaXMgaW4gY29uanVuY3Rp
b24gd2l0aCBjb2xsZWN0Q29udGludW91c2x5PXRydWUKKyAgICAgICAgdG8gZmluZCByYWNlIGNv
bmRpdGlvbnMgZHVyaW5nIG1hcmtpbmcsIGJ1dCB3ZSBjYW4gYWxzbyB1c2UgdGhlIHR3byBvcHRp
b25zCisgICAgICAgIGluZGVwZW5kZW50bHkgdG8gZm9jdXMgb3VyIHRlc3Rpbmcgb24gb3RoZXIg
dGhpbmdzLgorCisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6
bWFya1RvRml4cG9pbnQpOgorICAgICAgICAqIGhlYXAvU2xvdFZpc2l0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpTbG90VmlzaXRvcjo6ZHJhaW5JblBhcmFsbGVsKTogV2Ugc2hvdWxkIGhhdmUgYWRk
ZWQgdGhpcyBoZWxwZXIgYWdlcyBhZ28uCisgICAgICAgICogaGVhcC9TbG90VmlzaXRvci5oOgor
ICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5oOgorCiAyMDE2LTExLTE1ICBGaWxpcCBQaXpsbyAg
PGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgVGhlIGNvbmN1cnJlbnQgR0Mgc2hvdWxkIGhh
dmUgYSB0aW1lc2xpY2luZyBjb250cm9sbGVyCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwLmNwcAkocmV2aXNpb24gMjA4NzUwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2OSwyMSArNjY5LDIzIEBAIHZvaWQgSGVhcDo6
bWFya1RvRml4cG9pbnQoZG91YmxlIGdjU3RhcnQKICAgICAgICAgewogICAgICAgICAgICAgVGlt
aW5nU2NvcGUgdHJhY2VUaW1pbmdTY29wZSgqdGhpcywgIkhlYXA6Om1hcmtUb0ZpeHBvaW50IHRy
YWNpbmciKTsKICAgICAgICAgICAgIFBhcmFsbGVsTW9kZUVuYWJsZXIgZW5hYmxlcigqbV9jb2xs
ZWN0b3JTbG90VmlzaXRvcik7Ci0gICAgICAgICAgICBmb3IgKDs7KSB7Ci0gICAgICAgICAgICAg
ICAgTW9ub3RvbmljVGltZSBub3cgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKLSAgICAgICAgICAg
ICAgICBTbG90VmlzaXRvcjo6U2hhcmVkRHJhaW5SZXN1bHQgZHJhaW5SZXN1bHQ7Ci0gICAgICAg
ICAgICAgICAgaWYgKHNob3VsZEJlUmVzdW1lZChub3cpKSB7Ci0gICAgICAgICAgICAgICAgICAg
IFJlc3VtZVRoZVdvcmxkU2NvcGUgcmVzdW1lVGhlV29ybGRTY29wZSgqdGhpcyk7Ci0gICAgICAg
ICAgICAgICAgICAgIG1fY29sbGVjdG9yU2xvdFZpc2l0b3ItPmRvbmF0ZUFuZERyYWluKHRpbWVU
b1N0b3Aobm93KSk7Ci0gICAgICAgICAgICAgICAgICAgIGRyYWluUmVzdWx0ID0gbV9jb2xsZWN0
b3JTbG90VmlzaXRvci0+ZHJhaW5Gcm9tU2hhcmVkKAotICAgICAgICAgICAgICAgICAgICAgICAg
U2xvdFZpc2l0b3I6Ok1hc3RlckRyYWluLCB0aW1lVG9TdG9wKG5vdykpOwotICAgICAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fY29sbGVjdG9yU2xvdFZpc2l0b3It
PmRvbmF0ZUFuZERyYWluKHRpbWVUb1Jlc3VtZShub3cpKTsKLSAgICAgICAgICAgICAgICAgICAg
ZHJhaW5SZXN1bHQgPSBtX2NvbGxlY3RvclNsb3RWaXNpdG9yLT5kcmFpbkZyb21TaGFyZWQoCi0g
ICAgICAgICAgICAgICAgICAgICAgICBTbG90VmlzaXRvcjo6TWFzdGVyRHJhaW4sIHRpbWVUb1Jl
c3VtZShub3cpKTsKKyAgICAgICAgICAgIGlmIChPcHRpb25zOjp1c2VDb2xsZWN0b3JUaW1lc2xp
Y2luZygpKSB7CisgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAg
ICBNb25vdG9uaWNUaW1lIG5vdyA9IE1vbm90b25pY1RpbWU6Om5vdygpOworICAgICAgICAgICAg
ICAgICAgICBTbG90VmlzaXRvcjo6U2hhcmVkRHJhaW5SZXN1bHQgZHJhaW5SZXN1bHQ7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChzaG91bGRCZVJlc3VtZWQobm93KSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgUmVzdW1lVGhlV29ybGRTY29wZSByZXN1bWVUaGVXb3JsZFNjb3BlKCp0aGlz
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRyYWluUmVzdWx0ID0gbV9jb2xsZWN0b3JTbG90
VmlzaXRvci0+ZHJhaW5JblBhcmFsbGVsKHRpbWVUb1N0b3Aobm93KSk7CisgICAgICAgICAgICAg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgZHJhaW5SZXN1bHQgPSBtX2Nv
bGxlY3RvclNsb3RWaXNpdG9yLT5kcmFpbkluUGFyYWxsZWwodGltZVRvUmVzdW1lKG5vdykpOwor
ICAgICAgICAgICAgICAgICAgICBpZiAoZHJhaW5SZXN1bHQgPT0gU2xvdFZpc2l0b3I6OlNoYXJl
ZERyYWluUmVzdWx0OjpEb25lKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChkcmFpblJlc3VsdCA9PSBTbG90Vmlz
aXRvcjo6U2hhcmVkRHJhaW5SZXN1bHQ6OkRvbmUpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBEaXNhYmxpbmcgY29s
bGVjdG9yIHRpbWVzbGljaW5nIGlzIG1lYW50IHRvIGJlIHVzZWQgdG9nZXRoZXIgd2l0aAorICAg
ICAgICAgICAgICAgIC8vIC0tY29sbGVjdENvbnRpbnVvdXNseT10cnVlIHRvIG1heGltaXplIHRo
ZSBvcHBvcnR1bml0eSBmb3IgaGFybWZ1bCByYWNlcy4KKyAgICAgICAgICAgICAgICBSZXN1bWVU
aGVXb3JsZFNjb3BlIHJlc3VtZVRoZVdvcmxkU2NvcGUoKnRoaXMpOworICAgICAgICAgICAgICAg
IG1fY29sbGVjdG9yU2xvdFZpc2l0b3ItPmRyYWluSW5QYXJhbGxlbCgpOwogICAgICAgICAgICAg
fQogICAgICAgICB9CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xv
dFZpc2l0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Ns
b3RWaXNpdG9yLmNwcAkocmV2aXNpb24gMjA4NzUwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvU2xvdFZpc2l0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NzMsNiArNDczLDEyIEBA
IFNsb3RWaXNpdG9yOjpTaGFyZWREcmFpblJlc3VsdCBTbG90VmlzaXQKICAgICB9CiB9CiAKK1Ns
b3RWaXNpdG9yOjpTaGFyZWREcmFpblJlc3VsdCBTbG90VmlzaXRvcjo6ZHJhaW5JblBhcmFsbGVs
KE1vbm90b25pY1RpbWUgdGltZW91dCkKK3sKKyAgICBkb25hdGVBbmREcmFpbih0aW1lb3V0KTsK
KyAgICByZXR1cm4gZHJhaW5Gcm9tU2hhcmVkKE1hc3RlckRyYWluLCB0aW1lb3V0KTsKK30KKwog
dm9pZCBTbG90VmlzaXRvcjo6YWRkT3BhcXVlUm9vdCh2b2lkKiByb290KQogewogICAgIGlmIChP
cHRpb25zOjpudW1iZXJPZkdDTWFya2VycygpID09IDEpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuaAkocmV2aXNpb24gMjA4NzUwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDYg
KzEwNSw4IEBAIHB1YmxpYzoKICAgICBlbnVtIGNsYXNzIFNoYXJlZERyYWluUmVzdWx0IHsgRG9u
ZSwgVGltZWRPdXQgfTsKICAgICBTaGFyZWREcmFpblJlc3VsdCBkcmFpbkZyb21TaGFyZWQoU2hh
cmVkRHJhaW5Nb2RlLCBNb25vdG9uaWNUaW1lIHRpbWVvdXQgPSBNb25vdG9uaWNUaW1lOjppbmZp
bml0eSgpKTsKIAorICAgIFNoYXJlZERyYWluUmVzdWx0IGRyYWluSW5QYXJhbGxlbChNb25vdG9u
aWNUaW1lIHRpbWVvdXQgPSBNb25vdG9uaWNUaW1lOjppbmZpbml0eSgpKTsKKwogICAgIHZvaWQg
aGFydmVzdFdlYWtSZWZlcmVuY2VzKCk7CiAgICAgdm9pZCBmaW5hbGl6ZVVuY29uZGl0aW9uYWxG
aW5hbGl6ZXJzKCk7CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
cHRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0
aW9ucy5oCShyZXZpc2lvbiAyMDg3NTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PcHRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5NCw2ICsxOTQsNyBAQCB0eXBlZGVmIGNv
bnN0IGNoYXIqIG9wdGlvblN0cmluZzsKICAgICB2KGRvdWJsZSwgbWVkaXVtSGVhcFJBTUZyYWN0
aW9uLCAwLjUsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoZG91YmxlLCBtZWRpdW1IZWFwR3Jv
d3RoRmFjdG9yLCAxLjUsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoZG91YmxlLCBsYXJnZUhl
YXBHcm93dGhGYWN0b3IsIDEuMjQsIE5vcm1hbCwgbnVsbHB0cikgXAorICAgIHYoYm9vbCwgdXNl
Q29sbGVjdG9yVGltZXNsaWNpbmcsIHRydWUsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoZG91
YmxlLCBjb25jdXJyZW50R0NIZWFkcm9vbVJhdGlvLCAxLjUsIE5vcm1hbCwgbnVsbHB0cikgXAog
ICAgIHYoZG91YmxlLCBjb25jdXJyZW50R0NQZXJpb2RNUywgMiwgTm9ybWFsLCBudWxscHRyKSBc
CiAgICAgdihib29sLCBzY3JpYmJsZUZyZWVDZWxscywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikg
XAo=
</data>
<flag name="review"
          id="317529"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>