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

Regression from LU-8057 causes loading of fld.ko hung in 2.7.2

Details

    • Bug
    • Resolution: Cannot Reproduce
    • Critical
    • None
    • Lustre 2.7.0
    • None
    • lustre server nas-2.7.2-3nasS running in centos 6.7.
    • 3
    • 9223372036854775807

    Description

      Since our nas-2.7.2-2nas rebased to b2_7_fe to nas-2.7.2-3nas, we found loading lustre module fld.ko hanged. Modprobe took 100% cpu time and could not be killed.

      I identified the culprit of the problem using git bisect:
      commit f23e22da88f07e95071ec76807aaa42ecd39e8ca
      Author: Amitoj Kaur Chawla <amitoj1606@gmail.com>
      Date: Thu Jun 16 23:12:03 2016 +0800

      LU-8057 ko2iblnd: Replace sg++ with sg = sg_next(sg)

      It was a b2_7_fe back port from the following one:
      Lustre-commit: d226464acaacccd240da43dcc22372fbf8cb04a6
      Lustre-change: http://review.whamcloud.com/19342

      Attachments

        Issue Links

          Activity

            [LU-8715] Regression from LU-8057 causes loading of fld.ko hung in 2.7.2
            pjones Peter Jones added a comment -

            ok thanks!

            pjones Peter Jones added a comment - ok thanks!

            This case can be closed. Thanks.

            jaylan Jay Lan (Inactive) added a comment - This case can be closed. Thanks.

            Is this still a problem

             

            simmonsja James A Simmons added a comment - Is this still a problem  

            Yes, sorry about that. LU-8057 is what I was referring to.

            doug Doug Oucharek (Inactive) added a comment - Yes, sorry about that. LU-8057 is what I was referring to.

            Doug,

            You wrote in previous commet:
            " If this needs to be fixed quickly, then removing LU-8085 from your build will be the best approach. As ORNL needs LU-8085, we cannot remove it from master."

            Did you actually mean to write "LU-8057"? We do not have LU-8057 in our git repo...

            jaylan Jay Lan (Inactive) added a comment - Doug, You wrote in previous commet: " If this needs to be fixed quickly, then removing LU-8085 from your build will be the best approach. As ORNL needs LU-8085 , we cannot remove it from master." Did you actually mean to write " LU-8057 "? We do not have LU-8057 in our git repo...

            As best we can figure out, the change in LU-8057 has causes a little more memory to be used per connection. That is pushing your system over the edge.

            As James has indicated, a proper fix will be to change how to allocate memory in LNet. That is going to take some time to get right as the potential to break all of LNet is pretty good.

            I don't believe the fix for LU-8057 is critical for your setup. If this needs to be fixed quickly, then removing LU-8085 from your build will be the best approach. As ORNL needs LU-8085, we cannot remove it from master.

            doug Doug Oucharek (Inactive) added a comment - As best we can figure out, the change in LU-8057 has causes a little more memory to be used per connection. That is pushing your system over the edge. As James has indicated, a proper fix will be to change how to allocate memory in LNet. That is going to take some time to get right as the potential to break all of LNet is pretty good. I don't believe the fix for LU-8057 is critical for your setup. If this needs to be fixed quickly, then removing LU-8085 from your build will be the best approach. As ORNL needs LU-8085 , we cannot remove it from master.

            Any updates?

            mhanafi Mahmoud Hanafi added a comment - Any updates?

            Why not. The problem is the LIBCFS_ALLOC and FREE macros. Looking at the macros gave me a headache so no patch from me. I need to get into the right mental state to tackle it

            simmonsja James A Simmons added a comment - Why not. The problem is the LIBCFS_ALLOC and FREE macros. Looking at the macros gave me a headache so no patch from me. I need to get into the right mental state to tackle it

            James, can we do that fix under this ticket?

            doug Doug Oucharek (Inactive) added a comment - James, can we do that fix under this ticket?

            I know exactly what your problem is. We saw this problem in the lustre core some time ago and changed the OBD_ALLOC macros. The libcfs/LNet layer uses it own LIBCFS_ALLOC macros which means when the allocations are more than 2 pages in size they hit the vmalloc spinlock serialization issue. We need a fix for libcfs much like lustre had.

            simmonsja James A Simmons added a comment - I know exactly what your problem is. We saw this problem in the lustre core some time ago and changed the OBD_ALLOC macros. The libcfs/LNet layer uses it own LIBCFS_ALLOC macros which means when the allocations are more than 2 pages in size they hit the vmalloc spinlock serialization issue. We need a fix for libcfs much like lustre had.

            People

              ashehata Amir Shehata (Inactive)
              jaylan Jay Lan (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: