Details
-
Improvement
-
Resolution: Fixed
-
Minor
-
Lustre 2.7.0
-
arm64
-
9223372036854775807
Description
Expand lustre to support the ARM64 platform.
A first patch will be submitted shortly to enable basic compilation:
- the architecture is reported as aarch64 so add that support to lustre-build-linux.m4,
- for the Red Hat/Fedora packaging, strip the aarch64 suffix for the required kernel,
- add definitions for lstat_t, lstat_f, fstat_f and fstatat_f for aarch64 architecture in lustre/include/lustre/lustre_user.h.
Moreover, the SYS_chown syscall is not available on arm64 (because as __ARCH_WANT_SYSCALL_NO_AT is not defined, __NR_chown is not defined in /usr/include/asm-generic/unistd.h). So the following call in lustre/utils/liblustreapi.c must be modified:
/* libc chown() will do extra check, and if the real owner is
- the same as the ones to set, it won't fall into kernel, so
- invoke syscall directly. */
rc = syscall(SYS_chown, path, -1, -1);
This leaves several options:
- the code dates back to 2007, glibc has evolved since then and it can be replaced with `chown()`.
- replace it with `syscall(SYS_openat, ...)` and `syscall(SYS_fchownat, ...)`.
- add `#ifdef _aarch64_` and a call to `chown()`.
Does someone more qualified have an opinion?
Aurelien
It is still possible for this patch to make 2.8. The FixVersion change reflects that code freeze is approaching and the remaining fix is not critical to include. As I understand it, communication has been sent directly to CEA outside of this ticket about this remaining patch. As you have sent me a note directly, let's work out these details on that thread and then re-post hear when we have reached a conclusion.
Thanks
Peter