<?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>164783</bug_id>
          
          <creation_ts>2016-11-15 12:27:09 -0800</creation_ts>
          <short_desc>The concurrent GC should have a timeslicing controller</short_desc>
          <delta_ts>2016-11-15 13:15:23 -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>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</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>1251557</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-11-15 12:27:09 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251561</commentid>
    <comment_count>1</comment_count>
      <attachid>294864</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-11-15 12:34:23 -0800</bug_when>
    <thetext>Created attachment 294864
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251564</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-15 12:35:32 -0800</bug_when>
    <thetext>Attachment 294864 did not pass style-queue:


ERROR: Source/JavaScriptCore/heap/Heap.cpp:129:  Declaration has space between type name and * in ramSize * Options  [whitespace/declaration] [3]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251581</commentid>
    <comment_count>3</comment_count>
      <attachid>294864</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-11-15 13:02:51 -0800</bug_when>
    <thetext>Comment on attachment 294864
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251583</commentid>
    <comment_count>4</comment_count>
      <attachid>294864</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-11-15 13:03:50 -0800</bug_when>
    <thetext>Comment on attachment 294864
the patch

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

&gt; Source/JavaScriptCore/ChangeLog:26
&gt; +        1ms: 30% worse than 2ms on splay-latency.

I think this result deserves some investigation: Why does trying to run for less than 1ms cause pauses &gt; 1ms? Also, I think most programmers would intuitively feel more comfortable with pauses on the order of 1ms vs 2ms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251587</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-11-15 13:12:07 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 294864 [details]
&gt; the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=294864&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:26
&gt; &gt; +        1ms: 30% worse than 2ms on splay-latency.
&gt; 
&gt; I think this result deserves some investigation: Why does trying to run for
&gt; less than 1ms cause pauses &gt; 1ms? Also, I think most programmers would
&gt; intuitively feel more comfortable with pauses on the order of 1ms vs 2ms.

1ms isn&apos;t the pause time.  It&apos;s the period.  The pause time is 1ms * targetCollectorUtilization.

So the answer is probably: OS timing granularity.

Even if the OS has the ability to scheduling timers on sub-1ms granularity, most other timers aren&apos;t scheduled that way, so the sub-1ms timeouts probably just get rounded.  As you go for smaller timeouts, I bet that your wakeup times get more noisy, which then means that when the collector asks for &quot;timeout in 0.34ms&quot;, it really gets &quot;timeout in 0-1ms at random&quot;.  So splay performs worse because the collector isn&apos;t really hitting its utilization target.

On the other hand, with 2ms, I bet that the rounding works out less badly.

The reason why I did the experiment over 1, 2, 3, and 4ms is because I figured that it was going to be a war between timing granularity on one end and pauses getting too long on the other.  2ms seems to be the local optimum.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251589</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-11-15 13:15:23 -0800</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/208750</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294864</attachid>
            <date>2016-11-15 12:34:23 -0800</date>
            <delta_ts>2016-11-15 13:02:51 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>13718</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA4NzQ1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBA
