<?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>178130</bug_id>
          
          <creation_ts>2017-10-10 06:52:03 -0700</creation_ts>
          <short_desc>[ARM64][Linux] Re-enable Gigacage</short_desc>
          <delta_ts>2018-03-22 13:39:00 -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>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>178654</dependson>
          <blocked>108645</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>buildbot</cc>
    
    <cc>clopez</cc>
    
    <cc>fpizlo</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>msaboff</cc>
    
    <cc>ossy</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1358752</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-10-10 06:52:03 -0700</bug_when>
    <thetext>Disabled after general support for ARM64 was landed in bug #177586.

ELF-specific relocation specifiers have to be used in globaladdr opcode in offlineasm, and the .loh directive has to be avoided since it&apos;s not supported in GCC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1358831</commentid>
    <comment_count>1</comment_count>
      <attachid>323330</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-10-10 12:13:07 -0700</bug_when>
    <thetext>Created attachment 323330
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1358848</commentid>
    <comment_count>2</comment_count>
      <attachid>323330</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-10-10 12:45:16 -0700</bug_when>
    <thetext>Comment on attachment 323330
Patch

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

&gt; Source/bmalloc/ChangeLog:11
&gt; +        (bmalloc::api::tryLargeMemalignVirtual): Call Heap::tryAllocateLarge(),
&gt; +        which won&apos;t intentionally crash if the allocation fails.

Why is this important? I see that it is correct, because it&apos;s called in tryLargeMemalignVirtual, but seems odd to change cross-platform behavior in an ARM64 commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359070</commentid>
    <comment_count>3</comment_count>
      <attachid>323330</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-10-10 23:53:21 -0700</bug_when>
    <thetext>Comment on attachment 323330
Patch

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

&gt;&gt; Source/bmalloc/ChangeLog:11
&gt;&gt; +        which won&apos;t intentionally crash if the allocation fails.
&gt; 
&gt; Why is this important? I see that it is correct, because it&apos;s called in tryLargeMemalignVirtual, but seems odd to change cross-platform behavior in an ARM64 commit.

I don&apos;t mind doing it in a separate patch. But it avoids ~500 WASM crashes that occur because WASM::Memory tries to allocate 4GB of virtual memory while the current ARM64 Gigacage implementation doesn&apos;t support such large allocations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359143</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-10-11 05:40:07 -0700</bug_when>
    <thetext>I would just mention that in the changelog, then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359194</commentid>
    <comment_count>5</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-10-11 08:54:38 -0700</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #3)
&gt; Comment on attachment 323330 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=323330&amp;action=review
&gt; 
&gt; &gt;&gt; Source/bmalloc/ChangeLog:11
&gt; &gt;&gt; +        which won&apos;t intentionally crash if the allocation fails.
&gt; &gt; 
&gt; &gt; Why is this important? I see that it is correct, because it&apos;s called in tryLargeMemalignVirtual, but seems odd to change cross-platform behavior in an ARM64 commit.
&gt; 
&gt; I don&apos;t mind doing it in a separate patch. But it avoids ~500 WASM crashes
&gt; that occur because WASM::Memory tries to allocate 4GB of virtual memory
&gt; while the current ARM64 Gigacage implementation doesn&apos;t support such large
&gt; allocations.

That sounds like a bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359211</commentid>
    <comment_count>6</comment_count>
      <attachid>323330</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-10-11 09:14:03 -0700</bug_when>
    <thetext>Comment on attachment 323330
Patch

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

&gt;&gt;&gt;&gt; Source/bmalloc/ChangeLog:11
&gt;&gt;&gt;&gt; +        which won&apos;t intentionally crash if the allocation fails.
&gt;&gt;&gt; 
&gt;&gt;&gt; Why is this important? I see that it is correct, because it&apos;s called in tryLargeMemalignVirtual, but seems odd to change cross-platform behavior in an ARM64 commit.
&gt;&gt; 
&gt;&gt; I don&apos;t mind doing it in a separate patch. But it avoids ~500 WASM crashes that occur because WASM::Memory tries to allocate 4GB of virtual memory while the current ARM64 Gigacage implementation doesn&apos;t support such large allocations.
&gt; 
&gt; That sounds like a bug?

Yeah, that sounds like a bug. It is not intended behavier, right?
I think that the correct fix is fixing bmalloc side.
BTW, is this specific to ARM64 Gugacage? Or can we reproduce this in x64?
I think it is ARM64 specific since we do not see such crashes in x64 test bot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359228</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-10-11 10:19:37 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #6)
&gt; I think it is ARM64 specific since we do not see such crashes in x64 test
&gt; bot.

The GTK and WPE bots are not running the JSC tests marked as memory-limited since bug 175140</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359246</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-10-11 10:49:40 -0700</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #7)
&gt; (In reply to Yusuke Suzuki from comment #6)
&gt; &gt; I think it is ARM64 specific since we do not see such crashes in x64 test
&gt; &gt; bot.
&gt; 
&gt; The GTK and WPE bots are not running the JSC tests marked as memory-limited
&gt; since bug 175140

Oh, I&apos;ve just run trunk JSCOnly on Linux x64 with `run-jsc-stress-tests -j path/to/jsc JSTests/wasm.yaml` and all the tests (1010 tests) pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359251</commentid>
    <comment_count>9</comment_count>
      <attachid>323330</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-10-11 10:57:51 -0700</bug_when>
    <thetext>Comment on attachment 323330
Patch

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

&gt; Source/bmalloc/bmalloc/bmalloc.h:74
&gt; -    return heap.allocateLarge(lock, alignment, size, AllocationKind::Virtual);
&gt; +    return heap.tryAllocateLarge(lock, alignment, size, AllocationKind::Virtual);

I don&apos;t know much about bmalloc, but this function is named tryLargeMemalignVirtual, so it looks to be clearly broken currently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1360021</commentid>
    <comment_count>10</comment_count>
      <attachid>323330</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-10-13 09:21:52 -0700</bug_when>
    <thetext>Comment on attachment 323330
Patch

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

&gt;&gt;&gt;&gt;&gt; Source/bmalloc/ChangeLog:11
&gt;&gt;&gt;&gt;&gt; +        which won&apos;t intentionally crash if the allocation fails.
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; Why is this important? I see that it is correct, because it&apos;s called in tryLargeMemalignVirtual, but seems odd to change cross-platform behavior in an ARM64 commit.
&gt;&gt;&gt; 
&gt;&gt;&gt; I don&apos;t mind doing it in a separate patch. But it avoids ~500 WASM crashes that occur because WASM::Memory tries to allocate 4GB of virtual memory while the current ARM64 Gigacage implementation doesn&apos;t support such large allocations.
&gt;&gt; 
&gt;&gt; That sounds like a bug?
&gt; 
&gt; Yeah, that sounds like a bug. It is not intended behavier, right?
&gt; I think that the correct fix is fixing bmalloc side.
&gt; BTW, is this specific to ARM64 Gugacage? Or can we reproduce this in x64?
&gt; I think it is ARM64 specific since we do not see such crashes in x64 test bot.

In ensureGigacage(), the sizes for different kinds are summed up and that value is then used to do a single allocation. On x86_64 this sum exceeds 80GB, while on ARM64 it&apos;s for now limited to around 3GB (not counting alignment adjustments). Bug #177605 will increase those values.

Crash occurs under MemoryManager::tryAllocateVirtualPages(), in WasmMemory implementation file. The Memory::fastMappedBytes() value is used as the size of allocation, which translates to 4GB. The Gigacage on x86_64 has no problems to accommodate that, while on ARM64 the allocation fails and produces a crash because of Heap::allocateLarge() being used in bmalloc::tryLargeMemalignVirtual().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363223</commentid>
    <comment_count>11</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-10-22 23:26:55 -0700</bug_when>
    <thetext>bmalloc part spun off into bug #178654.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363224</commentid>
    <comment_count>12</comment_count>
      <attachid>324546</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-10-22 23:33:10 -0700</bug_when>
    <thetext>Created attachment 324546
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365952</commentid>
    <comment_count>13</comment_count>
      <attachid>324546</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-10-30 01:16:47 -0700</bug_when>
    <thetext>Comment on attachment 324546
Patch

Clearing flags on attachment: 324546

Committed r224171: &lt;https://trac.webkit.org/changeset/224171&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1365953</commentid>
    <comment_count>14</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-10-30 01:16:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366097</commentid>
    <comment_count>15</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-10-30 11:34:08 -0700</bug_when>
    <thetext>BTW, right now, shouldBeEnabled inside Gigacage.cpp returns false for ARM64. You may want to enable that for Linux or change the guard to return false if IOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366144</commentid>
    <comment_count>16</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-10-30 13:10:55 -0700</bug_when>
    <thetext>Reopening in light of that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1407315</commentid>
    <comment_count>17</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-03-18 18:46:11 -0700</bug_when>
    <thetext>Zan, do you want to look at this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408466</commentid>
    <comment_count>18</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-03-22 13:36:37 -0700</bug_when>
    <thetext>It&apos;s been enabled back for ARM64 in r225701.
https://trac.webkit.org/changeset/225701/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408469</commentid>
    <comment_count>19</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-03-22 13:39:00 -0700</bug_when>
    <thetext>&lt;rdar://problem/38765155&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323330</attachid>
            <date>2017-10-10 12:13:07 -0700</date>
            <delta_ts>2017-10-22 23:33:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178130-20171010211306.patch</filename>
            <type>text/plain</type>
            <size>5089</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzMTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NmMyZjFkMDI3YzViMWQ2YzVkYWU2MTcwOTBhZTBjMzdlNTBhYjlkLi42ODVjMDAwYWZlMTc1Yjcz
Zjg3NDBhYzk0MDVmYTlmOWI1ZjkyNTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxNy0xMC0xMCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5j
b20+CisKKyAgICAgICAgW0FSTTY0XVtMaW51eF0gUmUtZW5hYmxlIEdpZ2FjYWdlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgxMzAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHdWFyZCB0aGUgY3VycmVu
dCBnbG9iYWxhZGRyIG9wY29kZSBpbXBsZW1lbnRhdGlvbiBmb3IgQVJNNjQgd2l0aAorICAgICAg
ICBPUyhEQVJXSU4pIGFzIGl0J3Mgb25seSB1c2FibGUgZm9yIE1hY2gtTy4KKworICAgICAgICBG
b3IgT1MoTElOVVgpLCBFTEYtc3VwcG9ydGVkIDpnb3Q6IGFuZCA6Z290X2xvMTI6IHJlbG9jYXRp
b24gc3BlY2lmaWVycworICAgICAgICBoYXZlIHRvIGJlIHVzZWQgLiBUaGUgLmxvaCBkaXJlY3Rp
dmUgY2FuJ3QgYmUgdXNlZCBhcyBpdCdzIG5vdCBzdXBwb3J0ZWQKKyAgICAgICAgaW4gR0NDIG9y
IHRoZSBsZCBsaW5rZXIuCisKKyAgICAgICAgT24gZXZlcnkgb3RoZXIgT1MgdGFyZ2V0LCBhIGNv
bXBpbGF0aW9uIGVycm9yIGlzIHRocm93bi4KKworICAgICAgICAqIG9mZmxpbmVhc20vYXJtNjQu
cmI6CisKIDIwMTctMTAtMTAgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAg
ICAgICAgVGhlIHByb3RvdHlwZSBjYWNoZSBzaG91bGQgYmUgYXdhcmUgb2YgdGhlIEV4ZWN1dGFi
bGUgaXQgZ2VuZXJhdGVzIGEgU3RydWN0dXJlIGZvcgpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxs
b2MvQ2hhbmdlTG9nIGIvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCmluZGV4IDY3ZjJhMWFkYTFk
MTY0MDhmNDQ3ODNlYTdmZGExNDE0MTUxOWUzMmMuLmMxM2FlNGVlOTJhZGIyMDMyZThlZjE0YTJm
ZjljODdjZTI0OTdhMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNy0xMC0xMCAg
WmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0FSTTY0XVtM
aW51eF0gUmUtZW5hYmxlIEdpZ2FjYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzgxMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGJtYWxsb2MvR2lnYWNhZ2UuaDogUmUtZW5hYmxlIEdpZ2FjYWdl
IG9uIEFSTTY0IExpbnV4LgorICAgICAgICAqIGJtYWxsb2MvYm1hbGxvYy5oOgorICAgICAgICAo
Ym1hbGxvYzo6YXBpOjp0cnlMYXJnZU1lbWFsaWduVmlydHVhbCk6IENhbGwgSGVhcDo6dHJ5QWxs
b2NhdGVMYXJnZSgpLAorICAgICAgICB3aGljaCB3b24ndCBpbnRlbnRpb25hbGx5IGNyYXNoIGlm
IHRoZSBhbGxvY2F0aW9uIGZhaWxzLgorCiAyMDE3LTEwLTA3ICBGaWxpcCBQaXpsbyAgPGZwaXps
b0BhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIG9uZSB2aXJ0dWFsIGFsbG9jYXRpb24gZm9yIGFs
bCBnaWdhY2FnZXMgYW5kIHRoZWlyIHJ1bndheXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL2FybTY0LnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxp
bmVhc20vYXJtNjQucmIKaW5kZXggZTgwNmY5OTFiNWE1NmY3MTI4OWRiZDI5N2QyMjIzYjkzNjkx
NmQ4MC4uNzA2YTQ1MjFkN2UwZTAyM2I3M2FjMjFhYTkxYzAyYjZiYzY0MmY2MyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtNjQucmIKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtNjQucmIKQEAgLTkzMiwxMiArOTMyLDMwIEBA
IGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICAkYXNtLnB1dFN0cigiI2VuZGlmIikKICAg
ICAgICAgd2hlbiAiZ2xvYmFsYWRkciIKICAgICAgICAgICAgIHVpZCA9ICRhc20ubmV3VUlECisK
KyAgICAgICAgICAgICMgT24gRGFyd2luLCB1c2UgTWFjaG8tTyBHT1QgcmVsb2NhdGlvbiBzcGVj
aWZpZXJzLCBhbG9uZyB3aXRoCisgICAgICAgICAgICAjIHRoZSBsYWJlbHMgcmVxdWlyZWQgZm9y
IHRoZSAubG9oIGRpcmVjdGl2ZS4KKyAgICAgICAgICAgICRhc20ucHV0U3RyKCIjaWYgT1MoREFS
V0lOKSIpCiAgICAgICAgICAgICAkYXNtLnB1dHMgIkxfb2ZmbGluZWFzbV9sb2hfYWRycF8je3Vp
ZH06IgogICAgICAgICAgICAgJGFzbS5wdXRzICJhZHJwICN7b3BlcmFuZHNbMV0uYXJtNjRPcGVy
YW5kKDpwdHIpfSwgI3tvcGVyYW5kc1swXS5hc21MYWJlbH1AR09UUEFHRSIKICAgICAgICAgICAg
ICRhc20ucHV0cyAiTF9vZmZsaW5lYXNtX2xvaF9sZHJfI3t1aWR9OiIKICAgICAgICAgICAgICRh
c20ucHV0cyAibGRyICN7b3BlcmFuZHNbMV0uYXJtNjRPcGVyYW5kKDpwdHIpfSwgWyN7b3BlcmFu
ZHNbMV0uYXJtNjRPcGVyYW5kKDpwdHIpfSwgI3tvcGVyYW5kc1swXS5hc21MYWJlbH1AR09UUEFH
RU9GRl0iCisKKyAgICAgICAgICAgICMgT24gTGludXgsIHVzZSBFTEYgR09UIHJlbG9jYXRpb24g
c3BlY2lmaWVycy4KKyAgICAgICAgICAgICRhc20ucHV0U3RyKCIjZWxpZiBPUyhMSU5VWCkiKQor
ICAgICAgICAgICAgJGFzbS5wdXRzICJhZHJwICN7b3BlcmFuZHNbMV0uYXJtNjRPcGVyYW5kKDpw
dHIpfSwgOmdvdDoje29wZXJhbmRzWzBdLmFzbUxhYmVsfSIKKyAgICAgICAgICAgICRhc20ucHV0
cyAibGRyICN7b3BlcmFuZHNbMV0uYXJtNjRPcGVyYW5kKDpwdHIpfSwgWyN7b3BlcmFuZHNbMV0u
YXJtNjRPcGVyYW5kKDpwdHIpfSwgOmdvdF9sbzEyOiN7b3BlcmFuZHNbMF0uYXNtTGFiZWx9XSIK
KworICAgICAgICAgICAgIyBUaHJvdyBhIGNvbXBpbGVyIGVycm9yIGV2ZXJ5d2hlcmUgZWxzZS4K
KyAgICAgICAgICAgICRhc20ucHV0U3RyKCIjZWxzZSIpCisgICAgICAgICAgICAkYXNtLnB1dFN0
cigiI2Vycm9yIE1pc3NpbmcgZ2xvYmFsYWRkciBpbXBsZW1lbnRhdGlvbiIpCisgICAgICAgICAg
ICAkYXNtLnB1dFN0cigiI2VuZGlmIikKKwogICAgICAgICAgICAgJGFzbS5kZWZlckFjdGlvbiB7
CisgICAgICAgICAgICAgICAgIyBPbiBEYXJ3aW4sIGFsc28gaW5jbHVkZSB0aGUgLmxvaCBkaXJl
Y3RpdmUgdXNpbmcgdGhlIGdlbmVyYXRlZCBsYWJlbHMuCisgICAgICAgICAgICAgICAgJGFzbS5w
dXRTdHIoIiNpZiBPUyhEQVJXSU4pIikKICAgICAgICAgICAgICAgICAkYXNtLnB1dHMgIi5sb2gg
QWRycExkckdvdCBMX29mZmxpbmVhc21fbG9oX2FkcnBfI3t1aWR9LCBMX29mZmxpbmVhc21fbG9o
X2xkcl8je3VpZH0iCisgICAgICAgICAgICAgICAgJGFzbS5wdXRTdHIoIiNlbmRpZiIpCiAgICAg
ICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGxvd2VyRGVmYXVsdApkaWZmIC0t
Z2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9HaWdhY2FnZS5oIGIvU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9HaWdhY2FnZS5oCmluZGV4IDE4MWE3ZTYyNGNlMDA4Yzk3NTEwNzkwZjI1ZGYyNWUy
NjY5MTdiNDguLmI2NDNkNGY4NmIwMzBiMGIwZGQzMmMzYzMyYzhiMDAyZGNlMmZlOTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvR2lnYWNhZ2UuaAorKysgYi9Tb3VyY2UvYm1h
bGxvYy9ibWFsbG9jL0dpZ2FjYWdlLmgKQEAgLTUyLDcgKzUyLDcgQEAKICNkZWZpbmUgSlNWQUxV
RV9HSUdBQ0FHRV9NQVNLIEdJR0FDQUdFX1NJWkVfVE9fTUFTSyhKU1ZBTFVFX0dJR0FDQUdFX1NJ
WkUpCiAjZGVmaW5lIFNUUklOR19HSUdBQ0FHRV9NQVNLIEdJR0FDQUdFX1NJWkVfVE9fTUFTSyhT
VFJJTkdfR0lHQUNBR0VfU0laRSkKIAotI2lmIChCT1MoREFSV0lOKSAmJiAoQkNQVShBUk02NCkg
fHwgQkNQVShYODZfNjQpKSkgfHwgKEJPUyhMSU5VWCkgJiYgQkNQVShYODZfNjQpKQorI2lmIChC
T1MoREFSV0lOKSB8fCBCT1MoTElOVVgpKSAmJiAoQkNQVShBUk02NCkgfHwgQkNQVShYODZfNjQp
KQogI2RlZmluZSBHSUdBQ0FHRV9FTkFCTEVEIDEKICNlbHNlCiAjZGVmaW5lIEdJR0FDQUdFX0VO
QUJMRUQgMApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9ibWFsbG9jLmggYi9T
b3VyY2UvYm1hbGxvYy9ibWFsbG9jL2JtYWxsb2MuaAppbmRleCBkMTMxNzM0NGNkOTFmY2I5OTc2
YWU1OTZmOGNhOWI1MGZiOWRmNDllLi5lOTFkOWZlNDlkNDc4NDE3MDYyNTQyMzdkODFjZDU0MjIy
NDdkNTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL2JtYWxsb2MuaAorKysg
Yi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL2JtYWxsb2MuaApAQCAtNzEsNyArNzEsNyBAQCBpbmxp
bmUgdm9pZCogdHJ5TGFyZ2VNZW1hbGlnblZpcnR1YWwoc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90
IHNpemUsIEhlYXBLaW5kIGtpbgogICAgIGtpbmQgPSBtYXBUb0FjdGl2ZUhlYXBLaW5kKGtpbmQp
OwogICAgIEhlYXAmIGhlYXAgPSBQZXJQcm9jZXNzPFBlckhlYXBLaW5kPEhlYXA+Pjo6Z2V0KCkt
PmF0KGtpbmQpOwogICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNNdXRleD4gbG9jayhIZWFwOjpt
dXRleCgpKTsKLSAgICByZXR1cm4gaGVhcC5hbGxvY2F0ZUxhcmdlKGxvY2ssIGFsaWdubWVudCwg
c2l6ZSwgQWxsb2NhdGlvbktpbmQ6OlZpcnR1YWwpOworICAgIHJldHVybiBoZWFwLnRyeUFsbG9j
YXRlTGFyZ2UobG9jaywgYWxpZ25tZW50LCBzaXplLCBBbGxvY2F0aW9uS2luZDo6VmlydHVhbCk7
CiB9CiAKIGlubGluZSB2b2lkIGZyZWUodm9pZCogb2JqZWN0LCBIZWFwS2luZCBraW5kID0gSGVh
cEtpbmQ6OlByaW1hcnkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324546</attachid>
            <date>2017-10-22 23:33:10 -0700</date>
            <delta_ts>2017-10-30 01:16:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178130-20171023083309.patch</filename>
            <type>text/plain</type>
            <size>4204</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzODMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
NDk5ZDc0ZDZlMjg1MWY1NjgwZGE1YWE3M2U4NWY5OTAwNDUxMzFlLi4zZDI3MzkyZTMyZWQyNzlm
MDUwYTg0YjE3MmJjOWU0MTE4MWJjMzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyMyBAQAogMjAxNy0xMC0yMiAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5j
b20+CiAKKyAgICAgICAgW0FSTTY0XVtMaW51eF0gUmUtZW5hYmxlIEdpZ2FjYWdlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgxMzAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHdWFyZCB0aGUgY3VycmVu
dCBnbG9iYWxhZGRyIG9wY29kZSBpbXBsZW1lbnRhdGlvbiBmb3IgQVJNNjQgd2l0aAorICAgICAg
ICBPUyhEQVJXSU4pIGFzIGl0J3Mgb25seSB1c2FibGUgZm9yIE1hY2gtTy4KKworICAgICAgICBG
b3IgT1MoTElOVVgpLCBFTEYtc3VwcG9ydGVkIDpnb3Q6IGFuZCA6Z290X2xvMTI6IHJlbG9jYXRp
b24gc3BlY2lmaWVycworICAgICAgICBoYXZlIHRvIGJlIHVzZWQuIFRoZSAubG9oIGRpcmVjdGl2
ZSBjYW4ndCBiZSB1c2VkIGFzIGl0J3Mgbm90IHN1cHBvcnRlZAorICAgICAgICBpbiBHQ0Mgb3Ig
dGhlIGxkIGxpbmtlci4KKworICAgICAgICBPbiBldmVyeSBvdGhlciBPUyB0YXJnZXQsIGEgY29t
cGlsYXRpb24gZXJyb3IgaXMgdGhyb3duLgorCisgICAgICAgICogb2ZmbGluZWFzbS9hcm02NC5y
YjoKKworMjAxNy0xMC0yMiAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisK
ICAgICAgICAgW0pTQ10gUmVtb3ZlICEoT1MoTElOVVgpICYmIENQVShBUk02NCkpIGd1YXJkcyBp
biBSZWdpc3RlclN0YXRlLmgKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3ODQ1MgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKaW5kZXggODcyMTkzYzE3MGM1ZmE5ODNlMGMwOGVl
NDg2ZWRhMzkxOTdkZjIyYS4uNDY3NDAyNzQ4OTQyZWU0ZTJlZTE2MTBlYzAzNzNmZjdhYjAxM2Zj
MSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9ibWFs
bG9jL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE3LTEwLTIyICBaYW4gRG9iZXJzZWsg
IDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbQVJNNjRdW0xpbnV4XSBSZS1lbmFi
bGUgR2lnYWNhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3ODEzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogYm1hbGxvYy9HaWdhY2FnZS5oOiBSZS1lbmFibGUgR2lnYWNhZ2Ugb24gQVJNNjQgTGlu
dXguCisKIDIwMTctMTAtMTkgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUnVudGltZSBkaXNhYmxlIGdpZ2FjYWdlIG9uIGlPUyBiZWNhdXNlIGl0IGJyb2tlIFdh
c21CZW5jaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJt
NjQucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm02NC5yYgppbmRleCBl
ODA2Zjk5MWI1YTU2ZjcxMjg5ZGJkMjk3ZDIyMjNiOTM2OTE2ZDgwLi43MDZhNDUyMWQ3ZTBlMDIz
YjczYWMyMWFhOTFjMDJiNmJjNjQyZjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9hcm02NC5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS9hcm02NC5yYgpAQCAtOTMyLDEyICs5MzIsMzAgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAg
ICAgICAgICAgICRhc20ucHV0U3RyKCIjZW5kaWYiKQogICAgICAgICB3aGVuICJnbG9iYWxhZGRy
IgogICAgICAgICAgICAgdWlkID0gJGFzbS5uZXdVSUQKKworICAgICAgICAgICAgIyBPbiBEYXJ3
aW4sIHVzZSBNYWNoby1PIEdPVCByZWxvY2F0aW9uIHNwZWNpZmllcnMsIGFsb25nIHdpdGgKKyAg
ICAgICAgICAgICMgdGhlIGxhYmVscyByZXF1aXJlZCBmb3IgdGhlIC5sb2ggZGlyZWN0aXZlLgor
ICAgICAgICAgICAgJGFzbS5wdXRTdHIoIiNpZiBPUyhEQVJXSU4pIikKICAgICAgICAgICAgICRh
c20ucHV0cyAiTF9vZmZsaW5lYXNtX2xvaF9hZHJwXyN7dWlkfToiCiAgICAgICAgICAgICAkYXNt
LnB1dHMgImFkcnAgI3tvcGVyYW5kc1sxXS5hcm02NE9wZXJhbmQoOnB0cil9LCAje29wZXJhbmRz
WzBdLmFzbUxhYmVsfUBHT1RQQUdFIgogICAgICAgICAgICAgJGFzbS5wdXRzICJMX29mZmxpbmVh
c21fbG9oX2xkcl8je3VpZH06IgogICAgICAgICAgICAgJGFzbS5wdXRzICJsZHIgI3tvcGVyYW5k
c1sxXS5hcm02NE9wZXJhbmQoOnB0cil9LCBbI3tvcGVyYW5kc1sxXS5hcm02NE9wZXJhbmQoOnB0
cil9LCAje29wZXJhbmRzWzBdLmFzbUxhYmVsfUBHT1RQQUdFT0ZGXSIKKworICAgICAgICAgICAg
IyBPbiBMaW51eCwgdXNlIEVMRiBHT1QgcmVsb2NhdGlvbiBzcGVjaWZpZXJzLgorICAgICAgICAg
ICAgJGFzbS5wdXRTdHIoIiNlbGlmIE9TKExJTlVYKSIpCisgICAgICAgICAgICAkYXNtLnB1dHMg
ImFkcnAgI3tvcGVyYW5kc1sxXS5hcm02NE9wZXJhbmQoOnB0cil9LCA6Z290OiN7b3BlcmFuZHNb
MF0uYXNtTGFiZWx9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJsZHIgI3tvcGVyYW5kc1sxXS5h
cm02NE9wZXJhbmQoOnB0cil9LCBbI3tvcGVyYW5kc1sxXS5hcm02NE9wZXJhbmQoOnB0cil9LCA6
Z290X2xvMTI6I3tvcGVyYW5kc1swXS5hc21MYWJlbH1dIgorCisgICAgICAgICAgICAjIFRocm93
IGEgY29tcGlsZXIgZXJyb3IgZXZlcnl3aGVyZSBlbHNlLgorICAgICAgICAgICAgJGFzbS5wdXRT
dHIoIiNlbHNlIikKKyAgICAgICAgICAgICRhc20ucHV0U3RyKCIjZXJyb3IgTWlzc2luZyBnbG9i
YWxhZGRyIGltcGxlbWVudGF0aW9uIikKKyAgICAgICAgICAgICRhc20ucHV0U3RyKCIjZW5kaWYi
KQorCiAgICAgICAgICAgICAkYXNtLmRlZmVyQWN0aW9uIHsKKyAgICAgICAgICAgICAgICAjIE9u
IERhcndpbiwgYWxzbyBpbmNsdWRlIHRoZSAubG9oIGRpcmVjdGl2ZSB1c2luZyB0aGUgZ2VuZXJh
dGVkIGxhYmVscy4KKyAgICAgICAgICAgICAgICAkYXNtLnB1dFN0cigiI2lmIE9TKERBUldJTiki
KQogICAgICAgICAgICAgICAgICRhc20ucHV0cyAiLmxvaCBBZHJwTGRyR290IExfb2ZmbGluZWFz
bV9sb2hfYWRycF8je3VpZH0sIExfb2ZmbGluZWFzbV9sb2hfbGRyXyN7dWlkfSIKKyAgICAgICAg
ICAgICAgICAkYXNtLnB1dFN0cigiI2VuZGlmIikKICAgICAgICAgICAgIH0KICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgbG93ZXJEZWZhdWx0CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9i
bWFsbG9jL0dpZ2FjYWdlLmggYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0dpZ2FjYWdlLmgKaW5k
ZXggMTgxYTdlNjI0Y2UwMDhjOTc1MTA3OTBmMjVkZjI1ZTI2NjkxN2I0OC4uYjY0M2Q0Zjg2YjAz
MGIwYjBkZDMyYzNjMzJjOGIwMDJkY2UyZmU5OCAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9HaWdhY2FnZS5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvR2lnYWNhZ2Uu
aApAQCAtNTIsNyArNTIsNyBAQAogI2RlZmluZSBKU1ZBTFVFX0dJR0FDQUdFX01BU0sgR0lHQUNB
R0VfU0laRV9UT19NQVNLKEpTVkFMVUVfR0lHQUNBR0VfU0laRSkKICNkZWZpbmUgU1RSSU5HX0dJ
R0FDQUdFX01BU0sgR0lHQUNBR0VfU0laRV9UT19NQVNLKFNUUklOR19HSUdBQ0FHRV9TSVpFKQog
Ci0jaWYgKEJPUyhEQVJXSU4pICYmIChCQ1BVKEFSTTY0KSB8fCBCQ1BVKFg4Nl82NCkpKSB8fCAo
Qk9TKExJTlVYKSAmJiBCQ1BVKFg4Nl82NCkpCisjaWYgKEJPUyhEQVJXSU4pIHx8IEJPUyhMSU5V
WCkpICYmIChCQ1BVKEFSTTY0KSB8fCBCQ1BVKFg4Nl82NCkpCiAjZGVmaW5lIEdJR0FDQUdFX0VO
QUJMRUQgMQogI2Vsc2UKICNkZWZpbmUgR0lHQUNBR0VfRU5BQkxFRCAwCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>