<?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>227957</bug_id>
          
          <creation_ts>2021-07-14 10:09:15 -0700</creation_ts>
          <short_desc>[BMalloc] Lazily allocate physical pages</short_desc>
          <delta_ts>2021-07-14 14:18:26 -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>bmalloc</component>
          <version>Other</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1776958</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2021-07-14 10:09:15 -0700</bug_when>
    <thetext>Currently we call madvise(p, vmSize, MADV_FREE_REUSE) when we want to commit physical pages to a range of reserved memory.  On Darwin systems, the kernel will do this for us as we touch the pages.  Therefore we can eliminate this call, reducing our memory footprint when pages within a range are not used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776959</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-14 10:09:49 -0700</bug_when>
    <thetext>&lt;rdar://problem/80583372&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776964</commentid>
    <comment_count>2</comment_count>
      <attachid>433509</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2021-07-14 10:21:59 -0700</bug_when>
    <thetext>Created attachment 433509
Patch

This patch provides a 3.5% (AS) to 4.6% (x86) reduction in memory in RAMification in my tests.

When testing JetStream2 and Speedometer2, it didn&apos;t regress on AS and is a 1.2% progression on both benchmarks for x86.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776967</commentid>
    <comment_count>3</comment_count>
      <attachid>433509</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-07-14 10:31:00 -0700</bug_when>
    <thetext>Comment on attachment 433509
Patch

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

r=me

&gt; Source/bmalloc/bmalloc/VMAllocate.h:-218
&gt; -    SYSCALL(madvise(p, vmSize, MADV_FREE_REUSE));

nit: Can you put the comment blurb from your ChangeLog in here about DARWIN not needing this madvise?  Otherwise, I can see someone not-in-the-know naively re-adding this back in the future with no visible immediate fallout to provide feedback that it should not be done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776968</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2021-07-14 10:31:51 -0700</bug_when>
    <thetext>(In reply to Mark Lam from comment #3)
&gt; Comment on attachment 433509 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=433509&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/bmalloc/bmalloc/VMAllocate.h:-218
&gt; &gt; -    SYSCALL(madvise(p, vmSize, MADV_FREE_REUSE));
&gt; 
&gt; nit: Can you put the comment blurb from your ChangeLog in here about DARWIN
&gt; not needing this madvise?  Otherwise, I can see someone not-in-the-know
&gt; naively re-adding this back in the future with no visible immediate fallout
&gt; to provide feedback that it should not be done.

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776989</commentid>
    <comment_count>5</comment_count>
      <attachid>433509</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-07-14 11:49:08 -0700</bug_when>
    <thetext>Comment on attachment 433509
Patch

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

&gt; Source/bmalloc/bmalloc/VMAllocate.h:220
&gt; +    vmValidatePhysical(p, vmSize);

Seems unnecessary to lose this assertion on Darwin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777028</commentid>
    <comment_count>6</comment_count>
      <attachid>433509</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2021-07-14 13:55:56 -0700</bug_when>
    <thetext>Comment on attachment 433509
Patch

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

&gt;&gt; Source/bmalloc/bmalloc/VMAllocate.h:220
&gt;&gt; +    vmValidatePhysical(p, vmSize);
&gt; 
&gt; Seems unnecessary to lose this assertion on Darwin.

I&apos;ll add it back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1777038</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2021-07-14 14:18:26 -0700</bug_when>
    <thetext>Committed r279922 (239669@main): &lt;https://commits.webkit.org/239669@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433509</attachid>
            <date>2021-07-14 10:21:59 -0700</date>
            <delta_ts>2021-07-14 13:55:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>227957.patch</filename>
            <type>text/plain</type>
            <size>2354</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3OTkwOSkKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDIxLTA3LTE0ICBNaWNoYWVs
IFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAgICAgIFtCTWFsbG9jXSBMYXppbHkg
YWxsb2NhdGUgcGh5c2ljYWwgcGFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNzk1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEZvciBEYXJ3aW4gcGxhdGZvcm0gd2UgZG9uJ3QgbmVlZCB0byBjYWxs
IG1hZHZpc2UoLi4uLCBNQURWX0ZSRUVfUkVVU0UpIHRvIGNvbW1pdCBwaHlzaWNhbAorICAgICAg
ICBtZW1vcnkgdG8gYmFjayBhbiByYW5nZSBvZiBhbGxvY2F0ZWQgdmlydHVhbCBtZW1vcnkuICBJ
bnN0ZWFkIHRoZSBrZXJuZWwgd2lsbCBjb21taXQgcGFnZXMKKyAgICAgICAgYXMgdGhleSBhcmUg
dG91Y2hlZC4gIFRoaXMgY2FuIHJlZHVjZSB0aGUgZm9vdHByaW50IG9mIGEgcHJvY2VzcyB3aGVu
IHRoZXJlIGlzIHNwYXJzZSBhY2Nlc3MKKyAgICAgICAgb2YgYWxsb2NhdGVkIG1lbW9yeS4KKwor
ICAgICAgICBBbHNvIGZpeGVkIGEgbWlub3IgYnVnIHdoZXJlIHdlIGFsbG9jYXRlIG1lbW9yeSwg
YnV0IGRvbid0IHVwZGF0ZSB0aGUgYW1vdW50IG9mIHBoeXNpY2FsIG1lbW9yeQorICAgICAgICBh
c3NvY2lhdGVkIHdpdGggaXQuCisKKyAgICAgICAgKiBibWFsbG9jL0hlYXAuY3BwOgorICAgICAg
ICAoYm1hbGxvYzo6SGVhcDo6dHJ5QWxsb2NhdGVMYXJnZUNodW5rKToKKyAgICAgICAgKiBibWFs
bG9jL1ZNQWxsb2NhdGUuaDoKKyAgICAgICAgKGJtYWxsb2M6OnZtQWxsb2NhdGVQaHlzaWNhbFBh
Z2VzKToKKwogMjAyMS0wNy0xMiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPiBhbmQg
WXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIE5ldyBtYWxsb2Mg
YWxnb3JpdGhtCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0hlYXAuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5jcHAJKHJldmlzaW9uIDI3OTkwOSkK
KysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4
Niw3ICs1ODYsNyBAQCBMYXJnZVJhbmdlIEhlYXA6OnRyeUFsbG9jYXRlTGFyZ2VDaHVuayhzCiAg
ICAgUGVyUHJvY2Vzczxab25lPjo6Z2V0KCktPmFkZFJhbmdlKFJhbmdlKG1lbW9yeSwgc2l6ZSkp
OwogI2VuZGlmCiAKLSAgICByZXR1cm4gTGFyZ2VSYW5nZShtZW1vcnksIHNpemUsIDAsIDAsIG1l
bW9yeSk7CisgICAgcmV0dXJuIExhcmdlUmFuZ2UobWVtb3J5LCBzaXplLCBzaXplLCBzaXplLCBz
dGF0aWNfY2FzdDxjaGFyKj4obWVtb3J5KSArIHNpemUpOwogfQogCiBzaXplX3QgSGVhcDo6bGFy
Z2VTaXplKFVuaXF1ZUxvY2tIb2xkZXImLCB2b2lkKiBvYmplY3QpCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9ibWFsbG9jL1ZNQWxsb2NhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9i
bWFsbG9jL1ZNQWxsb2NhdGUuaAkocmV2aXNpb24gMjc5OTA5KQorKysgU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9WTUFsbG9jYXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxMywxMCArMjEzLDExIEBA
IGlubGluZSB2b2lkIHZtRGVhbGxvY2F0ZVBoeXNpY2FsUGFnZXModm8KIAogaW5saW5lIHZvaWQg
dm1BbGxvY2F0ZVBoeXNpY2FsUGFnZXModm9pZCogcCwgc2l6ZV90IHZtU2l6ZSkKIHsKLSAgICB2
bVZhbGlkYXRlUGh5c2ljYWwocCwgdm1TaXplKTsKICNpZiBCT1MoREFSV0lOKQotICAgIFNZU0NB
TEwobWFkdmlzZShwLCB2bVNpemUsIE1BRFZfRlJFRV9SRVVTRSkpOworICAgIEJVTlVTRURfUEFS
QU0ocCk7CisgICAgQlVOVVNFRF9QQVJBTSh2bVNpemUpOwogI2Vsc2UKKyAgICB2bVZhbGlkYXRl
UGh5c2ljYWwocCwgdm1TaXplKTsKICAgICBTWVNDQUxMKG1hZHZpc2UocCwgdm1TaXplLCBNQURW
X05PUk1BTCkpOwogI2lmIEJPUyhMSU5VWCkKICAgICBTWVNDQUxMKG1hZHZpc2UocCwgdm1TaXpl
LCBNQURWX0RPRFVNUCkpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>