CisyMDE2LTExLTE1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
VGhlIGNvbmN1cnJlbnQgR0Mgc2hvdWxkIGhhdmUgYSB0aW1lc2xpY2luZyBjb250cm9sbGVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ3ODMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRo
aXMgYWRkcyBhIHNpbXBsZSBjb250cm9sIHN5c3RlbSBmb3IgZGVjaWRpbmcgd2hlbiB0aGUgY29s
bGVjdG9yIHNob3VsZCBsZXQgdGhlIG11dGF0b3IgcnVuCisgICAgICAgIGFuZCB3aGVuIGl0IHNo
b3VsZCBzdG9wIHRoZSBtdXRhdG9yLiBXZSBkZWZpbml0ZWx5IGhhdmUgdG8gc3RvcCB0aGUgbXV0
YXRvciBkdXJpbmcgY2VydGFpbgorICAgICAgICBjb2xsZWN0b3IgcGhhc2VzLCBidXQgZHVyaW5n
IG1hcmtpbmcgLSB3aGljaCB0YWtlcyB0aGUgbW9zdCB0aW1lIC0gd2UgY2FuIGdvIGVpdGhlciB3
YXkuCisgICAgICAgIE5vcm1hbGx5IHdlIHdhbnQgdG8gbGV0IHRoZSBtdXRhdG9yIHJ1biwgYnV0
IGlmIHRoZSBoZWFwIHNpemUgc3RhcnRzIHRvIGdyb3cgdGhlbiB3ZSBoYXZlIHRvCisgICAgICAg
IHN0b3AgdGhlIG11dGF0b3IganVzdCB0byBtYWtlIHN1cmUgaXQgZG9lc24ndCBnZXQgdG9vIGZh
ciBhaGVhZCBvZiB0aGUgY29sbGVjdG9yLiBUaGF0IGNvdWxkCisgICAgICAgIGxlYWQgdG8gbWVt
b3J5IGV4aGF1c3Rpb24sIHNvIGl0J3MgYmV0dGVyIHRvIGp1c3Qgc3RvcCBpbiB0aGF0IGNhc2Uu
CisgICAgICAgIAorICAgICAgICBUaGUgY29udHJvbGxlciB0cmllcyB0byBuZXZlciBzdG9wIHRo
ZSBtdXRhdG9yIGZvciBsb25nZXIgdGhhbiBzaG9ydCB0aW1lc2xpY2VzLiBJdCBzbGljZXMgb24K
KyAgICAgICAgYSAybXMgcGVyaW9kIChjb25maWd1cmFibGUgdmlhIE9wdGlvbnMpLiBUaGUgYW1v
dW50IG9mIHRoYXQgcGVyaW9kIHRoYXQgdGhlIGNvbGxlY3RvciBzcGVuZHMKKyAgICAgICAgd2l0
aCB0aGUgbXV0YXRvciBzdG9wcGVkIGlzIGRldGVybWluZWQgYnkgdGhlIGZyYWN0aW9uIG9mIHRo
ZSBjb2xsZWN0b3IncyBjb25jdXJyZW50IGhlYWRyb29tCisgICAgICAgIHRoYXQgaGFzIGJlZW4g
YWxsb2NhdGVkIG92ZXIuIFRoZSBoZWFkcm9vbSBpcyBjdXJyZW50bHkgY29uZmlndXJlZCBhdCA1
MCUgb2Ygd2hhdCB3YXMKKyAgICAgICAgYWxsb2NhdGVkIGJlZm9yZSB0aGUgY29sbGVjdG9yIHN0
YXJ0ZWQuCisgICAgICAgIAorICAgICAgICBUaGlzIG1vdmVzIGEgYnVuY2ggb2YgcGFyYW1ldGVy
cyBpbnRvIE9wdGlvbnMgc28gdGhhdCBpdCdzIGVhc2llciB0byBwbGF5IHdpdGggZGlmZmVyZW50
CisgICAgICAgIGNvbmZpZ3VyYXRpb25zLgorICAgICAgICAKKyAgICAgICAgSSB0cmllZCB0aGVz
ZSBkaWZmZXJlbnQgdmFsdWVzIGZvciB0aGUgcGVyaW9kOgorICAgICAgICAKKyAgICAgICAgMW1z
OiAzMCUgd29yc2UgdGhhbiAybXMgb24gc3BsYXktbGF0ZW5jeS4KKyAgICAgICAgMm1zOiBiZXN0
IHNjb3JlIG9uIHNwbGF5LWxhdGVuY3k6IHRoZSB0aWNrIHRpbWUgYWJvdmUgdGhlIDk5LjUlIHBl
cmNlbnRpbGUgaXMgPDJtcy4KKyAgICAgICAgM21zOiA0MCUgd29yc2UgdGhhbiAybXMgb24gc3Bs
YXktbGF0ZW5jeS4KKyAgICAgICAgNG1zOiA0MCUgd29yc2UgdGhhbiAybXMgb24gc3BsYXktbGF0
ZW5jeS4KKyAgICAgICAgCisgICAgICAgIEkgYWxzbyB0cmllZCAxMDAlIGhlYWRyb29tIGFzIGFu
IGFsdGVybmF0ZSB0byA1MCUgYW5kIGZvdW5kIGl0IHRvIGJlIGEgd29yc2UuCisgICAgICAgIAor
ICAgICAgICBUaGlzIHBhdGNoIGlzIGEgMnggaW1wcm92ZW1lbnQgb24gc3BsYXktbGF0ZW5jeSB3
aXRoIHRoZSBkZWZhdWx0IHBhcmFtZXRlcnMgYW5kIGNvbmN1cnJlbnQgR0MKKyAgICAgICAgZW5h
YmxlZC4gUHJpb3IgdG8gdGhpcyBjaGFuZ2UsIHRoZSBHQyBkaWRuJ3QgaGF2ZSBhIGdvb2QgYm91
bmQgb24gaXRzIHBhdXNlIHRpbWVzLCB3aGljaAorICAgICAgICB3b3VsZCBjYXVzZSB0aGVzZSBw
cm9ibGVtcy4gQ29uY3VycmVudCBHQyBpcyBub3cgNS42eCBiZXR0ZXIgb24gc3BsYXktbGF0ZW5j
eSB0aGFuIG5vCisgICAgICAgIGNvbmN1cnJlbnQgR0MuCisKKyAgICAgICAgKiBoZWFwL0hlYXAu
Y3BwOgorICAgICAgICAoSlNDOjpIZWFwOjpSZXN1bWVUaGVXb3JsZFNjb3BlOjpSZXN1bWVUaGVX
b3JsZFNjb3BlKToKKyAgICAgICAgKEpTQzo6SGVhcDo6bWFya1RvRml4cG9pbnQpOgorICAgICAg
ICAoSlNDOjpIZWFwOjpjb2xsZWN0SW5UaHJlYWQpOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9u
cy5oOgorCiAyMDE2LTExLTE1ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAg
ICAgICBUaGUganNjIHNoZWxsJ3Mgc2V0SW1wdXJlR2V0dGVyRGVsZWdhdGUoKSBzaG91bGQgZW5z
dXJlIHRoYXQgdGhlIHNldCB2YWx1ZSBpcyBhbiBJbXB1cmVHZXR0ZXIuCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmNwcAkocmV2aXNpb24gMjA4NzM0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDYgKzc4LDE2IEBA
IHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBKU0MgewogCituYW1lc3BhY2Ugewor
Citkb3VibGUgbWF4UGF1c2VNUyhkb3VibGUgdGhpc1BhdXNlTVMpCit7CisgICAgc3RhdGljIGRv
dWJsZSBtYXhQYXVzZU1TID0gc3RkOjptYXgodGhpc1BhdXNlTVMsIG1heFBhdXNlTVMpOworICAg
IHJldHVybiBtYXhQYXVzZU1TOworfQorCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UKKwogY2xh
c3MgSGVhcDo6UmVzdW1lVGhlV29ybGRTY29wZSB7CiBwdWJsaWM6CiAgICAgUmVzdW1lVGhlV29y
bGRTY29wZShIZWFwJiBoZWFwKQpAQCAtODYsOCArOTYsMTAgQEAgcHVibGljOgogICAgICAgICBp
ZiAoIU9wdGlvbnM6OnVzZUNvbmN1cnJlbnRHQygpKQogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICAKLSAgICAgICAgaWYgKE9wdGlvbnM6OmxvZ0dDKCkpCi0gICAgICAgICAgICBkYXRhTG9n
KChNb25vdG9uaWNUaW1lOjpub3coKSAtIG1faGVhcC5tX3N0b3BUaW1lKS5taWxsaXNlY29uZHMo
KSwgIiBtcy4uLl1cbiIpOworICAgICAgICBpZiAoT3B0aW9uczo6bG9nR0MoKSkgeworICAgICAg
ICAgICAgZG91YmxlIHRoaXNQYXVzZU1TID0gKE1vbm90b25pY1RpbWU6Om5vdygpIC0gbV9oZWFw
Lm1fc3RvcFRpbWUpLm1pbGxpc2Vjb25kcygpOworICAgICAgICAgICAgZGF0YUxvZyh0aGlzUGF1
c2VNUywgIiBtcyAobWF4ICIsIG1heFBhdXNlTVModGhpc1BhdXNlTVMpLCAiKS4uLl1cbiIpOwor
ICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBtX2hlYXAucmVzdW1lVGhlV29ybGQoKTsKICAg
ICB9CkBAIC0xMDksMjQgKzEyMSwyNCBAQCBwcml2YXRlOgogCiBuYW1lc3BhY2UgewogCi1zdGF0
aWMgY29uc3Qgc2l6ZV90IGxhcmdlSGVhcFNpemUgPSAzMiAqIE1COyAvLyBBYm91dCAxLjVYIHRo
ZSBhdmVyYWdlIHdlYnBhZ2UuCi1jb25zdCBzaXplX3Qgc21hbGxIZWFwU2l6ZSA9IDEgKiBNQjsg
Ly8gTWF0Y2hlcyB0aGUgRmFzdE1hbGxvYyBwZXItdGhyZWFkIGNhY2hlLgotCiBzaXplX3QgbWlu
SGVhcFNpemUoSGVhcFR5cGUgaGVhcFR5cGUsIHNpemVfdCByYW1TaXplKQogewotICAgIGlmICho
ZWFwVHlwZSA9PSBMYXJnZUhlYXApCi0gICAgICAgIHJldHVybiBtaW4obGFyZ2VIZWFwU2l6ZSwg
cmFtU2l6ZSAvIDQpOwotICAgIHJldHVybiBzbWFsbEhlYXBTaXplOworICAgIGlmIChoZWFwVHlw
ZSA9PSBMYXJnZUhlYXApIHsKKyAgICAgICAgZG91YmxlIHJlc3VsdCA9IG1pbigKKyAgICAgICAg
ICAgIHN0YXRpY19jYXN0PGRvdWJsZT4oT3B0aW9uczo6bGFyZ2VIZWFwU2l6ZSgpKSwKKyAgICAg
ICAgICAgIHJhbVNpemUgKiBPcHRpb25zOjpzbWFsbEhlYXBSQU1GcmFjdGlvbigpKTsKKyAgICAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PHNpemVfdD4ocmVzdWx0KTsKKyAgICB9CisgICAgcmV0dXJu
IE9wdGlvbnM6OnNtYWxsSGVhcFNpemUoKTsKIH0KIAogc2l6ZV90IHByb3BvcnRpb25hbEhlYXBT
aXplKHNpemVfdCBoZWFwU2l6ZSwgc2l6ZV90IHJhbVNpemUpCiB7Ci0gICAgLy8gVHJ5IHRvIHN0
YXkgdW5kZXIgMS8yIFJBTSBzaXplIHRvIGxlYXZlIHJvb20gZm9yIHRoZSBET00sIHJlbmRlcmlu
ZywgbmV0d29ya2luZywgZXRjLgotICAgIGlmIChoZWFwU2l6ZSA8IHJhbVNpemUgLyA0KQotICAg
ICAgICByZXR1cm4gMiAqIGhlYXBTaXplOwotICAgIGlmIChoZWFwU2l6ZSA8IHJhbVNpemUgLyAy
KQotICAgICAgICByZXR1cm4gMS41ICogaGVhcFNpemU7Ci0gICAgcmV0dXJuIDEuMjUgKiBoZWFw
U2l6ZTsKKyAgICBpZiAoaGVhcFNpemUgPCByYW1TaXplICogT3B0aW9uczo6c21hbGxIZWFwUkFN
RnJhY3Rpb24oKSkKKyAgICAgICAgcmV0dXJuIE9wdGlvbnM6OnNtYWxsSGVhcEdyb3d0aEZhY3Rv
cigpICogaGVhcFNpemU7CisgICAgaWYgKGhlYXBTaXplIDwgcmFtU2l6ZSAqIE9wdGlvbnM6Om1l
ZGl1bUhlYXBSQU1GcmFjdGlvbigpKQorICAgICAgICByZXR1cm4gT3B0aW9uczo6bWVkaXVtSGVh
cEdyb3d0aEZhY3RvcigpICogaGVhcFNpemU7CisgICAgcmV0dXJuIE9wdGlvbnM6OmxhcmdlSGVh
cEdyb3d0aEZhY3RvcigpICogaGVhcFNpemU7CiB9CiAKIGJvb2wgaXNWYWxpZFNoYXJlZEluc3Rh
bmNlVGhyZWFkU3RhdGUoVk0qIHZtKQpAQCAtNTI1LDE2ICs1MzcsNTMgQEAgdm9pZCBIZWFwOjpt
YXJrVG9GaXhwb2ludChkb3VibGUgZ2NTdGFydAogCiAgICAgbV9jb2xsZWN0b3JTbG90VmlzaXRv
ci0+ZGlkU3RhcnRNYXJraW5nKCk7CiAKLSAgICBTZWNvbmRzIGNvbmN1cnJlbnRUaW1lOwotICAg
IGRvdWJsZSBzdG9wcGVkT3ZlckNvbmN1cnJlbnRSYXRpbyA9IDAuMTsKLSAgICBjb25zdCBkb3Vi
bGUgcmF0aW9TdGVwID0gMS4zOwogICAgIE1vbm90b25pY1RpbWUgaW5pdGlhbFRpbWUgPSBNb25v
dG9uaWNUaW1lOjpub3coKTsKLSAgICBNb25vdG9uaWNUaW1lIHRvcE9mTG9vcFRpbWUgPSBpbml0
aWFsVGltZTsKKyAgICAKKyAgICBjb25zdCBTZWNvbmRzIHBlcmlvZCA9IFNlY29uZHM6OmZyb21N
aWxsaXNlY29uZHMoT3B0aW9uczo6Y29uY3VycmVudEdDUGVyaW9kTVMoKSk7CisgICAgCisgICAg
Y29uc3QgZG91YmxlIGJ5dGVzQWxsb2NhdGVkVGhpc0N5Y2xlQXRUaGVCZWdpbm5pbmcgPSBtX2J5
dGVzQWxsb2NhdGVkVGhpc0N5Y2xlOworICAgIGNvbnN0IGRvdWJsZSBieXRlc0FsbG9jYXRlZFRo
aXNDeWNsZUF0VGhlRW5kID0gYnl0ZXNBbGxvY2F0ZWRUaGlzQ3ljbGVBdFRoZUJlZ2lubmluZyAq
IE9wdGlvbnM6OmNvbmN1cnJlbnRHQ0hlYWRyb29tUmF0aW8oKTsKKyAgICAKKyAgICBhdXRvIHRh
cmdldENvbGxlY3RvclV0aWxpemF0aW9uID0gWyZdICgpIC0+IGRvdWJsZSB7CisgICAgICAgIGRv
dWJsZSBoZWFkcm9vbUZ1bGxuZXNzID0KKyAgICAgICAgICAgIChtX2J5dGVzQWxsb2NhdGVkVGhp
c0N5Y2xlIC0gYnl0ZXNBbGxvY2F0ZWRUaGlzQ3ljbGVBdFRoZUJlZ2lubmluZykgLworICAgICAg
ICAgICAgKGJ5dGVzQWxsb2NhdGVkVGhpc0N5Y2xlQXRUaGVFbmQgLSBieXRlc0FsbG9jYXRlZFRo
aXNDeWNsZUF0VGhlQmVnaW5uaW5nKTsKKyAgICAgICAgCisgICAgICAgIEFTU0VSVChoZWFkcm9v
bUZ1bGxuZXNzID49IDApOworICAgICAgICBpZiAoIShoZWFkcm9vbUZ1bGxuZXNzID49IDApKQor
ICAgICAgICAgICAgaGVhZHJvb21GdWxsbmVzcyA9IDA7CisgICAgICAgIEFTU0VSVChoZWFkcm9v
bUZ1bGxuZXNzIDw9IDEpOworICAgICAgICBpZiAoIShoZWFkcm9vbUZ1bGxuZXNzIDw9IDEpKQor
ICAgICAgICAgICAgaGVhZHJvb21GdWxsbmVzcyA9IDE7CisgICAgICAgIAorICAgICAgICByZXR1
cm4gaGVhZHJvb21GdWxsbmVzczsKKyAgICB9OworICAgIAorICAgIGF1dG8gZWxhcHNlZEluUGVy
aW9kID0gWyZdIChNb25vdG9uaWNUaW1lIG5vdykgLT4gU2Vjb25kcyB7CisgICAgICAgIHJldHVy
biAobm93IC0gaW5pdGlhbFRpbWUpICUgcGVyaW9kOworICAgIH07CisgICAgCisgICAgYXV0byBw
aGFzZSA9IFsmXSAoTW9ub3RvbmljVGltZSBub3cpIC0+IGRvdWJsZSB7CisgICAgICAgIHJldHVy
biBlbGFwc2VkSW5QZXJpb2Qobm93KSAvIHBlcmlvZDsKKyAgICB9OworICAgIAorICAgIGF1dG8g
c2hvdWxkQmVSZXN1bWVkID0gWyZdIChNb25vdG9uaWNUaW1lIG5vdykgLT4gYm9vbCB7CisgICAg
ICAgIHJldHVybiBwaGFzZShub3cpID4gdGFyZ2V0Q29sbGVjdG9yVXRpbGl6YXRpb24oKTsKKyAg
ICB9OworICAgIAorICAgIGF1dG8gdGltZVRvUmVzdW1lID0gWyZdIChNb25vdG9uaWNUaW1lIG5v
dykgLT4gTW9ub3RvbmljVGltZSB7CisgICAgICAgIEFTU0VSVCghc2hvdWxkQmVSZXN1bWVkKG5v
dykpOworICAgICAgICByZXR1cm4gbm93IC0gZWxhcHNlZEluUGVyaW9kKG5vdykgKyBwZXJpb2Qg
KiB0YXJnZXRDb2xsZWN0b3JVdGlsaXphdGlvbigpOworICAgIH07CisgICAgCisgICAgYXV0byB0
aW1lVG9TdG9wID0gWyZdIChNb25vdG9uaWNUaW1lIG5vdykgLT4gTW9ub3RvbmljVGltZSB7Cisg
ICAgICAgIEFTU0VSVChzaG91bGRCZVJlc3VtZWQobm93KSk7CisgICAgICAgIHJldHVybiBub3cg
LSBlbGFwc2VkSW5QZXJpb2Qobm93KSArIHBlcmlvZDsKKyAgICB9OworICAgIAogICAgIGZvciAo
dW5zaWduZWQgaXRlcmF0aW9uID0gMTsgOyArK2l0ZXJhdGlvbikgewogICAgICAgICBpZiAoT3B0
aW9uczo6bG9nR0MoKSkKICAgICAgICAgICAgIGRhdGFMb2coImkjIiwgaXRlcmF0aW9uLCAiICIp
OwotICAgICAgICBNb25vdG9uaWNUaW1lIHRpbWVUb1Jlc3VtZSA9IHRvcE9mTG9vcFRpbWUgKyBj
b25jdXJyZW50VGltZSAqIHN0b3BwZWRPdmVyQ29uY3VycmVudFJhdGlvOwotICAgICAgICBzdG9w
cGVkT3ZlckNvbmN1cnJlbnRSYXRpbyAqPSByYXRpb1N0ZXA7CiAgICAgICAgIHsKICAgICAgICAg
ICAgIFRpbWluZ1Njb3BlIHByZUNvbnZlcmdlbmNlVGltaW5nU2NvcGUoKnRoaXMsICJIZWFwOjpt
YXJrVG9GaXhwb2ludCBjb25zZXJ2YXRpdmUgc2NhbiIpOwogICAgICAgICAgICAgQ29uc2VydmF0
aXZlUm9vdHMgY29uc2VydmF0aXZlUm9vdHMoKnRoaXMpOwpAQCAtNjIwLDE5ICs2NjksMjMgQEAg
dm9pZCBIZWFwOjptYXJrVG9GaXhwb2ludChkb3VibGUgZ2NTdGFydAogICAgICAgICB7CiAgICAg
ICAgICAgICBUaW1pbmdTY29wZSB0cmFjZVRpbWluZ1Njb3BlKCp0aGlzLCAiSGVhcDo6bWFya1Rv
Rml4cG9pbnQgdHJhY2luZyIpOwogICAgICAgICAgICAgUGFyYWxsZWxNb2RlRW5hYmxlciBlbmFi
bGVyKCptX2NvbGxlY3RvclNsb3RWaXNpdG9yKTsKLSAgICAgICAgICAgIG1fY29sbGVjdG9yU2xv
dFZpc2l0b3ItPmRvbmF0ZUFuZERyYWluKHRpbWVUb1Jlc3VtZSk7Ci0gICAgICAgICAgICBTbG90
VmlzaXRvcjo6U2hhcmVkRHJhaW5SZXN1bHQgZHJhaW5SZXN1bHQgPQotICAgICAgICAgICAgICAg
IG1fY29sbGVjdG9yU2xvdFZpc2l0b3ItPmRyYWluRnJvbVNoYXJlZChTbG90VmlzaXRvcjo6TWFz
dGVyRHJhaW4sIHRpbWVUb1Jlc3VtZSk7Ci0gICAgICAgICAgICBpZiAoZHJhaW5SZXN1bHQgIT0g
U2xvdFZpc2l0b3I6OlNoYXJlZERyYWluUmVzdWx0OjpEb25lKSB7Ci0gICAgICAgICAgICAgICAg
UmVzdW1lVGhlV29ybGRTY29wZSByZXN1bWVUaGVXb3JsZFNjb3BlKCp0aGlzKTsKLSAgICAgICAg
ICAgICAgICBtX2NvbGxlY3RvclNsb3RWaXNpdG9yLT5kb25hdGVBbmREcmFpbigpOwotICAgICAg
ICAgICAgICAgIG1fY29sbGVjdG9yU2xvdFZpc2l0b3ItPmRyYWluRnJvbVNoYXJlZChTbG90Vmlz
aXRvcjo6TWFzdGVyRHJhaW4pOworICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAg
ICAgIE1vbm90b25pY1RpbWUgbm93ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CisgICAgICAgICAg
ICAgICAgU2xvdFZpc2l0b3I6OlNoYXJlZERyYWluUmVzdWx0IGRyYWluUmVzdWx0OworICAgICAg
ICAgICAgICAgIGlmIChzaG91bGRCZVJlc3VtZWQobm93KSkgeworICAgICAgICAgICAgICAgICAg
ICBSZXN1bWVUaGVXb3JsZFNjb3BlIHJlc3VtZVRoZVdvcmxkU2NvcGUoKnRoaXMpOworICAgICAg
ICAgICAgICAgICAgICBtX2NvbGxlY3RvclNsb3RWaXNpdG9yLT5kb25hdGVBbmREcmFpbih0aW1l
VG9TdG9wKG5vdykpOworICAgICAgICAgICAgICAgICAgICBkcmFpblJlc3VsdCA9IG1fY29sbGVj
dG9yU2xvdFZpc2l0b3ItPmRyYWluRnJvbVNoYXJlZCgKKyAgICAgICAgICAgICAgICAgICAgICAg
IFNsb3RWaXNpdG9yOjpNYXN0ZXJEcmFpbiwgdGltZVRvU3RvcChub3cpKTsKKyAgICAgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtX2NvbGxlY3RvclNsb3RWaXNpdG9y
LT5kb25hdGVBbmREcmFpbih0aW1lVG9SZXN1bWUobm93KSk7CisgICAgICAgICAgICAgICAgICAg
IGRyYWluUmVzdWx0ID0gbV9jb2xsZWN0b3JTbG90VmlzaXRvci0+ZHJhaW5Gcm9tU2hhcmVkKAor
ICAgICAgICAgICAgICAgICAgICAgICAgU2xvdFZpc2l0b3I6Ok1hc3RlckRyYWluLCB0aW1lVG9S
ZXN1bWUobm93KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChkcmFp
blJlc3VsdCA9PSBTbG90VmlzaXRvcjo6U2hhcmVkRHJhaW5SZXN1bHQ6OkRvbmUpCisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIAot
ICAgICAgICBNb25vdG9uaWNUaW1lIHRpbWVPZlN0b3AgPSBNb25vdG9uaWNUaW1lOjpub3coKTsK
LSAgICAgICAgY29uY3VycmVudFRpbWUgPSB0aW1lT2ZTdG9wIC0gdGltZVRvUmVzdW1lOwotICAg
ICAgICB0b3BPZkxvb3BUaW1lID0gdGltZU9mU3RvcDsKICAgICB9CiAKICAgICB7CkBAIC0xMTEy
LDcgKzExNjUsOCBAQCB2b2lkIEhlYXA6OmNvbGxlY3RJblRocmVhZCgpCiAgICAgCiAgICAgaWYg
KE9wdGlvbnM6OmxvZ0dDKCkpIHsKICAgICAgICAgTW9ub3RvbmljVGltZSBhZnRlciA9IE1vbm90
b25pY1RpbWU6Om5vdygpOwotICAgICAgICBkYXRhTG9nKChhZnRlciAtIG1fc3RvcFRpbWUpLm1p
bGxpc2Vjb25kcygpLCAiIG1zLCBjeWNsZSAiLCAoYWZ0ZXIgLSBiZWZvcmUpLm1pbGxpc2Vjb25k
cygpLCAiIG1zIEVORF1cbiIpOworICAgICAgICBkb3VibGUgdGhpc1BhdXNlTVMgPSAoYWZ0ZXIg
LSBtX3N0b3BUaW1lKS5taWxsaXNlY29uZHMoKTsKKyAgICAgICAgZGF0YUxvZyh0aGlzUGF1c2VN
UywgIiBtcyAobWF4ICIsIG1heFBhdXNlTVModGhpc1BhdXNlTVMpLCAiKSwgY3ljbGUgIiwgKGFm
dGVyIC0gYmVmb3JlKS5taWxsaXNlY29uZHMoKSwgIiBtcyBFTkRdXG4iKTsKICAgICB9CiAgICAg
CiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAkocmV2
aXNpb24gMjA4NzM0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xODcsNiArMTg3LDE1IEBAIHR5cGVkZWYgY29uc3QgY2hhciog
b3B0aW9uU3RyaW5nOwogICAgIHYoYm9vbCwgdXNlQ29uY3VycmVudEdDLCBmYWxzZSwgTm9ybWFs
LCBudWxscHRyKSBcCiAgICAgdihib29sLCBjb2xsZWN0Q29udGludW91c2x5LCBmYWxzZSwgTm9y
bWFsLCBudWxscHRyKSBcCiAgICAgdihib29sLCBmb3JjZUZlbmNlZEJhcnJpZXIsIGZhbHNlLCBO
b3JtYWwsIG51bGxwdHIpIFwKKyAgICB2KHVuc2lnbmVkLCBsYXJnZUhlYXBTaXplLCAzMiAqIDEw
MjQgKiAxMDI0LCBOb3JtYWwsIG51bGxwdHIpIFwKKyAgICB2KHVuc2lnbmVkLCBzbWFsbEhlYXBT
aXplLCAxICogMTAyNCAqIDEwMjQsIE5vcm1hbCwgbnVsbHB0cikgXAorICAgIHYoZG91YmxlLCBz
bWFsbEhlYXBSQU1GcmFjdGlvbiwgMC4yNSwgTm9ybWFsLCBudWxscHRyKSBcCisgICAgdihkb3Vi
bGUsIHNtYWxsSGVhcEdyb3d0aEZhY3RvciwgMiwgTm9ybWFsLCBudWxscHRyKSBcCisgICAgdihk
b3VibGUsIG1lZGl1bUhlYXBSQU1GcmFjdGlvbiwgMC41LCBOb3JtYWwsIG51bGxwdHIpIFwKKyAg
ICB2KGRvdWJsZSwgbWVkaXVtSGVhcEdyb3d0aEZhY3RvciwgMS41LCBOb3JtYWwsIG51bGxwdHIp
IFwKKyAgICB2KGRvdWJsZSwgbGFyZ2VIZWFwR3Jvd3RoRmFjdG9yLCAxLjI0LCBOb3JtYWwsIG51
bGxwdHIpIFwKKyAgICB2KGRvdWJsZSwgY29uY3VycmVudEdDSGVhZHJvb21SYXRpbywgMS41LCBO
b3JtYWwsIG51bGxwdHIpIFwKKyAgICB2KGRvdWJsZSwgY29uY3VycmVudEdDUGVyaW9kTVMsIDIs
IE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwgc2NyaWJibGVGcmVlQ2VsbHMsIGZhbHNl
LCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGRvdWJsZSwgc2l6ZUNsYXNzUHJvZ3Jlc3Npb24s
IDEuNCwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdih1bnNpZ25lZCwgbGFyZ2VBbGxvY2F0aW9u
Q3V0b2ZmLCAxMDAwMDAsIE5vcm1hbCwgbnVsbHB0cikgXApJbmRleDogU291cmNlL1dURi9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwODcz
NCkKKysrIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTYtMTEtMTUgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAg
ICBUaGUgY29uY3VycmVudCBHQyBzaG91bGQgaGF2ZSBhIHRpbWVzbGljaW5nIGNvbnRyb2xsZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDc4Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL0xv
Y2tBbGdvcml0aG0uaDogQWRkZWQgc29tZSBjb21tZW50cy4KKyAgICAgICAgKiB3dGYvU2Vjb25k
cy5oOiBBZGRlZCBzdXBwb3J0IGZvciBtb2R1bG8uIEl0J3MgbmVjZXNzYXJ5IGZvciB0aW1lc2xp
Y2luZy4KKyAgICAgICAgKFdURjo6U2Vjb25kczo6b3BlcmF0b3IlKToKKyAgICAgICAgKFdURjo6
U2Vjb25kczo6b3BlcmF0b3IlPSk6CisKIDIwMTYtMTEtMTEgIEZpbGlwIFBpemxvICA8ZnBpemxv
QGFwcGxlLmNvbT4KIAogICAgICAgICBUaGUgR0Mgc2hvdWxkIGJlIG9wdGlvbmFsbHkgY29uY3Vy
cmVudCBhbmQgZGlzYWJsZWQgYnkgZGVmYXVsdApJbmRleDogU291cmNlL1dURi93dGYvTG9ja0Fs
Z29yaXRobS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0xvY2tBbGdvcml0aG0uaAko
cmV2aXNpb24gMjA4NzM0KQorKysgU291cmNlL1dURi93dGYvTG9ja0FsZ29yaXRobS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw3ICszMyw5IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi0vLyBUaGlz
IGlzIHRoZSBhbGdvcml0aG0gdXNlZCBieSBXVEY6OkxvY2suCisvLyBUaGlzIGlzIHRoZSBhbGdv
cml0aG0gdXNlZCBieSBXVEY6OkxvY2suIFlvdSBjYW4gdXNlIGl0IHRvIHByb2plY3Qgb25lIGxv
Y2sgb250byBhbnkgYXRvbWljCisvLyBmaWVsZC4gVGhlIGxpbWl0IG9mIG9uZSBsb2NrIGlzIGR1
ZSB0byB0aGUgdXNlIG9mIHRoZSBmaWVsZCdzIGFkZHJlc3MgYXMgYSBrZXkgdG8gZmluZCB0aGUg
bG9jaydzCisvLyBxdWV1ZS4KIAogdGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGUsIExvY2tUeXBl
IGlzSGVsZEJpdCwgTG9ja1R5cGUgaGFzUGFya2VkQml0PgogY2xhc3MgTG9ja0FsZ29yaXRobSB7
CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9TZWNvbmRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dU
Ri93dGYvU2Vjb25kcy5oCShyZXZpc2lvbiAyMDg3MzQpCisrKyBTb3VyY2UvV1RGL3d0Zi9TZWNv
bmRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDggQEAKICNpZm5kZWYgV1RGX1NlY29u
ZHNfaAogI2RlZmluZSBXVEZfU2Vjb25kc19oCiAKKyNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5o
PgorCiBuYW1lc3BhY2UgV1RGIHsKIAogY2xhc3MgTW9ub3RvbmljVGltZTsKQEAgLTEwNCw2ICsx
MDYsMjEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gdmFsdWUoKSAvIG90aGVyLnZhbHVlKCk7
CiAgICAgfQogICAgIAorICAgIFNlY29uZHMgb3BlcmF0b3IlKGRvdWJsZSBzY2FsYXIpIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4gU2Vjb25kcyhmbW9kKHZhbHVlKCksIHNjYWxhcikpOwor
ICAgIH0KKyAgICAKKyAgICAvLyBUaGlzIHNvbHZlcyBmb3Igciwgd2hlcmU6CisgICAgLy8KKyAg
ICAvLyAgICAgZmxvb3IodGhpcyAvIG90aGVyKSArIHIgLyBvdGhlciA9IHRoaXMgLyBvdGhlcgor
ICAgIC8vCisgICAgLy8gVGhlcmVmb3JlLCBpZiB0aGlzIGlzIFNlY29uZHMgdGhlbiByIGlzIFNl
Y29uZHMuCisgICAgU2Vjb25kcyBvcGVyYXRvciUoU2Vjb25kcyBvdGhlcikgY29uc3QKKyAgICB7
CisgICAgICAgIHJldHVybiBTZWNvbmRzKGZtb2QodmFsdWUoKSwgb3RoZXIudmFsdWUoKSkpOwor
ICAgIH0KKyAgICAKICAgICBTZWNvbmRzJiBvcGVyYXRvcis9KFNlY29uZHMgb3RoZXIpCiAgICAg
ewogICAgICAgICByZXR1cm4gKnRoaXMgPSAqdGhpcyArIG90aGVyOwpAQCAtMTI0LDYgKzE0MSwx
NiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAqdGhpcyA9ICp0aGlzIC8gc2NhbGFyOwogICAg
IH0KICAgICAKKyAgICBTZWNvbmRzJiBvcGVyYXRvciU9KGRvdWJsZSBzY2FsYXIpCisgICAgewor
ICAgICAgICByZXR1cm4gKnRoaXMgPSAqdGhpcyAlIHNjYWxhcjsKKyAgICB9CisgICAgCisgICAg
U2Vjb25kcyYgb3BlcmF0b3IlPShTZWNvbmRzIG90aGVyKQorICAgIHsKKyAgICAgICAgcmV0dXJu
ICp0aGlzID0gKnRoaXMgJSBvdGhlcjsKKyAgICB9CisgICAgCiAgICAgV1RGX0VYUE9SVF9QUklW
QVRFIFdhbGxUaW1lIG9wZXJhdG9yKyhXYWxsVGltZSkgY29uc3Q7CiAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIE1vbm90b25pY1RpbWUgb3BlcmF0b3IrKE1vbm90b25pY1RpbWUpIGNvbnN0OwogICAg
IFdURl9FWFBPUlRfUFJJVkFURSBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUgb3BlcmF0b3IrKGNv
bnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYpIGNvbnN0Owo=
</data>
<flag name="review"
          id="317516"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>