<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Page file quota exhaustion observed on Integrity but not on Alpha. in Operating System - OpenVMS</title>
    <link>https://community.hpe.com/t5/operating-system-openvms/page-file-quota-exhaustion-observed-on-itanium-but-not-on-alpha/m-p/6397933#M37311</link>
    <description>&lt;P&gt;&amp;gt;The Pascal RTL keeps an internal list of all open files.&amp;nbsp; ... The code is thread-safe as well.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I couldn't implement procedure scoped files when I implemented threading in Pascal/iX.&amp;nbsp; Each stack was protected from the other threads due to the kernel design.&amp;nbsp; But it worked fine in Pascal/UX.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Looking back over the decades, I suppose I could have used a thread specific linked list to handle that but there was no hardware TLS.&amp;nbsp; Anyway after all that work, I'm not sure anyone ever used threading in those two PA-RISC Pascals.&lt;/P&gt;&lt;P&gt;Especially since all I/O would need to have explicit locking.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 03 Mar 2014 20:22:11 GMT</pubDate>
    <dc:creator>Dennis Handly</dc:creator>
    <dc:date>2014-03-03T20:22:11Z</dc:date>
    <item>
      <title>Page file quota exhaustion observed on Itanium but not on Alpha.</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/page-file-quota-exhaustion-observed-on-itanium-but-not-on-alpha/m-p/6387851#M37306</link>
      <description>&lt;P&gt;OK,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;On our Itanium systems (RX2800, OpenVMS 8-4, Update&amp;nbsp; v7.0, TCPIP 5-7 ECO 3) we are seeing one of the processes exitting with %LIB-F-INSVIRMEM, insufficient virtual memory.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This has never occurred on our Alpha systems (OpenVMS 7-3-2).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The issue seems to be arounf the creation and un mapping of global sections. The system service call $CRMPSC_GFILE_64 is used tp create a global section, this is then deleted using $DELTVA_64.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Reproducing the calls used shows a gradual exhausting of page file quota on the Itanium, no issues are observed when running the same program on the Alpha (7-3-2). I am unable to test Alpha 8-3 or 8-4, our DS15 running 8-3 failed last week.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Anyway, I've attached the code (Pascal) used to replicate the problem.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 24 Feb 2014 11:53:46 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/page-file-quota-exhaustion-observed-on-itanium-but-not-on-alpha/m-p/6387851#M37306</guid>
      <dc:creator>Brian Reiter</dc:creator>
      <dc:date>2014-02-24T11:53:46Z</dc:date>
    </item>
    <item>
      <title>Re: Page file quota exhaustion observed on Itanium but not on Alpha.</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/page-file-quota-exhaustion-observed-on-itanium-but-not-on-alpha/m-p/6390913#M37307</link>
      <description>&lt;P&gt;Brian,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Nice reproducer. Interesting. I can't see anything obvious which might cause a leak. Does it leak if you just repeatedly&amp;nbsp;map/unmap a single section, or does it take map 1000/unmap 1000?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Maybe&amp;nbsp;modify the program so it outputs&amp;nbsp;PAGFILCNT ($GETJPI) at strategic places&amp;nbsp;to narrow down the event and quantify the size of the leak? &amp;nbsp;&amp;nbsp;Could it be an effect of rounding to whole pages?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; I'd also include the output LIB$STAT_VM - there's a possibility that you're checker boarding the heap (again, can't see where that might happen in your code, but it's worth looking).&lt;/P&gt;</description>
      <pubDate>Tue, 25 Feb 2014 22:59:10 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/page-file-quota-exhaustion-observed-on-itanium-but-not-on-alpha/m-p/6390913#M37307</guid>
      <dc:creator>John Gillings</dc:creator>
      <dc:date>2014-02-25T22:59:10Z</dc:date>
    </item>
    <item>
      <title>Re: Page file quota exhaustion observed on Itanium but not on Alpha.</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/page-file-quota-exhaustion-observed-on-itanium-but-not-on-alpha/m-p/6390915#M37308</link>
      <description>&lt;P&gt;Oh, just realised... something else that might be interesting.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Instead of MAP 1..1000 then UNMAP 1..1000&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;see what happens if you MAP 1..1000 and UNMAP 1000..1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This may make a difference in terms of how the VM system deals with deleting and possibly reusing memory.&lt;/P&gt;</description>
      <pubDate>Tue, 25 Feb 2014 23:03:04 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/page-file-quota-exhaustion-observed-on-itanium-but-not-on-alpha/m-p/6390915#M37308</guid>
      <dc:creator>John Gillings</dc:creator>
      <dc:date>2014-02-25T23:03:04Z</dc:date>
    </item>
    <item>
      <title>Re: Page file quota exhaustion observed on Itanium but not on Alpha.</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/page-file-quota-exhaustion-observed-on-itanium-but-not-on-alpha/m-p/6391563#M37309</link>
      <description>&lt;P&gt;Hi John.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I fell over the solution yesterday afternoon , it seems to be a leak around the use of the Pascal OPEN routine and lack of corresponding CLOSE.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Each mapping of the global section calls OPEN with a useraction to get the channel. The UNMAP routines just calls $DASSGN using the channel. The size of the type use to defined the file is (SECTION_FILE_TYPE) is 524 bytes.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Amending the code to pass the file handle backwards and forwards and adding a CLOSE of the appropriate file to the UNMAP routine stops the memory leak. It would seem there is a subtle difference in the Pascal RTL between VMS 8-3 and 7-3-2, possibly just between the Alpha and Itanium versions.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Anyway, thanks for the help&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;cheers&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Brian&lt;/P&gt;</description>
      <pubDate>Wed, 26 Feb 2014 08:47:36 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/page-file-quota-exhaustion-observed-on-itanium-but-not-on-alpha/m-p/6391563#M37309</guid>
      <dc:creator>Brian Reiter</dc:creator>
      <dc:date>2014-02-26T08:47:36Z</dc:date>
    </item>
    <item>
      <title>Re: Page file quota exhaustion observed on Itanium but not on Alpha.</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/page-file-quota-exhaustion-observed-on-itanium-but-not-on-alpha/m-p/6397483#M37310</link>
      <description>&lt;P&gt;The Pascal RTL keeps an internal list of all open files.&amp;nbsp; It needs that in the event it has to do any automatic closing of files when they go out of scope or you unwind frames with open files.&amp;nbsp; One of the few places with platform-specific code is doing the atomic accesses on that list.&amp;nbsp; The code is thread-safe as well.&amp;nbsp; They are logically the same, but use somewhat different algorithms due to how they use specific instructions to update/manipulate the list.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also during that timeframe, I was probably porting to Itanium and made some structural changes for the port...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So I'm a little surprised by the difference you saw, but not totally shocked by it.&lt;/P&gt;</description>
      <pubDate>Mon, 03 Mar 2014 15:59:30 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/page-file-quota-exhaustion-observed-on-itanium-but-not-on-alpha/m-p/6397483#M37310</guid>
      <dc:creator>John Reagan</dc:creator>
      <dc:date>2014-03-03T15:59:30Z</dc:date>
    </item>
    <item>
      <title>Re: Page file quota exhaustion observed on Integrity but not on Alpha.</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/page-file-quota-exhaustion-observed-on-itanium-but-not-on-alpha/m-p/6397933#M37311</link>
      <description>&lt;P&gt;&amp;gt;The Pascal RTL keeps an internal list of all open files.&amp;nbsp; ... The code is thread-safe as well.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I couldn't implement procedure scoped files when I implemented threading in Pascal/iX.&amp;nbsp; Each stack was protected from the other threads due to the kernel design.&amp;nbsp; But it worked fine in Pascal/UX.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Looking back over the decades, I suppose I could have used a thread specific linked list to handle that but there was no hardware TLS.&amp;nbsp; Anyway after all that work, I'm not sure anyone ever used threading in those two PA-RISC Pascals.&lt;/P&gt;&lt;P&gt;Especially since all I/O would need to have explicit locking.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 03 Mar 2014 20:22:11 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/page-file-quota-exhaustion-observed-on-itanium-but-not-on-alpha/m-p/6397933#M37311</guid>
      <dc:creator>Dennis Handly</dc:creator>
      <dc:date>2014-03-03T20:22:11Z</dc:date>
    </item>
  </channel>
</rss>

