<?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>164589</bug_id>
          
          <creation_ts>2016-11-10 06:41:24 -0800</creation_ts>
          <short_desc>[Linux] Memory values shown by memory pressure handler logger are not useful</short_desc>
          <delta_ts>2016-11-10 07:05: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>Platform</component>
          <version>WebKit Local 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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1249773</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-11-10 06:41:24 -0800</bug_when>
    <thetext>We are currently using the VmSize field from /proc/self/status which is the virtual memory size of the process and doesn&apos;t normally change even when the memory pressure handler manages to release memory. So, most of the time we see that there&apos;s no changes in memory usage in the logs:

Memory pressure relief: Empty the PageCache: =dirty (at 8351166464 bytes)
Memory pressure relief: Prune MemoryCache live resources: =dirty (at 8351166464 bytes)
Memory pressure relief: Drain CSSValuePool: =dirty (at 8351166464 bytes)
Memory pressure relief: Discard StyleResolvers: =dirty (at 8351166464 bytes)
Memory pressure relief: Discard all JIT-compiled code: =dirty (at 8351166464 bytes)
Memory pressure relief: Dropping buffered data from paused media elements: =dirty (at 8351166464 bytes)
Memory pressure relief: Purge inactive FontData: =dirty (at 8351166464 bytes)
Memory pressure relief: Clear WidthCaches: =dirty (at 8351166464 bytes)
Memory pressure relief: Discard Selector Query Cache: =dirty (at 8351166464 bytes)
Memory pressure relief: Prune MemoryCache dead resources: =dirty (at 8351166464 bytes)
Memory pressure relief: Prune presentation attribute cache: =dirty (at 8351166464 bytes)
Memory pressure relief: Run malloc_trim: =dirty (at 8351166464 bytes)
Memory pressure relief: Release free FastMalloc memory: =dirty (at 8351166464 bytes)

We should use the actual memory used by the process, memory that the process can release and then it&apos;s relevant for the memory pressure handler. Using other fields from /proc/self/status we could do something like VmRSS - (RssFile + RssShme), but there&apos;s also /proc/self/statm that provides the same information in a single. The main different is that statm provides both resident and shared memory directly, but in number of pages, so we need to multiply by the size of the page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249776</commentid>
    <comment_count>1</comment_count>
      <attachid>294368</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-11-10 06:47:56 -0800</bug_when>
    <thetext>Created attachment 294368
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249782</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-11-10 07:05:22 -0800</bug_when>
    <thetext>Committed r208536: &lt;http://trac.webkit.org/changeset/208536&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294368</attachid>
            <date>2016-11-10 06:47:56 -0800</date>
            <delta_ts>2016-11-10 07:03:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-memory-pressure-logger.diff</filename>
            <type>text/plain</type>
            <size>10256</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2NDQ0MDYwLi41NzBiZTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEg
QEAKKzIwMTYtMTEtMTAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtMaW51eF0gTWVtb3J5IHZhbHVlcyBzaG93biBieSBtZW1vcnkgcHJlc3N1
cmUgaGFuZGxlciBsb2dnZXIgYXJlIG5vdCB1c2VmdWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDU4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIGFyZSBjdXJyZW50bHkgdXNpbmcgdGhlIFZtU2l6
ZSBmaWVsZCBmcm9tIC9wcm9jL3NlbGYvc3RhdHVzIHdoaWNoIGlzIHRoZSB2aXJ0dWFsIG1lbW9y
eSBzaXplIG9mIHRoZSBwcm9jZXNzCisgICAgICAgIGFuZCBkb2Vzbid0IG5vcm1hbGx5IGNoYW5n
ZSBldmVuIHdoZW4gdGhlIG1lbW9yeSBwcmVzc3VyZSBoYW5kbGVyIG1hbmFnZXMgdG8gcmVsZWFz
ZSBtZW1vcnkuIFNvLCBtb3N0IG9mIHRoZQorICAgICAgICB0aW1lIHdlIHNlZSB0aGF0IHRoZXJl
J3Mgbm8gY2hhbmdlcyBpbiBtZW1vcnkgdXNhZ2UgaW4gdGhlIGxvZ3MuCisgICAgICAgIFdlIHNo
b3VsZCB1c2UgdGhlIGFjdHVhbCBtZW1vcnkgdXNlZCBieSB0aGUgcHJvY2VzcywgbWVtb3J5IHRo
YXQgdGhlIHByb2Nlc3MgY2FuIHJlbGVhc2UgYW5kIHRoZW4gaXQncyByZWxldmFudAorICAgICAg
ICBmb3IgdGhlIG1lbW9yeSBwcmVzc3VyZSBoYW5kbGVyLiBVc2luZyBvdGhlciBmaWVsZHMgZnJv
bSAvcHJvYy9zZWxmL3N0YXR1cyB3ZSBjb3VsZCBkbyBzb21ldGhpbmcgbGlrZSBWbVJTUyAtCisg
ICAgICAgIChSc3NGaWxlICsgUnNzU2htZSksIGJ1dCB0aGVyZSdzIGFsc28gL3Byb2Mvc2VsZi9z
dGF0bSB0aGF0IHByb3ZpZGVzIHRoZSBzYW1lIGluZm9ybWF0aW9uIGluIGEgc2luZ2xlLiBUaGUg
bWFpbgorICAgICAgICBkaWZmZXJlbnQgaXMgdGhhdCBzdGF0bSBwcm92aWRlcyBib3RoIHJlc2lk
ZW50IGFuZCBzaGFyZWQgbWVtb3J5IGRpcmVjdGx5LCBidXQgaW4gbnVtYmVyIG9mIHBhZ2VzLCBz
byB3ZSBuZWVkIHRvCisgICAgICAgIG11bHRpcGx5IGJ5IHRoZSBzaXplIG9mIHRoZSBwYWdlLgor
ICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBtZXRob2QgdG8gcGFyc2UgL3Byb2Mvc2VsZi9zdGF0
bSBpbiBpdHMgZ2l2ZW4gZmlsZSwgYmVjYXVzZSBJIHBsYW4gdG8gdXNlIHRoaXMgZm9yIHRoZSBs
aW51eAorICAgICAgICBtZW1vcnkgc2FtcGxlciB0aGF0IGlzIGluY29ycmVjdGx5IHBhcnNpbmcg
L3Byb2Mvc2VsZi9zdGF0bS4KKworICAgICAgICAqIHBsYXRmb3JtL0xpbnV4LmNtYWtlOiBBZGQg
bmV3IGZpbGVzIHRvIGNvbXBpbGF0aW9uLgorICAgICAgICAqIHBsYXRmb3JtL2xpbnV4L0N1cnJl
bnRQcm9jZXNzTWVtb3J5U3RhdHVzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpzeXN0
ZW1QYWdlU2l6ZSk6IFJldHVybiB0aGUgcGFnZSBzaXplLgorICAgICAgICAoV2ViQ29yZTo6Y3Vy
cmVudFByb2Nlc3NNZW1vcnlTdGF0dXMpOiBQYXJzZSAvcHJvYy9zZWxmL3N0YXRtIGFuZCBmaWxs
IHRoZSBnaXZlbiBQcm9jZXNzTWVtb3J5U3RhdHVzLgorICAgICAgICAqIHBsYXRmb3JtL2xpbnV4
L0N1cnJlbnRQcm9jZXNzTWVtb3J5U3RhdHVzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2xpbnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cHJvY2Vzc01lbW9yeVVzYWdlKCk6IEhlbHBlciBmdW5j
dGlvbiB0byByZXR1cm4gdGhlIG1lbW9yeSB1c2VkIGJ5IHRoZSBwcm9jZXNzCisgICAgICAgIGlu
IGJ5dGVzLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpSZWxpZWZM
b2dnZXI6OnBsYXRmb3JtTWVtb3J5VXNhZ2UpOiBVc2UgcHJvY2Vzc01lbW9yeVVzYWdlKCkuCisK
IDIwMTYtMTAtMTQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgog
CiAgICAgICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlciBzaG91bGRuJ3Qga25vdyBob3cgdG8gcmVs
ZWFzZSBXZWJDb3JlIG1lbW9yeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TGludXguY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MaW51eC5jbWFrZQppbmRleCBm
NTFiMjA4Li41MjBkZGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MaW51
eC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MaW51eC5jbWFrZQpAQCAtNSw1
ICs1LDcgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCiAKIGxpc3Qo
QVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dhbWVwYWQvbGludXgvR2FtZXBh
ZERldmljZUxpbnV4LmNwcAorCisgICAgcGxhdGZvcm0vbGludXgvQ3VycmVudFByb2Nlc3NNZW1v
cnlTdGF0dXMuY3BwCiAgICAgcGxhdGZvcm0vbGludXgvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTGlu
dXguY3BwCiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saW51eC9DdXJy
ZW50UHJvY2Vzc01lbW9yeVN0YXR1cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saW51
eC9DdXJyZW50UHJvY2Vzc01lbW9yeVN0YXR1cy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMzYxMzlhYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2xpbnV4L0N1cnJlbnRQcm9jZXNzTWVtb3J5U3RhdHVzLmNwcApAQCAtMCwwICsxLDc3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJDdXJyZW50UHJvY2Vzc01lbW9yeVN0YXR1cy5oIgorCisjaWYgT1MoTElOVVgpCisKKyNp
bmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBpbmxpbmUgc2l6ZV90IHN5c3RlbVBh
Z2VTaXplKCkKK3sKKyAgICBzdGF0aWMgc2l6ZV90IHBhZ2VTaXplID0gMDsKKyAgICBpZiAoIXBh
Z2VTaXplKQorICAgICAgICBwYWdlU2l6ZSA9IHN5c2NvbmYoX1NDX1BBR0VfU0laRSk7CisgICAg
cmV0dXJuIHBhZ2VTaXplOworfQorCit2b2lkIGN1cnJlbnRQcm9jZXNzTWVtb3J5U3RhdHVzKFBy
b2Nlc3NNZW1vcnlTdGF0dXMmIG1lbW9yeVN0YXR1cykKK3sKKyAgICBGSUxFKiBmaWxlID0gZm9w
ZW4oIi9wcm9jL3NlbGYvc3RhdG0iLCAiciIpOworICAgIGlmICghZmlsZSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgY2hhciBidWZmZXJbMTI4XTsKKyAgICBjaGFyKiBsaW5lID0gZmdldHMoYnVm
ZmVyLCAxMjgsIGZpbGUpOworICAgIGZjbG9zZShmaWxlKTsKKyAgICBpZiAoIWxpbmUpCisgICAg
ICAgIHJldHVybjsKKworICAgIHNpemVfdCBwYWdlU2l6ZSA9IHN5c3RlbVBhZ2VTaXplKCk7Cisg
ICAgY2hhciogZW5kID0gbnVsbHB0cjsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgaW50VmFsdWUg
PSBzdHJ0b3VsbChsaW5lLCAmZW5kLCAxMCk7CisgICAgbWVtb3J5U3RhdHVzLnNpemUgPSBpbnRW
YWx1ZSAqIHBhZ2VTaXplOworICAgIGludFZhbHVlID0gc3RydG91bGwoZW5kLCAmZW5kLCAxMCk7
CisgICAgbWVtb3J5U3RhdHVzLnJlc2lkZW50ID0gaW50VmFsdWUgKiBwYWdlU2l6ZTsKKyAgICBp
bnRWYWx1ZSA9IHN0cnRvdWxsKGVuZCwgJmVuZCwgMTApOworICAgIG1lbW9yeVN0YXR1cy5zaGFy
ZWQgPSBpbnRWYWx1ZSAqIHBhZ2VTaXplOworICAgIGludFZhbHVlID0gc3RydG91bGwoZW5kLCAm
ZW5kLCAxMCk7CisgICAgbWVtb3J5U3RhdHVzLnRleHQgPSBpbnRWYWx1ZSAqIHBhZ2VTaXplOwor
ICAgIGludFZhbHVlID0gc3RydG91bGwoZW5kLCAmZW5kLCAxMCk7CisgICAgbWVtb3J5U3RhdHVz
LmxpYiA9IGludFZhbHVlICogcGFnZVNpemU7CisgICAgaW50VmFsdWUgPSBzdHJ0b3VsbChlbmQs
ICZlbmQsIDEwKTsKKyAgICBtZW1vcnlTdGF0dXMuZGF0YSA9IGludFZhbHVlICogcGFnZVNpemU7
CisgICAgaW50VmFsdWUgPSBzdHJ0b3VsbChlbmQsICZlbmQsIDEwKTsKKyAgICBtZW1vcnlTdGF0
dXMuZHQgPSBpbnRWYWx1ZSAqIHBhZ2VTaXplOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBPUyhMSU5VWCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2xpbnV4L0N1cnJlbnRQcm9jZXNzTWVtb3J5U3RhdHVzLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9saW51eC9DdXJyZW50UHJvY2Vzc01lbW9yeVN0YXR1cy5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2ZDgyMmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9saW51eC9DdXJyZW50UHJvY2Vzc01lbW9yeVN0YXR1cy5oCkBAIC0w
LDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBPUyhMSU5VWCkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgUHJvY2Vzc01lbW9y
eVN0YXR1cyB7CisgICAgc2l6ZV90IHNpemUgeyAwIH07CisgICAgc2l6ZV90IHJlc2lkZW50IHsg
MCB9OworICAgIHNpemVfdCBzaGFyZWQgeyAwIH07CisgICAgc2l6ZV90IHRleHQgeyAwIH07Cisg
ICAgc2l6ZV90IGxpYiB7IDAgfTsKKyAgICBzaXplX3QgZGF0YSB7IDAgfTsKKyAgICBzaXplX3Qg
ZHQgeyAwIH07Cit9OworCit2b2lkIGN1cnJlbnRQcm9jZXNzTWVtb3J5U3RhdHVzKFByb2Nlc3NN
ZW1vcnlTdGF0dXMmKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gT1Mo
TElOVVgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saW51eC9NZW1vcnlQ
cmVzc3VyZUhhbmRsZXJMaW51eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saW51eC9N
ZW1vcnlQcmVzc3VyZUhhbmRsZXJMaW51eC5jcHAKaW5kZXggYzJkNDkyOS4uOWEwMzgzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGludXgvTWVtb3J5UHJlc3N1cmVIYW5k
bGVyTGludXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpbnV4L01lbW9yeVBy
ZXNzdXJlSGFuZGxlckxpbnV4LmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaWYgT1MoTElOVVgp
CiAKKyNpbmNsdWRlICJDdXJyZW50UHJvY2Vzc01lbW9yeVN0YXR1cy5oIgogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKIAogI2luY2x1ZGUgPGVycm5vLmg+CkBAIC01OSw3ICs2MCw2IEBAIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBzX2hvbGRPZmZNdWx0aXBsaWVyID0gMjA7CiAKIHN0YXRpYyBjb25zdCBj
aGFyKiBzX2Nncm91cE1lbW9yeVByZXNzdXJlTGV2ZWwgPSAiL3N5cy9mcy9jZ3JvdXAvbWVtb3J5
L21lbW9yeS5wcmVzc3VyZV9sZXZlbCI7CiBzdGF0aWMgY29uc3QgY2hhciogc19jZ3JvdXBFdmVu
dENvbnRyb2wgPSAiL3N5cy9mcy9jZ3JvdXAvbWVtb3J5L2Nncm91cC5ldmVudF9jb250cm9sIjsK
LXN0YXRpYyBjb25zdCBjaGFyKiBzX3Byb2Nlc3NTdGF0dXMgPSAiL3Byb2Mvc2VsZi9zdGF0dXMi
OwogCiAjaWYgVVNFKEdMSUIpCiB0eXBlZGVmIHN0cnVjdCB7CkBAIC0xNTcsMjcgKzE1Nyw2IEBA
IHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpFdmVudEZEUG9sbGVyOjpyZWFkQW5kTm90aWZ5
KCkgY29uc3QKICAgICBtX25vdGlmeUhhbmRsZXIoKTsKIH0KIAotc3RhdGljIGlubGluZSBTdHJp
bmcgbmV4dFRva2VuKEZJTEUqIGZpbGUpCi17Ci0gICAgaWYgKCFmaWxlKQotICAgICAgICByZXR1
cm4gU3RyaW5nKCk7Ci0KLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgYnVmZmVyU2l6ZSA9IDEy
ODsKLSAgICBjaGFyIGJ1ZmZlcltidWZmZXJTaXplXSA9IHswLCB9OwotICAgIHVuc2lnbmVkIGlu
ZGV4ID0gMDsKLSAgICB3aGlsZSAoaW5kZXggPCBidWZmZXJTaXplKSB7Ci0gICAgICAgIGludCBj
aCA9IGZnZXRjKGZpbGUpOwotICAgICAgICBpZiAoY2ggPT0gRU9GIHx8IChpc0FTQ0lJU3BhY2Uo
Y2gpICYmIGluZGV4KSkgLy8gQnJlYWsgb24gbm9uLWluaXRpYWwgQVNDSUkgc3BhY2UuCi0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgaWYgKCFpc0FTQ0lJU3BhY2UoY2gpKSB7Ci0gICAgICAg
ICAgICBidWZmZXJbaW5kZXhdID0gY2g7Ci0gICAgICAgICAgICBpbmRleCsrOwotICAgICAgICB9
Ci0gICAgfQotCi0gICAgcmV0dXJuIFN0cmluZyhidWZmZXIpOwotfQotCiBpbmxpbmUgdm9pZCBN
ZW1vcnlQcmVzc3VyZUhhbmRsZXI6OmxvZ0Vycm9yQW5kQ2xvc2VGRHMoY29uc3QgY2hhciogbG9n
KQogewogICAgIGlmIChsb2cpCkBAIC0yOTMsNiArMjcyLDEzIEBAIHZvaWQgTWVtb3J5UHJlc3N1
cmVIYW5kbGVyOjpob2xkT2ZmKHVuc2lnbmVkIHNlY29uZHMpCiAgICAgbV9ob2xkT2ZmVGltZXIu
c3RhcnRPbmVTaG90KHNlY29uZHMpOwogfQogCitzdGF0aWMgc2l6ZV90IHByb2Nlc3NNZW1vcnlV
c2FnZSgpCit7CisgICAgUHJvY2Vzc01lbW9yeVN0YXR1cyBtZW1vcnlTdGF0dXM7CisgICAgY3Vy
cmVudFByb2Nlc3NNZW1vcnlTdGF0dXMobWVtb3J5U3RhdHVzKTsKKyAgICByZXR1cm4gKG1lbW9y
eVN0YXR1cy5yZXNpZGVudCAtIG1lbW9yeVN0YXR1cy5zaGFyZWQpOworfQorCiB2b2lkIE1lbW9y
eVByZXNzdXJlSGFuZGxlcjo6cmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoQ3JpdGljYWwgY3JpdGlj
YWwsIFN5bmNocm9ub3VzIHN5bmNocm9ub3VzKQogewogICAgIHVuaW5zdGFsbCgpOwpAQCAtMzEz
LDIyICsyOTksNyBAQCB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cGxhdGZvcm1SZWxlYXNl
TWVtb3J5KENyaXRpY2FsKQogCiBzaXplX3QgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpSZWxpZWZM
b2dnZXI6OnBsYXRmb3JtTWVtb3J5VXNhZ2UoKQogewotICAgIEZJTEUqIGZpbGUgPSBmb3Blbihz
X3Byb2Nlc3NTdGF0dXMsICJyIik7Ci0gICAgaWYgKCFmaWxlKQotICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8c2l6ZV90PigtMSk7Ci0KLSAgICBzaXplX3Qgdm1TaXplID0gc3RhdGljX2Nhc3Q8
c2l6ZV90PigtMSk7IC8vIEtCCi0gICAgU3RyaW5nIHRva2VuID0gbmV4dFRva2VuKGZpbGUpOwot
ICAgIHdoaWxlICghdG9rZW4uaXNFbXB0eSgpKSB7Ci0gICAgICAgIGlmICh0b2tlbiA9PSAiVm1T
aXplOiIpIHsKLSAgICAgICAgICAgIHZtU2l6ZSA9IG5leHRUb2tlbihmaWxlKS50b0ludCgpICog
S0I7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICB0b2tlbiA9IG5leHRU
b2tlbihmaWxlKTsKLSAgICB9Ci0gICAgZmNsb3NlKGZpbGUpOwotCi0gICAgcmV0dXJuIHZtU2l6
ZTsKKyAgICByZXR1cm4gcHJvY2Vzc01lbW9yeVVzYWdlKCk7CiB9CiAKIHZvaWQgTWVtb3J5UHJl
c3N1cmVIYW5kbGVyOjpzZXRNZW1vcnlQcmVzc3VyZU1vbml0b3JIYW5kbGUoaW50IGZkKQo=
</data>
<flag name="review"
          id="317058"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>