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

top_trans_create() can oom due to the gfp flags

Details

    • Bug
    • Resolution: Fixed
    • Major
    • Lustre 2.16.0
    • None
    • 3
    • 9223372036854775807

    Description

      top_trans_create() requests __GFP_IO memory allocation,
      which does not allow direct reclaim. However, if the
      memory shortage is temporary, direct reclaim is reasonable.

      GFP_NOFS is __GFP_IO with some additional reclaim bits.

      Attachments

        Activity

          [LU-16609] top_trans_create() can oom due to the gfp flags
          cfaber Colin Faber made changes -
          Link New: This issue is related to DDN-4349 [ DDN-4349 ]
          adilger Andreas Dilger made changes -
          Link New: This issue is related to DDN-4071 [ DDN-4071 ]
          pjones Peter Jones made changes -
          Fix Version/s New: Lustre 2.16.0 [ 15190 ]
          Resolution New: Fixed [ 1 ]
          Status Original: Open [ 1 ] New: Resolved [ 5 ]
          pjones Peter Jones added a comment -

          Landed for 2.16

          pjones Peter Jones added a comment - Landed for 2.16

          "Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/c/fs/lustre-release/+/50176/
          Subject: LU-16609 target: top_trans_create cannot alloc memory
          Project: fs/lustre-release
          Branch: master
          Current Patch Set:
          Commit: 9d1f8f1e3557ee3349c623f4f5596df44f60b082

          gerrit Gerrit Updater added a comment - "Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/c/fs/lustre-release/+/50176/ Subject: LU-16609 target: top_trans_create cannot alloc memory Project: fs/lustre-release Branch: master Current Patch Set: Commit: 9d1f8f1e3557ee3349c623f4f5596df44f60b082
          panda Andrew Perepechko added a comment - - edited

          __GFP_IO alone does not make sense because this bit is only used by the memory reclaimer, so we need explicitly to specify that we want memory reclaim (bound by __GFP_IO, of course):

           

          #define GFP_NOFS        (__GFP_RECLAIM | __GFP_IO)

          #define __GFP_RECLAIM ((force gfp_t)(_GFP_DIRECT_RECLAIM|_GFP_KSWAPD_RECLAIM))

          panda Andrew Perepechko added a comment - - edited __GFP_IO alone does not make sense because this bit is only used by the memory reclaimer, so we need explicitly to specify that we want memory reclaim (bound by __GFP_IO, of course):   #define GFP_NOFS        (__GFP_RECLAIM | __GFP_IO) #define __GFP_RECLAIM ((force gfp_t)(_GFP_DIRECT_RECLAIM|_GFP_KSWAPD_RECLAIM))
          panda Andrew Perepechko made changes -
          Labels New: patch

          "Andrew Perepechko <andrew.perepechko@hpe.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/50176
          Subject: LU-16609 target: top_trans_create cannot alloc memory
          Project: fs/lustre-release
          Branch: master
          Current Patch Set: 1
          Commit: 909bf5257eb33fe45071cf52f7a00ccf3fb72e12

          gerrit Gerrit Updater added a comment - "Andrew Perepechko <andrew.perepechko@hpe.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/50176 Subject: LU-16609 target: top_trans_create cannot alloc memory Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: 909bf5257eb33fe45071cf52f7a00ccf3fb72e12
          panda Andrew Perepechko created issue -

          People

            panda Andrew Perepechko
            panda Andrew Perepechko
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: