remove INCLUDE_NMT?
daniel.daugherty at oracle.com
daniel.daugherty at oracle.com
Thu Jan 20 14:58:48 UTC 2022
On 1/20/22 7:48 AM, David Holmes wrote:
> On 20/01/2022 6:13 pm, Thomas Stüfe wrote:
>> Hi David,
>>
>> On Thu, Jan 20, 2022 at 8:22 AM David Holmes <david.holmes at oracle.com
>> <mailto:david.holmes at oracle.com>> wrote:
>>
>> Hi Thomas,
>>
>> On 20/01/2022 4:58 pm, Thomas Stüfe wrote:
>> > Hi,
>> >
>> > we have NMT, and NMT can be disabled at build time. It can also
>> be disabled
>> > at runtime. NMT disabling at build time causes INCLUDE_NMT to be
>> false.
>> >
>> > So we have four scenarios:
>> >
>> > 1 nmt disabled at build (minimal VM)
>> > 2 nmt enabled, off
>> > 3 nmt enabled, summary mode
>> > 4 nmt enabled, detail mode
>> >
>> > Removing (1) would simplify code and be one less configuration to
>> test. Do
>> > we really need the ability to exclude NMT from build? We have
>> other
>> > facilities which are not strictly necessary either but which we
>> cannot
>> > disable, e.g. UL. So it feels a bit arbitrary to take that much
>> care for
>> > NMT. Was there a reason for that?
>>
>> It comes from the Compact Profiles work in JDK 8 and the
>> MinimalVM. I
>> would not put UL in the same category as NMT as UL is far more
>> generally
>> useful even in a MinimalVM (though UL did not exist in 8).
>>
>>
>> Okay, fair point. I did not know about Compact Profiles.
>>
>> > It only matters for minimal builds, since I don't know any real
>> VM out
>> > there which does not come with NMT.
>> >
>> > NMT comes with a few static data, but those are only a few KB and
>> we could
>> > instead allocate them on demand. NMT is not difficult to port
>> either, which
>> > would be another reason to keep it optional.
>> >
>> > What do you think?
>>
>> I think you always need NMT present for your changes in
>> JDK-8277822 to
>> be valid! :)
>>
>>
>> Well, not necessarily. You lose fences in compact debug builds, but
>> other than that, it still works.
>
> ?? But you removed the os.cpp logic for guarded memory, relying on NMT
> to do that, and NMT may not be present.
>
> David
> -----
>
>>
>> I don't know who, if anyone, uses a minimal VM these days. If the
>> NMT
>> code doesn't add much to the disk or memory footprint then I
>> think we
>> could decide to make it non-optional.
>>
>>
>> Let's hear others. It is not that important.
I like the idea of one less build configuration!
I think we need to hear from Zhengyu (original NMT author) and Aleksey
Shiplev
(he often fixes Minimal build failures). If this idea moves forward to a PR,
then make sure the Build Team is included on the review. There maybe some
unexpected complications there...
Dan
>> I was mainly eyeing the stub interface to MemTracker for
>> INCLUDE_NMT=false, because I routinely forget about that one when
>> changing NMT and then break the minimal build.
>>
>> Thanks, Thomas
>>
>> Cheers,
>> David
>> -----
>>
>> > Thanks, Thomas
>>
More information about the hotspot-runtime-dev
mailing list