<?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>56823</bug_id>
          
          <creation_ts>2011-03-22 04:30:37 -0700</creation_ts>
          <short_desc>REGRESSION: Allocation of memory is slow when building a 2GB tree</short_desc>
          <delta_ts>2011-04-07 19:59:49 -0700</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>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alan Tam">Tam</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>ap</cc>
    
    <cc>edwardjsabol</cc>
    
    <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>371327</commentid>
    <comment_count>0</comment_count>
    <who name="Alan Tam">Tam</who>
    <bug_when>2011-03-22 04:30:37 -0700</bug_when>
    <thetext>1. Open the attached html using webkit r78249 or later.

Try the same for:
* Safari 5.0
* WebKit trunk r78794 or before
* Any version of Chrome

Notice how it is 10x slower than all others, where a pass (after the first dozen passes) takes &gt;1000ms, rather than &lt;100ms as other browsers do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371435</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-22 10:03:09 -0700</bug_when>
    <thetext>There is no test case attached at the moment, please attach it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371451</commentid>
    <comment_count>2</comment_count>
      <attachid>86471</attachid>
    <who name="Alan Tam">Tam</who>
    <bug_when>2011-03-22 10:19:14 -0700</bug_when>
    <thetext>Created attachment 86471
Test case

Really attach the test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371469</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-22 10:39:11 -0700</bug_when>
    <thetext>&lt;rdar://problem/9169336&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373745</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-03-25 15:09:02 -0700</bug_when>
    <thetext>Initial times are even (between Safari 5.0.3 and TOT), but TOT starts to skyrocket upward from there. Safari 5.0.3 does have one or two very long pauses on the order of TOT, but TOT has very long pauses during each iteration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373747</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-03-25 15:10:20 -0700</bug_when>
    <thetext>Safari 5.0.3 beginning:
[A] Last pass took 43ms
[A] Last pass took 48ms
[A] Last pass took 65ms
[A] Last pass took 30ms
[A] Last pass took 31ms
[A] Last pass took 101ms

TOT beginning:
[A] Last pass took 52ms
[A] Last pass took 58ms
[A] Last pass took 60ms
[A] Last pass took 69ms
[A] Last pass took 84ms
[A] Last pass took 95ms

TOT later:
[A] Last pass took 1119ms
[A] Last pass took 1153ms
[A] Last pass took 1168ms
[A] Last pass took 1184ms
[A] Last pass took 1200ms
[A] Last pass took 1215ms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374751</commentid>
    <comment_count>6</comment_count>
      <attachid>87197</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-03-28 13:57:13 -0700</bug_when>
    <thetext>Created attachment 87197
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374813</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-03-28 15:00:54 -0700</bug_when>
    <thetext>Committed r82162: &lt;http://trac.webkit.org/changeset/82162&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374817</commentid>
    <comment_count>8</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-03-28 15:02:12 -0700</bug_when>
    <thetext>Reopening, since my patch didn&apos;t fix the whole regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374889</commentid>
    <comment_count>9</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-03-28 16:43:29 -0700</bug_when>
    <thetext>Updating title to reflect the specific constraints of this test: it allocates a 2GB tree!

Most of the run-time is dominated by OS virtual memory allocation, fault, and zero fill calls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375893</commentid>
    <comment_count>10</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-03-29 16:58:33 -0700</bug_when>
    <thetext>Some regression ranges:

77699 (fast) - 80051 (slow) [actually 78312]
-&gt; The capacity() bug, which was fixed in &lt;http://trac.webkit.org/changeset/82162&gt;.

80051 (fast) - 80052 (slow)
-&gt; Changing the block size to 16KB.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375914</commentid>
    <comment_count>11</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-03-29 17:14:15 -0700</bug_when>
    <thetext>Testing in other browsers:

Firefox aggressively grows the heap to 2GB, and never shrinks it. This is the fastest possible policy for this stress test (~2s total), but a very bad policy for memory footprint!

Chrome is pretty fast (~3.5s total) on its first run, but gets very slow (&gt;30s total or complete hang) on later runs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375924</commentid>
    <comment_count>12</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-03-29 17:29:53 -0700</bug_when>
    <thetext>&gt; Firefox aggressively grows the heap to 2GB, and never shrinks it.

Correction: It looks like Firefox will eventually shrink from 2GB if you give it enough cajoling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376007</commentid>
    <comment_count>13</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-03-29 19:56:57 -0700</bug_when>
    <thetext>It looks like the fundamental underlying problem here is that vm_map is O(N^2).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381948</commentid>
    <comment_count>14</comment_count>
      <attachid>87197</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-04-07 19:59:49 -0700</bug_when>
    <thetext>Comment on attachment 87197
Patch

Clearing review flag to get this out of the list.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>86471</attachid>
            <date>2011-03-22 10:19:14 -0700</date>
            <delta_ts>2011-03-22 10:19:14 -0700</delta_ts>
            <desc>Test case</desc>
            <filename>gc3.html</filename>
            <type>text/html</type>
            <size>1486</size>
            <attacher name="Alan Tam">Tam</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8dGl0bGU+VGVzdCBHQzwvdGl0bGU+CjwvaGVhZD4KPGJvZHk+Cjx0ZXh0
YXJlYSBpZD0icHJvZ3Jlc3MiIHJvd3M9IjEiIGNvbHM9IjgwIj5QcmVzcyBhbnkga2V5IHRvIHN0
YXJ0LjwvdGV4dGFyZWE+Cjxocj4KPHRleHRhcmVhIGlkPSJvdXRwdXQiIHJvd3M9IjYwIiBjb2xz
PSI4MCI+PC90ZXh0YXJlYT4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgp2YXIgTElT
VF9TSVpFID0gMTAwMDsKdmFyIFBFUk1BTkVOVF9QT09MX1NJWkUgPSAxMDAwMDsKdmFyIFBFUk1B
TkVOVF9TVEVQID0gMTAwOwoKLy8gQSBzaXplLVBFUk1BTkVOVF9QT09MX1NJWkUgYXJyYXkgb2Yg
TElTVC1TSVpFLW5vZGUgc3RydWN0dXJlCnZhciBwZXJtYW5lbnRQb29sID0gW107CnZhciBwZXJt
YW5lbnRDdXJyZW50Q291bnQgPSAwOwp2YXIgcGVybWFuZW50SW5kZXggPSAwOwoKdmFyIHByb2dy
ZXNzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2dyZXNzJyk7CnZhciBvdXRwdXQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3V0cHV0Jyk7CgpmdW5jdGlvbiBhbGxvY2F0ZVBlcm1h
bmVudCgpIHsKICAgIHByb2dyZXNzLnZhbHVlID0gIkFsbG9jYXRpbmcgaXRlbSAiICsgcGVybWFu
ZW50SW5kZXggKyAiIC4uLiI7CiAgICAvLyBQb3B1bGF0ZSBhIGZldyBwYWdlcyBmb3IgZXZlcnkg
aW52b2NhdGlvbgogICAgdmFyIGVuZCA9IHBlcm1hbmVudEluZGV4ICsgUEVSTUFORU5UX1NURVA7
CiAgICBsYXN0VGltZXN0YW1wID0gRGF0ZS5ub3coKTsKICAgIGZvciAoOyBwZXJtYW5lbnRJbmRl
eCA8IGVuZDsgKytwZXJtYW5lbnRJbmRleCkgewogICAgICAgIGlmIChwZXJtYW5lbnRJbmRleCA9
PT0gUEVSTUFORU5UX1BPT0xfU0laRSkgeyAvLyBFbm91Z2gKICAgICAgICAgICAgcHJvZ3Jlc3Mu
dmFsdWUgPSAiRG9uZSI7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdmFy
IGxpc3QgPSBbXTsKICAgICAgICB2YXIgcHJldiA9IHsgczogJycgfTsKICAgICAgICBmb3IgKHZh
ciBqID0gMDsgaiA8IExJU1RfU0laRTsgKytqKSB7CiAgICAgICAgICAgIGxpc3Rbal0gPSB7IHBy
ZXY6IHByZXYsIHM6IHByZXYucyArICdQJyArIHBlcm1hbmVudEluZGV4ICsgJyAnICsgaiB9Owog
ICAgICAgICAgICBwcmV2ID0gbGlzdFtqXTsKICAgICAgICAgICAgKytwZXJtYW5lbnRDdXJyZW50
Q291bnQ7CiAgICAgICAgfQogICAgICAgIHBlcm1hbmVudFBvb2xbcGVybWFuZW50SW5kZXhdID0g
bGlzdDsKICAgIH0KICAgIGRpZmYgPSBEYXRlLm5vdygpIC0gbGFzdFRpbWVzdGFtcDsKICAgIG91
dHB1dC52YWx1ZSArPSAiW0FdIExhc3QgcGFzcyB0b29rICIgKyBNYXRoLmZsb29yKGRpZmYpICsg
Im1zXG4iOwogICAgc2V0VGltZW91dChhbGxvY2F0ZVBlcm1hbmVudCwgMCk7Cn07Cgpkb2N1bWVu
dC5vbmtleXByZXNzID0gYWxsb2NhdGVQZXJtYW5lbnQ7Cgo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0
bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87197</attachid>
            <date>2011-03-28 13:57:13 -0700</date>
            <delta_ts>2011-04-07 19:59:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56823-20110328135712.patch</filename>
            <type>text/plain</type>
            <size>1862</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODIxNTEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTEtMDMtMjggIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSRUdSRVNTSU9OIFtyNzg3
OTQtcjc5MjQ5XSBBbGxvY2F0aW9uIG9mIG1lbW9yeSBpcyBzbG93IHdoZW4gbnVtYmVyIG9mIGFj
dGl2ZSBvYmplY3RzIGlzIGxhcmdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01NjgyMworICAgICAgICAKKyAgICAgICAgUGFydGlhbCBmaXggZm9yIG1v
c3Qgb2YgdGhlIHByb2JsZW0uIChUT1Qgc3RpbGwgc2hvd3MgYSByZWdyZXNzaW9uLCB0aG91Z2gu
KQorCisgICAgICAgICogcnVudGltZS9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6cmVw
b3J0RXh0cmFNZW1vcnlDb3N0U2xvd0Nhc2UpOiBVc2UgaGlnaFdhdGVyTWFyaygpLCBpbnN0ZWFk
IG9mCisgICAgICAgIGNhcGFjaXR5KCksIHNpbmNlIGNhcGFjaXR5KCkgaXMgTyhuKSByZWxhdGl2
ZSB0byB0aGUgc2l6ZSBvZiB0aGUgaGVhcC4KKworICAgICAgICBJbiBsaW1pdGVkIGNpcmN1bXN0
YW5jZXMsIGNhcGFjaXR5KCkgaXMgYWxzbyB3b3JzZSB0aGFuIGhpZ2hXYXRlck1hcmsoKQorICAg
ICAgICBmb3IgbWVhc3VyaW5nIGV4dHJhIGNvc3QgcmVsYXRpdmUgdG8gaGVhcCBzaXplLCBzaW5j
ZSBjYXBhY2l0eSgpIG9ubHkKKyAgICAgICAgbWVhc3VyZXMgdGhlICpjdXJyZW50KiBjYXBhY2l0
eSBvZiB0aGUgaGVhcCwgYnV0IHRoZSBoZWFwIHdpbGwgZ3JvdyBpZgorICAgICAgICBuZWNlc3Nh
cnkgdG8gYXR0YWluIGhpZ2hXYXRlck1hcmsoKS4KKwogMjAxMS0wMy0yOCAgT2xpdmVyIEh1bnQg
IDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjgyMTMwKTogSXQgbWFk
ZSBhbGwgdGVzdHMgY3Jhc2ggKFJlcXVlc3RlZCBieSBPc3N5IG9uICN3ZWJraXQpLgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5jcHAJKHJldmlzaW9uIDgxOTkzKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEwMSw3ICsxMDEsNyBAQCB2b2lkIEhlYXA6OnJlcG9ydEV4dHJhTWVtb3J5Q29zdFNsb3dDYXNl
CiAgICAgLy8gaWYgYSBsYXJnZSB2YWx1ZSBzdXJ2aXZlcyBvbmUgZ2FyYmFnZSBjb2xsZWN0aW9u
LCB0aGVyZSBpcyBub3QgbXVjaCBwb2ludCB0bwogICAgIC8vIGNvbGxlY3RpbmcgbW9yZSBmcmVx
dWVudGx5IGFzIGxvbmcgYXMgaXQgc3RheXMgYWxpdmUuCiAKLSAgICBpZiAobV9leHRyYUNvc3Qg
PiBtYXhFeHRyYUNvc3QgJiYgbV9leHRyYUNvc3QgPiBtX21hcmtlZFNwYWNlLmNhcGFjaXR5KCkg
LyAyKQorICAgIGlmIChtX2V4dHJhQ29zdCA+IG1heEV4dHJhQ29zdCAmJiBtX2V4dHJhQ29zdCA+
IG1fbWFya2VkU3BhY2UuaGlnaFdhdGVyTWFyaygpIC8gMikKICAgICAgICAgY29sbGVjdEFsbEdh
cmJhZ2UoKTsKICAgICBtX2V4dHJhQ29zdCArPSBjb3N0OwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>