RFR(xxs): 8210314: [aix] NMT does not show "Safepoint" memory type

Doerr, Martin martin.doerr at sap.com
Mon Sep 3 12:36:59 UTC 2018


Hi Thomas,

thanks for explaining. I think using "record_virtual_memory_reserve_and_commit" makes sense because it combines "reserve" and "commit" which matches what the implementation does.

The change looks good to me.

Thanks,
Martin


-----Original Message-----
From: ppc-aix-port-dev <ppc-aix-port-dev-bounces at openjdk.java.net> On Behalf Of Thomas Stüfe
Sent: Montag, 3. September 2018 13:27
To: Baesken, Matthias <matthias.baesken at sap.com>
Cc: ppc-aix-port-dev at openjdk.java.net; Hotspot dev runtime <hotspot-runtime-dev at openjdk.java.net>
Subject: Re: RFR(xxs): 8210314: [aix] NMT does not show "Safepoint" memory type

Hi Matthias,

thanks for the review.


On Mon, Sep 3, 2018 at 12:29 PM, Baesken, Matthias
<matthias.baesken at sap.com> wrote:
> Hi Thomas, looks good  to me ( not a Reviewer however).
>
>
> One other small difference I noticed  when comparing   AIX  to other UNIX implementations (e.g. linux / bsd ) :
>
> In  perfMemory_aix.cpp  /  mmap_create_shared   and  mmap_attach_shared     we call
>
>      MemTracker::record_virtual_memory_reserve(...)
>
> While  in   perfMemory_linux.cpp  (bsd  and solaris as well)   we call
>
>     MemTracker::record_virtual_memory_reserve_and_commit(...)
>
>
> Is there  really  a need  for different call on  AIX ?
>
>

In short, record_virtual_memory_reserve() should only be used
whereever mmap( ... MAP_NORESERVE ...) is used. So,
MemTracker::record_virtual_memory_reserve_and_commit(...) would be
more correct.

However, on AIX we have no explicit commit (os::commit()) is a noop,
and there is no MAP_NORESERVE - the system just provides swapping
space by default as needed. So, this aspect of NMT - the "committed"
numbers for virtual memory - is right now broken, just a rough
estimate, and right now I have absolutely no clue how to fix it.

Best Regards, Thomas

>
> And   the z GC code base   ( jdk/src/hotspot/os_cpu/linux_x86/gc/z/)     contains also  a couple of mmap calls , wonder where those are recorded .
>
>
> Best regards, Matthias
>
>
>> -----Original Message-----
>> From: ppc-aix-port-dev <ppc-aix-port-dev-bounces at openjdk.java.net> On
>> Behalf Of Thomas Stüfe
>> Sent: Montag, 3. September 2018 11:46
>> To: Hotspot dev runtime <hotspot-runtime-dev at openjdk.java.net>; ppc-
>> aix-port-dev at openjdk.java.net
>> Subject: RFR(xxs): 8210314: [aix] NMT does not show "Safepoint" memory
>> type
>>
>> Hi all,
>>
>> may I please have reviews for this small, AIX-only change.
>>
>> cr: http://cr.openjdk.java.net/~stuefe/webrevs/8210314-aix-NMT-does-
>> not-show-safepoint-memory/webrev.00/webrev/
>>
>> bug: https://bugs.openjdk.java.net/browse/JDK-8210314
>>
>> On AIX, we have our own initialization for the safepoint mechanism. We
>> missed registering the polling page with NMT, which the generic code
>> path did. This patch adds that.
>>
>> Side note:
>>
>> We are different for two reasons. One, on ppc we use per default
>> SIGTRAP for safepoint signalling, which can be switched off though.
>> Second, on AIX, we cannot use os::reserve_memory() to obtain a polling
>> page since that memory may not protectable (if it uses sysV shmat).
>> Hence, the AIX specific coding.
>>
>> Best Regards, Thomas


More information about the ppc-aix-port-dev mailing list