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

Lustre 2.12.3 patchless is broken with newest el7.7 kernel

    XMLWordPrintable

Details

    • Bug
    • Resolution: Won't Fix
    • Major
    • None
    • Lustre 2.12.3
    • None
    • 3
    • 9223372036854775807

    Description

      3.10.0-1062.4.1.el7 has incompatibilities that ldiskfs and osd-ldiskfs relay on.

      # rpm -q kmod-lustre-osd-ldiskfs
      kmod-lustre-osd-ldiskfs-2.12.3-1.el7.x86_64
      # rpm -ql kmod-lustre-osd-ldiskfs|weak-modules --add-modules --no-initramfs --verbose
      weak module for ldiskfs.ko already exists for kernel 3.10.0-1062.1.2.el7.x86_64, update case?
      weak module for osd_ldiskfs.ko already exists for kernel 3.10.0-1062.1.2.el7.x86_64, update case?
      Module ldiskfs.ko from kernel 3.10.0-1062.1.1.el7.x86_64 is compatible with kernel 3.10.0-1062.1.2.el7.x86_64
      Module osd_ldiskfs.ko from kernel 3.10.0-1062.1.1.el7.x86_64 is compatible with kernel 3.10.0-1062.1.2.el7.x86_64
      Module ldiskfs.ko from kernel 3.10.0-1062.1.1.el7.x86_64 is not compatible with kernel 3.10.0-1062.4.1.el7.x86_64 in symbols:  dax_iomap_rw dax_iomap_fault iomap_seek_hole iomap_zero_range iomap_seek_data
      Module osd_ldiskfs.ko from kernel 3.10.0-1062.1.1.el7.x86_64 is not compatible with kernel 3.10.0-1062.4.1.el7.x86_64 in symbols:  ...
      Falling back weak-modules state for kernel 3.10.0-1062.4.1.el7.x86_64

      ldiskfs is requried for osd-zfs and it fails with with several altered iomap functions:

      # rpm -q --provides kernel-3.10.0-1062.1.2.el7.x86_64|grep iomap
      kernel(dax_iomap_fault) = 0x0b902321
      kernel(dax_iomap_rw) = 0x37eef37b
      kernel(iomap_fiemap) = 0xfa2ed623
      kernel(iomap_file_buffered_write) = 0x628c917c
      kernel(iomap_file_dirty) = 0x9e200d1b
      kernel(iomap_page_mkwrite) = 0xbbe2a625
      kernel(iomap_seek_data) = 0xb5ddb7af
      kernel(iomap_seek_hole) = 0xa20591eb
      kernel(iomap_truncate_page) = 0xf593898a
      kernel(iomap_zero_range) = 0x1af83d54 

      Notice the differences with the newer kernel:

      # rpm -q --provides kernel-3.10.0-1062.4.1.el7.x86_64|grep iomap
      kernel(dax_iomap_fault) = 0x11edac64
      kernel(dax_iomap_rw) = 0xda44c989
      kernel(iomap_fiemap) = 0x76136597
      kernel(iomap_file_buffered_write) = 0xbd2b25bb
      kernel(iomap_file_dirty) = 0xfaab4451
      kernel(iomap_page_mkwrite) = 0xf7ffaaec
      kernel(iomap_seek_data) = 0xb9e7cdbe
      kernel(iomap_seek_hole) = 0x3e7c77ea
      kernel(iomap_truncate_page) = 0x0f79ea91
      kernel(iomap_zero_range) = 0x52e02a8e 

       

      I believe this is due to iomap changes in 3.10.0-1062.3.1 (from rpm -q --changelog):

      * Mon Sep 16 2019 Bruno Meneguele <bmeneg@redhat.com> [3.10.0-1062.3.1.el7]
      ...
      - [fs] iomap: fix page_done callback for short writes (Andreas Grunbacher) [1737373 1724362]
      - [fs] fs: fold __generic_write_end back into generic_write_end (Andreas Grunbacher) [1737373 1724362]
      - [fs] iomap: don't mark the inode dirty in iomap_write_end (Andreas Grunbacher) [1737373 1724362]
      - [fs] gfs2: Fix iomap write page reclaim deadlock (Andreas Grunbacher) [1737373 1724362]
      - [fs] iomap: Add a page_prepare callback (Andreas Grunbacher) [1737373 1724362]
      - [fs] iomap: Fix use-after-free error in page_done callback (Andreas Grunbacher) [1737373 1724362]
      - [fs] fs: Turn __generic_write_end into a void function (Andreas Grunbacher) [1737373 1724362]
      - [fs] iomap: Clean up __generic_write_end calling (Andreas Grunbacher) [1737373 1724362] 

      Attachments

        Issue Links

          Activity

            People

              wc-triage WC Triage
              utopiabound Nathaniel Clark
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: