Use DAX in ZGC

Per Liden per.liden at oracle.com
Fri Feb 14 17:08:59 UTC 2020


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