Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-6766

add support for arm64

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Fixed
    • Minor
    • Lustre 2.8.0
    • 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?

      Attachments

        Issue Links

          Activity

            People

              wc-triage WC Triage
              aguignard Arnaud Guignard
              Votes:
              0 Vote for this issue
              Watchers:
              11 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: