<?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>85936</bug_id>
          
          <creation_ts>2012-05-08 17:53:14 -0700</creation_ts>
          <short_desc>Heap should not continually allocate new pages in steady state</short_desc>
          <delta_ts>2012-05-08 19:44:18 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>619023</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-05-08 17:53:14 -0700</bug_when>
    <thetext>Currently, in steady state (i.e. a constant amount of live GC memory with a constant rate of allocation) assuming we&apos;ve just finished a collection with X live blocks in CopiedSpace, we increase our working set by X blocks in CopiedSpace with each collection we perform. This is due to the fact that we allocate until we run out of free blocks to use in the Heap before we consider whether we should run a collection. 

In the longer term, this issue will be mostly resolved by implementing quick release for the CopiedSpace. In the shorter term, we should change our policy to check whether we should allocate before trying to use a free block from the Heap. We can change our policy to something more appropriate once we have implemented quick release.

This change should also have the convenient side effect of reducing the variance in GC-heavy tests (e.g. v8-splay) due to fact that we are doing less VM allocation during copying collection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619046</commentid>
    <comment_count>1</comment_count>
      <attachid>140837</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-05-08 18:20:13 -0700</bug_when>
    <thetext>Created attachment 140837
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619047</commentid>
    <comment_count>2</comment_count>
      <attachid>140837</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-05-08 18:21:01 -0700</bug_when>
    <thetext>Comment on attachment 140837
Patch

This patch was already r+ed by Geoff Garen (ggaren).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619122</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-05-08 19:44:18 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/116484</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140837</attachid>
            <date>2012-05-08 18:20:13 -0700</date>
            <delta_ts>2012-05-08 18:21:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85936-20120508182012.patch</filename>
            <type>text/plain</type>
            <size>5920</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTE2NDc0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBA
CisyMDEyLTA1LTA4ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgSGVhcCBzaG91bGQgbm90IGNvbnRpbnVhbGx5IGFsbG9jYXRlIG5ldyBwYWdlcyBp
biBzdGVhZHkgc3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg1OTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ3VycmVudGx5LCBpbiBzdGVhZHkgc3RhdGUgKGkuZS4gYSBjb25zdGFudCBhbW91bnQg
b2YgbGl2ZSBHQyAKKyAgICAgICAgbWVtb3J5IHdpdGggYSBjb25zdGFudCByYXRlIG9mIGFsbG9j
YXRpb24pIGFzc3VtaW5nIHdlJ3ZlIGp1c3QgCisgICAgICAgIGZpbmlzaGVkIGEgY29sbGVjdGlv
biB3aXRoIFggbGl2ZSBibG9ja3MgaW4gQ29waWVkU3BhY2UsIHdlIAorICAgICAgICBpbmNyZWFz
ZSBvdXIgd29ya2luZyBzZXQgYnkgWCBibG9ja3MgaW4gQ29waWVkU3BhY2Ugd2l0aCBlYWNoIAor
ICAgICAgICBjb2xsZWN0aW9uIHdlIHBlcmZvcm0uIFRoaXMgaXMgZHVlIHRvIHRoZSBmYWN0IHRo
YXQgd2UgYWxsb2NhdGUgCisgICAgICAgIHVudGlsIHdlIHJ1biBvdXQgb2YgZnJlZSBibG9ja3Mg
dG8gdXNlIGluIHRoZSBIZWFwIGJlZm9yZSB3ZSAKKyAgICAgICAgY29uc2lkZXIgd2hldGhlciB3
ZSBzaG91bGQgcnVuIGEgY29sbGVjdGlvbi4gCisKKyAgICAgICAgSW4gdGhlIGxvbmdlciB0ZXJt
LCB0aGlzIGlzc3VlIHdpbGwgYmUgbW9zdGx5IHJlc29sdmVkIGJ5IAorICAgICAgICBpbXBsZW1l
bnRpbmcgcXVpY2sgcmVsZWFzZSBmb3IgdGhlIENvcGllZFNwYWNlLiBJbiB0aGUgc2hvcnRlciAK
KyAgICAgICAgdGVybSwgd2Ugc2hvdWxkIGNoYW5nZSBvdXIgcG9saWN5IHRvIGNoZWNrIHdoZXRo
ZXIgd2Ugc2hvdWxkIAorICAgICAgICBhbGxvY2F0ZSBiZWZvcmUgdHJ5aW5nIHRvIHVzZSBhIGZy
ZWUgYmxvY2sgZnJvbSB0aGUgSGVhcC4gV2UgCisgICAgICAgIGNhbiBjaGFuZ2Ugb3VyIHBvbGlj
eSB0byBzb21ldGhpbmcgbW9yZSBhcHByb3ByaWF0ZSBvbmNlIHdlIAorICAgICAgICBoYXZlIGlt
cGxlbWVudGVkIHF1aWNrIHJlbGVhc2UuCisKKyAgICAgICAgVGhpcyBjaGFuZ2Ugc2hvdWxkIGFs
c28gaGF2ZSB0aGUgY29udmVuaWVudCBzaWRlIGVmZmVjdCBvZiAKKyAgICAgICAgcmVkdWNpbmcg
dGhlIHZhcmlhbmNlIGluIEdDLWhlYXZ5IHRlc3RzIChlLmcuIHY4LXNwbGF5KSBkdWUgCisgICAg
ICAgIHRvIGZhY3QgdGhhdCB3ZSBhcmUgZG9pbmcgbGVzcyBWTSBhbGxvY2F0aW9uIGR1cmluZyBj
b3B5aW5nIAorICAgICAgICBjb2xsZWN0aW9uLiBPdmVyYWxsLCB0aGlzIHBhdGNoIGlzIHBlcmZv
cm1hbmNlIG5ldXRyYWwgYWNyb3NzIAorICAgICAgICB0aGUgYmVuY2htYXJrcyB3ZSB0cmFjay4K
KworICAgICAgICAqIGhlYXAvQ29waWVkU3BhY2UuY3BwOiAKKyAgICAgICAgKEpTQzo6Q29waWVk
U3BhY2U6OmdldEZyZXNoQmxvY2spOiBTaHVmZmxlIHRoZSByZXF1ZXN0IGZyb20gdGhlIEJsb2Nr
QWxsb2NhdG9yCisgICAgICAgIGFyb3VuZCBzbyB0aGF0IHdlIG9ubHkgZG8gaXQgaWYgdGhlIGJs
b2NrIHJlcXVlc3QgbXVzdCBzdWNjZWVkIAorICAgICAgICBpLmUuIGFmdGVyIHdlJ3ZlIGFscmVh
ZHkgY2hlY2tlZCB3aGV0aGVyIHdlIHNob3VsZCBkbyBhIGNvbGxlY3Rpb24uCisgICAgICAgICog
aGVhcC9NYXJrZWRBbGxvY2F0b3IuY3BwOgorICAgICAgICAoSlNDOjpNYXJrZWRBbGxvY2F0b3I6
OmFsbG9jYXRlU2xvd0Nhc2UpOiBEaXR0by4KKyAgICAgICAgKEpTQzo6TWFya2VkQWxsb2NhdG9y
OjphbGxvY2F0ZUJsb2NrKTogV2Ugbm8gbG9uZ2VyIGhhdmUgYSBmYWlsdXJlIG1vZGUgaW4gdGhp
cyAKKyAgICAgICAgZnVuY3Rpb24gYmVjYXVzZSBieSB0aGUgdGltZSB3ZSd2ZSBjYWxsZWQgaXQs
IHdlJ3ZlIGFscmVhZHkgY2hlY2tlZCB3aGV0aGVyIHdlIAorICAgICAgICBzaG91bGQgcnVuIGEg
Y29sbGVjdGlvbiBzbyB0aGVyZSdzIG5vIHBvaW50IGluIHJldHVybmluZyBudWxsLgorICAgICAg
ICAqIGhlYXAvTWFya2VkQWxsb2NhdG9yLmg6IFJlbW92aW5nIG9sZCBhcmd1bWVudHMgZnJvbSBm
dW5jdGlvbiBkZWNsYXJhdGlvbi4KKyAgICAgICAgKE1hcmtlZEFsbG9jYXRvcik6CisKIDIwMTIt
MDUtMDggIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAg
ICAgIFNJR0ZQRSBvbiBkaXZpZGUgaW4gY2xhc3NpYyBpbnRlcnByZXRlcgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkU3BhY2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcAkocmV2aXNpb24gMTE2NDc0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkU3BhY2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yMTIsMTAgKzIxMiwxMCBAQCB2b2lkIENvcGllZFNwYWNlOjpkb25lQ29weWluZygp
CiBDaGVja2VkQm9vbGVhbiBDb3BpZWRTcGFjZTo6Z2V0RnJlc2hCbG9jayhBbGxvY2F0aW9uRWZm
b3J0IGFsbG9jYXRpb25FZmZvcnQsIENvcGllZEJsb2NrKiogb3V0QmxvY2spCiB7CiAgICAgQ29w
aWVkQmxvY2sqIGJsb2NrID0gMDsKLSAgICBpZiAoSGVhcEJsb2NrKiBoZWFwQmxvY2sgPSBtX2hl
YXAtPmJsb2NrQWxsb2NhdG9yKCkuYWxsb2NhdGUoKSkKLSAgICAgICAgYmxvY2sgPSBuZXcgKE5v
dE51bGwsIGhlYXBCbG9jaykgQ29waWVkQmxvY2soaGVhcEJsb2NrLT5tX2FsbG9jYXRpb24pOwot
ICAgIGVsc2UgaWYgKGFsbG9jYXRpb25FZmZvcnQgPT0gQWxsb2NhdGlvbk11c3RTdWNjZWVkKSB7
Ci0gICAgICAgIGlmICghYWxsb2NhdGVOZXdCbG9jaygmYmxvY2spKSB7CisgICAgaWYgKGFsbG9j
YXRpb25FZmZvcnQgPT0gQWxsb2NhdGlvbk11c3RTdWNjZWVkKSB7CisgICAgICAgIGlmIChIZWFw
QmxvY2sqIGhlYXBCbG9jayA9IG1faGVhcC0+YmxvY2tBbGxvY2F0b3IoKS5hbGxvY2F0ZSgpKQor
ICAgICAgICAgICAgYmxvY2sgPSBuZXcgKE5vdE51bGwsIGhlYXBCbG9jaykgQ29waWVkQmxvY2so
aGVhcEJsb2NrLT5tX2FsbG9jYXRpb24pOworICAgICAgICBlbHNlIGlmICghYWxsb2NhdGVOZXdC
bG9jaygmYmxvY2spKSB7CiAgICAgICAgICAgICAqb3V0QmxvY2sgPSAwOwogICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRBbGxvY2F0b3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEFsbG9jYXRvci5jcHAJKHJldmlz
aW9uIDExNjQ3NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEFsbG9jYXRv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY4LDQ0ICs2OCwzMCBAQCB2b2lkKiBNYXJrZWRBbGxv
Y2F0b3I6OmFsbG9jYXRlU2xvd0Nhc2UoCiAgICAgaWYgKExJS0VMWShyZXN1bHQgIT0gMCkpCiAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgCi0gICAgQWxsb2NhdGlvbkVmZm9ydCBhbGxvY2F0
aW9uRWZmb3J0OwotICAgIAotICAgIGlmIChtX2hlYXAtPnNob3VsZENvbGxlY3QoKSkKLSAgICAg
ICAgYWxsb2NhdGlvbkVmZm9ydCA9IEFsbG9jYXRpb25DYW5GYWlsOwotICAgIGVsc2UKLSAgICAg
ICAgYWxsb2NhdGlvbkVmZm9ydCA9IEFsbG9jYXRpb25NdXN0U3VjY2VlZDsKLSAgICAKLSAgICBN
YXJrZWRCbG9jayogYmxvY2sgPSBhbGxvY2F0ZUJsb2NrKGFsbG9jYXRpb25FZmZvcnQpOwotICAg
IGlmIChibG9jaykgewotICAgICAgICBhZGRCbG9jayhibG9jayk7Ci0gICAgICAgIHZvaWQqIHJl
c3VsdCA9IHRyeUFsbG9jYXRlKCk7Ci0gICAgICAgIEFTU0VSVChyZXN1bHQpOwotICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgIGlmIChtX2hlYXAtPnNob3VsZENvbGxlY3QoKSkgeworICAgICAg
ICBtX2hlYXAtPmNvbGxlY3QoSGVhcDo6RG9Ob3RTd2VlcCk7CisKKyAgICAgICAgcmVzdWx0ID0g
dHJ5QWxsb2NhdGUoKTsKKyAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CiAgICAgfQotICAgIAotICAgIG1faGVhcC0+Y29sbGVjdChIZWFwOjpEb05vdFN3ZWVw
KTsKLSAgICAKLSAgICByZXN1bHQgPSB0cnlBbGxvY2F0ZSgpOwotICAgIAotICAgIGlmIChyZXN1
bHQpCi0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgCisKICAgICBBU1NFUlQoIW1faGVhcC0+
c2hvdWxkQ29sbGVjdCgpKTsKICAgICAKLSAgICBhZGRCbG9jayhhbGxvY2F0ZUJsb2NrKEFsbG9j
YXRpb25NdXN0U3VjY2VlZCkpOwotICAgIAorICAgIE1hcmtlZEJsb2NrKiBibG9jayA9IGFsbG9j
YXRlQmxvY2soKTsKKyAgICBBU1NFUlQoYmxvY2spOworICAgIGFkZEJsb2NrKGJsb2NrKTsKKyAg
ICAgICAgCiAgICAgcmVzdWx0ID0gdHJ5QWxsb2NhdGUoKTsKICAgICBBU1NFUlQocmVzdWx0KTsK
ICAgICByZXR1cm4gcmVzdWx0OwogfQogICAgIAotTWFya2VkQmxvY2sqIE1hcmtlZEFsbG9jYXRv
cjo6YWxsb2NhdGVCbG9jayhBbGxvY2F0aW9uRWZmb3J0IGFsbG9jYXRpb25FZmZvcnQpCitNYXJr
ZWRCbG9jayogTWFya2VkQWxsb2NhdG9yOjphbGxvY2F0ZUJsb2NrKCkKIHsKICAgICBNYXJrZWRC
bG9jayogYmxvY2sgPSBzdGF0aWNfY2FzdDxNYXJrZWRCbG9jayo+KG1faGVhcC0+YmxvY2tBbGxv
Y2F0b3IoKS5hbGxvY2F0ZSgpKTsKICAgICBpZiAoYmxvY2spCiAgICAgICAgIGJsb2NrID0gTWFy
a2VkQmxvY2s6OnJlY3ljbGUoYmxvY2ssIG1faGVhcCwgbV9jZWxsU2l6ZSwgbV9jZWxsc05lZWRE
ZXN0cnVjdGlvbik7Ci0gICAgZWxzZSBpZiAoYWxsb2NhdGlvbkVmZm9ydCA9PSBBbGxvY2F0aW9u
Q2FuRmFpbCkKLSAgICAgICAgcmV0dXJuIDA7CiAgICAgZWxzZQogICAgICAgICBibG9jayA9IE1h
cmtlZEJsb2NrOjpjcmVhdGUobV9oZWFwLCBtX2NlbGxTaXplLCBtX2NlbGxzTmVlZERlc3RydWN0
aW9uKTsKICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEFsbG9j
YXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEFs
bG9jYXRvci5oCShyZXZpc2lvbiAxMTY0NzQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9NYXJrZWRBbGxvY2F0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQCBwcml2
YXRlOgogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQqIGFsbG9jYXRlU2xvd0Nhc2UoKTsKICAg
ICB2b2lkKiB0cnlBbGxvY2F0ZSgpOwogICAgIHZvaWQqIHRyeUFsbG9jYXRlSGVscGVyKCk7Ci0g
ICAgTWFya2VkQmxvY2sqIGFsbG9jYXRlQmxvY2soQWxsb2NhdGlvbkVmZm9ydCk7CisgICAgTWFy
a2VkQmxvY2sqIGFsbG9jYXRlQmxvY2soKTsKICAgICAKICAgICBNYXJrZWRCbG9jazo6RnJlZUxp
c3QgbV9mcmVlTGlzdDsKICAgICBNYXJrZWRCbG9jayogbV9jdXJyZW50QmxvY2s7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>