RFR: 8207851 JEP Draft: Support ByteBuffer mapped over non-volatile memory
Andrew Dinn
adinn at redhat.com
Fri Jul 27 07:39:19 UTC 2018
On 26/07/18 20:05, Florian Weimer wrote:
> * Andrew Dinn:
>
>>> + // TODO - remove the following defines
>>> + // for testing we need to define the extra MAP_XXX flags used for
>>> + // persistent memory. they will eventually get defined by the
>>> + // system and included via sys/mman.h
>>>
>>> Do you really want to change implementation behavior based on which
>>> glibc headers (or kernel headers) were used to build the JDK? It's
>>> likely more appropriate to define the constants yourself if they are
>>> not available. There is some architecture variance for the MAP_*
>>> constants, but in case of MAP_SHARED_VALIDATE, even HPPA has the same
>>> definition.
>>
>> No, I guess I don't really want to change implementation behaviour based
>> on which glibc headers (or kernel headers) were used to build the JDK.
>> So, I think I need to modify this so the constants are always defined by
>> FileChannelImpl.c
>>
>> I have followed the Intel libpmem code in defining the values for these
>> constants. Can you provide details of the 'architecture variance' you
>> refer to above?
>
> Just a quick note on that: Some of the constants in <sys/mman.h> vary
> between the Linux architectures for historic reasons. However, for
> MAP_SHARED_VALIDATE, the constant is consistent across all
> architectures supported by glibc and in the mainline kernel.
>
> You could add something like this to be on the safe side:
>
> #ifdef MAP_SHARED_VALIDATE
> #if MAP_SHARED_VALIDATE != 3
> #error Unexpected value for MAP_SHARED_VALIDATE
> #endif
> #else /* !MAP_SHARED_VALIDATE */
> #define MAP_SHARED_VALIDATE 3
> #endif
>
> But I doubt that this is required for this constant.
Thanks for the update, Florian. I agree that the above tweak is
unnecessary at present -- given that the current code is targeted at
Linux on x86_64 and AArch64 where a change is extremely unlikely. That
decision may need revisiting if/when the implementation is extended to
other ports.
regards,
Andrew Dinn
-----------
Senior Principal Software Engineer
Red Hat UK Ltd
Registered in England and Wales under Company Registration No. 03798903
Directors: Michael Cunningham, Michael ("Mike") O'Neill, Eric Shander
More information about the core-libs-dev
mailing list