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

Dealing with kernels that have lustre enabled already

Details

    • Task
    • Resolution: Duplicate
    • Major
    • None
    • None
    • 15743

    Description

      Now that the kernels that have lustre (from that staging tree at the moment) included grows and distributions that ship it increase, we need to do something about all the problems this creates for us.

      Currently we cannot build our external lustre against such a kernel due to clash in config defines e.g.:

      make[1]: Entering directory `/home/green/bk/x86'
        CC [M]  /home/green/git/lustre-current/libcfs/libcfs/linux/linux-tracefile.o
      In file included from <command-line>:0:0:
      /home/green/git/lustre-current/config.h:26:0: error: "CONFIG_LNET_MAX_PAYLOAD" redefined [-Werror]
       #define CONFIG_LNET_MAX_PAYLOAD LNET_MTU
       ^
      In file included from /home/green/bk/linux/include/linux/kconfig.h:4:0,
                       from <command-line>:0:
      include/generated/autoconf.h:1571:0: note: this is the location of the previous definition
       #define CONFIG_LNET_MAX_PAYLOAD 1048576
       ^
      cc1: all warnings being treated as errors
      

      Once the lustre is moved out of staging tree, another problem will be added - clashing of symbols from lustre includes in the kernel tree (now hidden in secluded staging location so not a problem immediately).

      Once the config symbols clash is resolved - the other problem is the clash in module names between in-kernel lustre and out of kernel lustre. Due to in-kernel implementation mostly being geared towards clients and also lacking our debugging aids and such - these modules are not interchangeable really and we need to do something about it too - possibly consider renaming our out of tree modules? This will become a problem once distributions start to enable lustre by default in their kernels (so not a big problem yet too).

      Finally there are bound to be symbol clashes between in and out-of kernel lustre modules so we need to do something about that too I suspect, but not sure what so far. A wrapper to change the name a bit?

      Attachments

        Issue Links

          Activity

            [LU-5628] Dealing with kernels that have lustre enabled already
            adilger Andreas Dilger made changes -
            Link New: This issue is related to INTL-135 [ INTL-135 ]
            pjones Peter Jones made changes -
            Resolution New: Duplicate [ 3 ]
            Status Original: Reopened [ 4 ] New: Resolved [ 5 ]
            pjones Peter Jones added a comment -

            Fix tracked under LU-7042

            pjones Peter Jones added a comment - Fix tracked under LU-7042
            pjones Peter Jones made changes -
            Resolution Original: Fixed [ 1 ]
            Status Original: Resolved [ 5 ] New: Reopened [ 4 ]
            pjones Peter Jones made changes -
            Fix Version/s Original: Lustre 2.8.0 [ 11113 ]
            dmiter Dmitry Eremin (Inactive) made changes -
            Fix Version/s New: Lustre 2.8.0 [ 11113 ]
            Fix Version/s Original: Lustre 2.9.0 [ 11891 ]
            dmiter Dmitry Eremin (Inactive) made changes -
            Fix Version/s New: Lustre 2.9.0 [ 11891 ]
            Resolution New: Fixed [ 1 ]
            Status Original: Open [ 1 ] New: Resolved [ 5 ]

            Patch landed to master.

            dmiter Dmitry Eremin (Inactive) added a comment - Patch landed to master.

            I know DVS from Cray is closed source so no one can help much there. Thinking about it it should be up to the external packages to handle the Module.symvers issue themselves. Better way to handle this is sync up libcfs/lnet upstream with master After patch 16418 lands we can close this ticket.

            simmonsja James A Simmons added a comment - I know DVS from Cray is closed source so no one can help much there. Thinking about it it should be up to the external packages to handle the Module.symvers issue themselves. Better way to handle this is sync up libcfs/lnet upstream with master After patch 16418 lands we can close this ticket.
            • I agree we need to provide Module.symvers for DVS from Cray. But we don't need to modify any file from kernel.
            • I checked the compiled Lustre client for Ubuntu 14.04 works fine and overwrites in-kernel version like OFED package do.

            So, this is additional ticket to provide Module.symvers for external programs that would like to link with our modules. I need more info about those programs. How they link now? What API they use?

            dmiter Dmitry Eremin (Inactive) added a comment - I agree we need to provide Module.symvers for DVS from Cray. But we don't need to modify any file from kernel. I checked the compiled Lustre client for Ubuntu 14.04 works fine and overwrites in-kernel version like OFED package do. So, this is additional ticket to provide Module.symvers for external programs that would like to link with our modules. I need more info about those programs. How they link now? What API they use?

            People

              dmiter Dmitry Eremin (Inactive)
              green Oleg Drokin
              Votes:
              1 Vote for this issue
              Watchers:
              14 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: