RFR: 8239129: Use DAX in ZGC
Yasumasa Suenaga
suenaga at oss.nttdata.com
Mon Feb 17 04:05:45 UTC 2020
Hi,
I filed this enhancement to JBS:
JBS: https://bugs.openjdk.java.net/browse/JDK-8239129
CSR: https://bugs.openjdk.java.net/browse/JDK-8239130
webrev: http://cr.openjdk.java.net/~ysuenaga/JDK-8239129/webrev.00/
Could you review this change and CSR?
It passed tests on submit repo (mach5-one-ysuenaga-JDK-8239129-20200217-0213-8777205).
Thanks,
Yasumasa
On 2020/02/15 2:08, Per Liden wrote:
> Hi,
>
> On 2/14/20 3:23 PM, Yasumasa Suenaga wrote:
>> On 2020/02/14 23:08, Per Liden wrote:
>>> Hi,
>>>
>>> On 2/14/20 2:31 PM, Yasumasa Suenaga wrote:
>>>> Hi Per,
>>>>
>>>> On 2020/02/14 20:52, Per Liden wrote:
>>>>> Hi Yasumasa,
>>>>>
>>>>> On 2/14/20 10:07 AM, Yasumasa Suenaga wrote:
>>>>>> Hi all,
>>>>>>
>>>>>> I tried to allocate heap to DAX on Linux with -XX:AllocateHeapAt, but it couldn't.
>>>>>> It seems to allow when filesystem is hugetlbfs or tmpfs.
>>>>>>
>>>>>> According to kernel document [1], DAX is supported in ext2, ext4, and xfs.
>>>>>> Also we need to mount it with "-o dax".
>>>>>>
>>>>>> I want to use ZGC on DAX, so I want to introduce new option -XX:ZAllowHeapOnFileSystem to allow to use all filesystem as backing storage.
>>>>>> What do you think this change?
>>>>>
>>>>>
>>>>> + experimental(bool, ZAllowHeapOnFileSystem, false, \
>>>>> + "Allow to use filesystem as Java heap backing storage " \
>>>>> + "specified by -XX:AllocateHeapAt") \
>>>>> + \
>>>>>
>>>>> Instead of adding a new option it would be preferable to automatically detect that it's a dax mounted filesystem. But I haven't has a chance to look into the best way of doing that.
>>>>
>>>> I thought so, but I guess it is difficult.
>>>> PMDK also does not check it automatically.
>>>>
>>>> https://urldefense.com/v3/__https://github.com/pmem/pmdk/blob/master/src/libpmem2/pmem2_utils_linux.c*L18__;Iw!!GqivPVa7Brio!PlQs19bQVBJF7PDA9RLZ9JLbXOQ2KYocNW6DJH-eOUqXZcYwl-cSvSjpfC316y0$
>>>> In addition, we don't seem to be able to get mount option ("-o dax") via syscall.
>>>> I strace'ed `mount -o dax ...`, I saw "-o dax" was passed to 5th argument (const void *data). It would be handled in each filesystem, so I could not get it.
>>>>
>>>> Another solution, we can use /proc/mounts, but it might be complex.
>>>
>>> I was maybe hoping you could get this information through some ioctl() command on the file descriptor?
>>
>> I tried to FS_IOC_FSGETXATTR ioctl (FS_XFLAG_DAX might be set in fsx_xflags), but I couldn't get.
>> (I use ext4 with "-o dax")
>
>
> Ok. It would be good to get to the bottom of why it's not set.
>
> cheers,
> Per
More information about the hotspot-gc-dev
mailing list