RFR(M): 8204965: Fix '--disable-cds' and disable CDS on AIX by default (original) (raw)
Volker Simonis volker.simonis at gmail.com
Fri Jun 15 08:05:01 UTC 2018
- Previous message (by thread): RFR(M): 8204965: Fix '--disable-cds' and disable CDS on AIX by default
- Next message (by thread): RFR(M): 8204965: Fix '--disable-cds' and disable CDS on AIX by default
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Thu, Jun 14, 2018 at 9:04 PM, Thomas Stüfe <thomas.stuefe at gmail.com> wrote:
Hi Volker,
http://cr.openjdk.java.net/~simonis/webrevs/2018/8204965/make/autoconf/hotspot.m4.udiff.html Seems like a roundabout way to have a platform specific default value. Why not determine a default value beforehand: if test "x$OPENJDKTARGETOS" = "xaix"; then ENABLECDSDEFAULT="false" else ENABLECDSDEFAULT=true" fi ACARGENABLE([cds], [ASHELPSTRING([--enable-cds@<:@=yes/no/auto@:>@], [enable class data sharing feature in non-minimal VM. Default is ${ENABLECDSDEFAULT}.])]) and so on?
I've just followed the pattern used for '--enable-aot' right above the code I changed.
Moreover, I don't think that we would save any code because we would still have to check for AIX in the '--enable-cds=yes' case. Also, the new reporting added later in the file (see "AC_MSG_CHECKING([if cds should be enabled])" seems easier to me without the extra default value. So if you don't mind I'd prefer to leave it as is.
See also what we did for "8202325: [aix] disable warnings-as-errors by default".
-- http://cr.openjdk.java.net/~simonis/webrevs/2018/8204965/src/hotspot/share/classfile/javaClasses.cpp.udiff.html Here, do we really need to exclude this from compiling, DumpSharedSpaces = false is not enough?
Yes, we need it because the excluded code references methods (e.g. 'StringTable::create_archived_string()') which are not compiled into libjvm.so if we disable CDS.
Best Regards, Thomas On Thu, Jun 14, 2018 at 4:26 PM, Volker Simonis <volker.simonis at gmail.com> wrote: Hi,
can I please have a review for the following fix: http://cr.openjdk.java.net/~simonis/webrevs/2018/8204965/ https://bugs.openjdk.java.net/browse/JDK-8204965 CDS does currently not work on AIX because of the way how we reserve/commit memory on AIX. The problem is that we're using a combination of shmat/mmap depending on the page size and the size of the memory chunk to reserve. This makes it impossible to reliably reserve the memory for the CDS archive and later on map the various parts of the archive into these regions. In order to fix this we would have to completely rework the memory reserve/commit/uncommit logic on AIX which is currently out of our scope because of resource limitations. Unfortunately, I could not simply disable CDS in the configure step because some of the shared code apparently relies on parts of the CDS code which gets excluded from the build when CDS is disabled. So I also fixed the offending parts in hotspot and cleaned up the configure logic for CDS. Thank you and best regards, Volker PS: I did run the job through the submit forest (mach5-one-simonis-JDK-8204965-20180613-1946-26349) but the results weren't really useful because they mention build failures on linux-x64 which I can't reproduce locally.
- Previous message (by thread): RFR(M): 8204965: Fix '--disable-cds' and disable CDS on AIX by default
- Next message (by thread): RFR(M): 8204965: Fix '--disable-cds' and disable CDS on AIX by default
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]