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

kmods need to be limited to EL minor release kernel

Details

    • Bug
    • Resolution: Fixed
    • Blocker
    • Lustre 2.10.1, Lustre 2.11.0
    • Lustre 2.10.0
    • None
    • 3
    • 9223372036854775807

    Description

      Now that kmods are being produced, they need to be limited to the kernel of the RHEL minor release they were created for.

      This is because RHEL kernels have a kabi "whitelist".  That means, that only a subset of kernel interfaces are guaranteed to be stable by RHEL's kabi and it's only those interfaces that are put into a kernel's list of "kernel(...) = ..." Provides: and a kmod's Requires:.  This means that a kmod produced for RHEL 7.3 will look compatible with a RHEL 7.4 kernel (because the whitelisted kabi will not have changed across those releases) even though it is not because the Lustre kmods use interfaces that are not on the whitelist and can change from one minor release to another, even though the whitelisted kabi has not changed.

      While Red Hat guarantees that these non-whitelisted interfaces will not change within a minor release (i.e. 7.3 to 7.4) there is no such guarantee across minor releases and in practice they probably almost always change across minor releases so a kmod using non-whitelisted interfaces needs to limit itself to the kernel provided in a RHEL minor release.

      For a kmod produced on a RHEL 7.3 kernel that means adding a Requires: kernel >= 3.10.0-514, kernel <= 3.10.0-514 to the kmod RPM.

      If this is not done, the kmod will install on to a RHEL 7.4 machine, which has an incompatible kernel by default and a compatible kernel (kernel-3.10.0-514*) will not be installed even if it's available in a Yum repo, even though it should be.

      Attachments

        Issue Links

          Activity

            [LU-9731] kmods need to be limited to EL minor release kernel

            John L. Hammond (john.hammond@intel.com) merged in patch https://review.whamcloud.com/28438/
            Subject: LU-9731 Limit work-around to EL7 only
            Project: fs/lustre-release
            Branch: b2_10
            Current Patch Set:
            Commit: 9ea9bc9f870ede585166d32442ba9bd22f653c32

            gerrit Gerrit Updater added a comment - John L. Hammond (john.hammond@intel.com) merged in patch https://review.whamcloud.com/28438/ Subject: LU-9731 Limit work-around to EL7 only Project: fs/lustre-release Branch: b2_10 Current Patch Set: Commit: 9ea9bc9f870ede585166d32442ba9bd22f653c32

            Minh Diep (minh.diep@intel.com) uploaded a new patch: https://review.whamcloud.com/28438
            Subject: LU-9731 Limit work-around to EL7 only
            Project: fs/lustre-release
            Branch: b2_10
            Current Patch Set: 1
            Commit: 0c82f83e5ec50507c0ebc586e968abdb7f352c93

            gerrit Gerrit Updater added a comment - Minh Diep (minh.diep@intel.com) uploaded a new patch: https://review.whamcloud.com/28438 Subject: LU-9731 Limit work-around to EL7 only Project: fs/lustre-release Branch: b2_10 Current Patch Set: 1 Commit: 0c82f83e5ec50507c0ebc586e968abdb7f352c93
            pjones Peter Jones added a comment -

            Second patch landed for 2.11

            pjones Peter Jones added a comment - Second patch landed for 2.11

            Oleg Drokin (oleg.drokin@intel.com) merged in patch https://review.whamcloud.com/28202/
            Subject: LU-9731 Limit work-around to EL7 only
            Project: fs/lustre-release
            Branch: master
            Current Patch Set:
            Commit: 950c511276866efb6af8defe49213fd69b8883d2

            gerrit Gerrit Updater added a comment - Oleg Drokin (oleg.drokin@intel.com) merged in patch https://review.whamcloud.com/28202/ Subject: LU-9731 Limit work-around to EL7 only Project: fs/lustre-release Branch: master Current Patch Set: Commit: 950c511276866efb6af8defe49213fd69b8883d2

            That way the extra Requires would be in all RHEL builds, not just RHEL7

            This problem has only been confirmed on EL 7 (so far) so applying it to EL 6 might be inappropriate.

            Fencing the fix off into the distro-specific lbuild file might not be horrible though.

            brian Brian Murrell (Inactive) added a comment - That way the extra Requires would be in all RHEL builds, not just RHEL7 This problem has only been confirmed on EL 7 (so far) so applying it to EL 6 might be inappropriate. Fencing the fix off into the distro-specific lbuild file might not be horrible though.

            Interesting that the sles12sp2 test run didn't fail to install the client RPMs because of this.

            Unless called for in Test-Parameters I don't think any SLES test runs are done routinely. For sure not in review tests.

            While I think this additional mod will fix the problem I wonder if it might be more well structured to push the lines putting in extra Requires into a function in lbuild-rhel and then in lbuild call that function if it exists. That way the extra Requires would be in all RHEL builds, not just RHEL7 and would still be left out of non-RHEL builds.

            bogl Bob Glossman (Inactive) added a comment - Interesting that the sles12sp2 test run didn't fail to install the client RPMs because of this. Unless called for in Test-Parameters I don't think any SLES test runs are done routinely. For sure not in review tests. While I think this additional mod will fix the problem I wonder if it might be more well structured to push the lines putting in extra Requires into a function in lbuild-rhel and then in lbuild call that function if it exists. That way the extra Requires would be in all RHEL builds, not just RHEL7 and would still be left out of non-RHEL builds.

            Brian J. Murrell (brian.murrell@intel.com) uploaded a new patch: https://review.whamcloud.com/28202
            Subject: LU-9731 Limit work-around to EL7 only
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: 83952af84f928fb0289744c61fbe215e56bf32d6

            gerrit Gerrit Updater added a comment - Brian J. Murrell (brian.murrell@intel.com) uploaded a new patch: https://review.whamcloud.com/28202 Subject: LU-9731 Limit work-around to EL7 only Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: 83952af84f928fb0289744c61fbe215e56bf32d6

            Interesting that the sles12sp2 test run didn't fail to install the client RPMs because of this.

            Given that this patch is specifically to work around a bug in RHEL's kmod building macro, it should probably be limited to RHEL kmod building only.  I'll push a patch for that.

            brian Brian Murrell (Inactive) added a comment - Interesting that the sles12sp2 test run didn't fail to install the client RPMs because of this. Given that this patch is specifically to work around a bug in RHEL's kmod building macro, it should probably be limited to RHEL kmod building only.  I'll push a patch for that.
            bogl Bob Glossman (Inactive) added a comment - - edited

            I think this change mangles the Required strings on SLES. For example in build of current master for sles12sp2 where the kernel version is 4.4.59-92.17 the Requires in the built lustre-client-kmp-default package has:
            kernel >= 4.4.59-0
            kernel < 4.4.59-1

            while the kernel-default for the pristine unpatched upstream kernel has a Provides of:

            kernel = 4.4.59-92.17

            Don't see how these can properly match for the purposes of install dependencies.

            bogl Bob Glossman (Inactive) added a comment - - edited I think this change mangles the Required strings on SLES. For example in build of current master for sles12sp2 where the kernel version is 4.4.59-92.17 the Requires in the built lustre-client-kmp-default package has: kernel >= 4.4.59-0 kernel < 4.4.59-1 while the kernel-default for the pristine unpatched upstream kernel has a Provides of: kernel = 4.4.59-92.17 Don't see how these can properly match for the purposes of install dependencies.

            Oleg Drokin (oleg.drokin@intel.com) merged in patch https://review.whamcloud.com/28066/
            Subject: LU-9731 kmods need to be limited to EL minor release kernel
            Project: fs/lustre-release
            Branch: master
            Current Patch Set:
            Commit: 527b2cd8e593b52326519d13418daf34b6b53b0e

            gerrit Gerrit Updater added a comment - Oleg Drokin (oleg.drokin@intel.com) merged in patch https://review.whamcloud.com/28066/ Subject: LU-9731 kmods need to be limited to EL minor release kernel Project: fs/lustre-release Branch: master Current Patch Set: Commit: 527b2cd8e593b52326519d13418daf34b6b53b0e

            People

              brian Brian Murrell (Inactive)
              brian Brian Murrell (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              11 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: