Details

    • Improvement
    • Resolution: Fixed
    • Minor
    • Lustre 2.15.0
    • None
    • None
    • 9223372036854775807

    Description

      Main changes needed to support Linux kernel 5.14 include:

      • __set_page_dirty() is no longer exported
      • idmapped mounts support, which adds 'struct user_namespace *' to all VFS operations (since kernel 5.12)
      • '/* fallthrough */' hits implicit-fallthrough error with gcc version 11. Using the pseudo keyword 'fallthrough' to resolve the issue
      • needs to import namespace CRYPTO_INTERNAL (since kernel 5.12)

      Attachments

        Issue Links

          Activity

            [LU-15220] Linux kernel 5.14 support

            "Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/45812/
            Subject: LU-15220 libcfs: fix panic_notifier_list undeclared error
            Project: fs/lustre-release
            Branch: master
            Current Patch Set:
            Commit: fb545fa83837c1478ad41f752cf5d3e313b67c73

            gerrit Gerrit Updater added a comment - "Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/45812/ Subject: LU-15220 libcfs: fix panic_notifier_list undeclared error Project: fs/lustre-release Branch: master Current Patch Set: Commit: fb545fa83837c1478ad41f752cf5d3e313b67c73

            "Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/45927/
            Subject: LU-15220 llite: Compat for set_pagevec_dirty
            Project: fs/lustre-release
            Branch: master
            Current Patch Set:
            Commit: 8fdef1381ea07657d6689818b2897d69cb7e9c83

            gerrit Gerrit Updater added a comment - "Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/45927/ Subject: LU-15220 llite: Compat for set_pagevec_dirty Project: fs/lustre-release Branch: master Current Patch Set: Commit: 8fdef1381ea07657d6689818b2897d69cb7e9c83
            yujian Jian Yu added a comment -

            Hi Ihara,
            Please apply all of the un-merged patches in this ticket and those in LU-14651.

            yujian Jian Yu added a comment - Hi Ihara, Please apply all of the un-merged patches in this ticket and those in LU-14651 .

            yujian does head of https://review.whamcloud.com/#/c/45566/ contain all considerations of linux-5.14?
            I'm trying to build patch 45566 against 5.14.0-1018-oem (Ubuntu20.04), but still getting bunch of errors.

            sihara Shuichi Ihara added a comment - yujian does head of https://review.whamcloud.com/#/c/45566/ contain all considerations of linux-5.14? I'm trying to build patch 45566 against 5.14.0-1018-oem (Ubuntu20.04), but still getting bunch of errors.

            "Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/45814/
            Subject: LU-15220 utils: fix gcc-11 -Werror=mismatched-dealloc error
            Project: fs/lustre-release
            Branch: master
            Current Patch Set:
            Commit: 64ba2b18349b56c5d7ade944ea713bade84bc02e

            gerrit Gerrit Updater added a comment - "Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/45814/ Subject: LU-15220 utils: fix gcc-11 -Werror=mismatched-dealloc error Project: fs/lustre-release Branch: master Current Patch Set: Commit: 64ba2b18349b56c5d7ade944ea713bade84bc02e
            yujian Jian Yu added a comment -

            Sure, Patrick. Thank you.

            yujian Jian Yu added a comment - Sure, Patrick. Thank you.

            Jian,

            Can you take that patch and test it on the newer kernels?  I don't have the right environments available.  Thanks!

            paf0186 Patrick Farrell added a comment - Jian, Can you take that patch and test it on the newer kernels?  I don't have the right environments available.  Thanks!

            "Patrick Farrell <pfarrell@whamcloud.com>" uploaded a new patch: https://review.whamcloud.com/45927
            Subject: LU-15220 llite: Compat for set_pagevec_dirty
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: 3757b2168e7670d513270427634324695e5ec6d4

            gerrit Gerrit Updater added a comment - "Patrick Farrell <pfarrell@whamcloud.com>" uploaded a new patch: https://review.whamcloud.com/45927 Subject: LU-15220 llite: Compat for set_pagevec_dirty Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: 3757b2168e7670d513270427634324695e5ec6d4

            Jian,

            Oof, this is actually pretty complicated.

            I see Neil changed the code here with https://review.whamcloud.com/#/c/40827/ .  That basically makes this function pointless in these kernels - the entire point is to avoid taking the xarray lock for each page...  Hmm.

            OK, here is my suggested solution for compatibility, since we have already lost the desired xarray lock behavior.  I will look at restoring that, but in the meantime:

            For kernels which do not have account_page_dirtied, which should also include kernels which do not have __set_page_dirty, the right thing to do is replace all of the code in vvp_set_pagevec_dirty with a loop calling __set_page_dirty_nobuffers on the pages in the pagevec.

            paf0186 Patrick Farrell added a comment - Jian, Oof, this is actually pretty complicated. I see Neil changed the code here with https://review.whamcloud.com/#/c/40827/ .  That basically makes this function pointless in these kernels - the entire point is to avoid taking the xarray lock for each page...  Hmm. OK, here is my suggested solution for compatibility, since we have already lost the desired xarray lock behavior.  I will look at restoring that, but in the meantime: For kernels which do not have account_page_dirtied, which should also include kernels which do not have __set_page_dirty, the right thing to do is replace all of the code in vvp_set_pagevec_dirty with a loop calling __set_page_dirty_nobuffers on the pages in the pagevec.

            "Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/45815/
            Subject: LU-15220 utils: fix gcc-11 -Werror=format-truncation= error
            Project: fs/lustre-release
            Branch: master
            Current Patch Set:
            Commit: 9b0b7264a8d7a6a2abe681d15fefc88c27d20c1e

            gerrit Gerrit Updater added a comment - "Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/45815/ Subject: LU-15220 utils: fix gcc-11 -Werror=format-truncation= error Project: fs/lustre-release Branch: master Current Patch Set: Commit: 9b0b7264a8d7a6a2abe681d15fefc88c27d20c1e
            yujian Jian Yu added a comment -

            Hi Patrick,
            In kernel 5.14.0, __set_page_dirty() is no longer exported, which affects ll_account_page_dirtied()/vvp_account_page_dirtied() in lustre/llite/vvp_dev.c.
            Copying the codes from __set_page_dirty() doesn't work because the account_page_dirtied() in it is also not exported.
            Could you please advise how to resolve this issue? Can we use _set_page_dirty_nobuffers() instead of _set_page_dirty()?

            yujian Jian Yu added a comment - Hi Patrick, In kernel 5.14.0, __set_page_dirty() is no longer exported, which affects ll_account_page_dirtied()/vvp_account_page_dirtied() in lustre/llite/vvp_dev.c. Copying the codes from __set_page_dirty() doesn't work because the account_page_dirtied() in it is also not exported. Could you please advise how to resolve this issue? Can we use _set_page_dirty_nobuffers() instead of _set_page_dirty()?

            People

              yujian Jian Yu
              yujian Jian Yu
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: