Support for -XX:AllocateHeapAt on ZFS?
Stephanie Bergmann
stephaniebergmann29 at gmail.com
Sun Sep 28 16:00:50 UTC 2025
OPT OUT
Am Mo., 30. Juni 2025 um 16:19 Uhr schrieb Harald Eilertsen
<harald+jdklists at volse.no>:
>
> Hi everyone,
>
> I tried asking this on the freebsd-java list too, but did not get a
> response, so trying here instead:
>
> The code backing the `-XX:AllocateHeapAt=path` option to java calls the
> function posix_fallocate on most systems to reserve the space for the
> file in the file system. This will fail and return `EINVAL` if the
> underlying file system does not support the operation.
>
> On FreeBSD this is particularly relevant because the commonly used ZFS
> file system does not support this operation.
>
> For rationale see:
> https://freebsd-current.freebsd.narkive.com/5pbDPeIT/heads-up-posix-fallocate-support-removed-from-zfs-lld-affected
> https://lists.freebsd.org/pipermail/freebsd-current/2018-February/068447.html
>
> On OpenBSD the ftruncate function is used instead, and MacOSX will
> attempt to set the size via fcntl, but falls back to ftruncate if that
> does not work.
>
> To make things even more interesting, the glibc implementation of
> posix_fallocate used on most Linux based systems deviates from the posix
> standard by 'emulating' the feature if not supported by the underlying
> file system.
> https://www.man7.org/linux/man-pages/man3/posix_fallocate.3.html#CAVEATS
>
> My question is: Do we want to keep the strict posix compliance on
> FreeBSD, which in practice means this feature is not supported on ZFS,
> or do we want to be less strict like the other platforms mentioned
> above?
>
> Also, if someone can comment on the rationale for OpenBSD
> implementation, that would also be helpful.
>
> Thanks in advance,
> Harald Eilertsen
More information about the bsd-port-dev
mailing list