Details

    • Improvement
    • Resolution: Fixed
    • Minor
    • Lustre 2.7.0
    • None
    • fc20
    • 13834

    Description

      tracker for 3.14 kernel support

      fc20 recently bumped their kernel version from 3.13.x to 3.14.x
      new build failures are now showing up

      Attachments

        Issue Links

          Activity

            [LU-4993] support for 3.14 linux kernel

            We may very well need a ticket for 3.15 soon. I just saw that fc20 jumped versions overnight from 3.14.x to 3.15.x. Have yet to discover if we need anything extra for 3.15 beyond what we already have in flight for 3.14.

            bogl Bob Glossman (Inactive) added a comment - We may very well need a ticket for 3.15 soon. I just saw that fc20 jumped versions overnight from 3.14.x to 3.15.x. Have yet to discover if we need anything extra for 3.15 beyond what we already have in flight for 3.14.
            bogl Bob Glossman (Inactive) added a comment - - edited

            yes; 3.14.9-200

            bogl Bob Glossman (Inactive) added a comment - - edited yes; 3.14.9-200

            Is this the latest fc20 kernel?

            simmonsja James A Simmons added a comment - Is this the latest fc20 kernel?
            bogl Bob Glossman (Inactive) added a comment - ldiskfs for 3.14: http://review.whamcloud.com/11000

            Perhaps it is time to open a ticket for 3.16 support.

            simmonsja James A Simmons added a comment - Perhaps it is time to open a ticket for 3.16 support.
            bogl Bob Glossman (Inactive) added a comment - - edited

            with the new patch http://review.whamcloud.com/#/c/10995 it's once again possible to do full server builds for 3.14, including ldiskfs. It still requires a bunch of patches in flight and at least one for an ldiskfs patch series for 3.14 that hasn't even been pushed to gerrit yet. I have a working prototype for that on hand, but not exposed publicly yet.

            bogl Bob Glossman (Inactive) added a comment - - edited with the new patch http://review.whamcloud.com/#/c/10995 it's once again possible to do full server builds for 3.14, including ldiskfs. It still requires a bunch of patches in flight and at least one for an ldiskfs patch series for 3.14 that hasn't even been pushed to gerrit yet. I have a working prototype for that on hand, but not exposed publicly yet.
            simmonsja James A Simmons added a comment - http://review.whamcloud.com/#/c/10332 http://review.whamcloud.com/#/c/10995

            http://review.whamcloud.com/#/c/10337 has landed in master, but I think it's only good enough for clients. Strongly suspect there is more server only code that also needs adjustment for the HAVE_BVEC_ITER case. If I try a server build in a 3.14 kernel I see lots of build errors that I think are related:

              CC [M]  /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.o
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c: In function ‘dio_complete_routine’:
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:166:304: error: ‘struct bio’ has no member named ‘bi_idx’
               CERROR("bi_next: %p, bi_flags: %lx, bi_rw: %lu, bi_vcnt: %d, "
                                                                                                                                                                                                                                                                                                                            ^
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:166:317: error: ‘struct bio’ has no member named ‘bi_size’
               CERROR("bi_next: %p, bi_flags: %lx, bi_rw: %lu, bi_vcnt: %d, "
                                                                                                                                                                                                                                                                                                                                         ^
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:24: error: incompatible types when assigning to type ‘int’ from type ‘struct bvec_iter’
                             bio_for_each_segment(bvl, bio, i) {
                                    ^
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:47: error: request for member ‘bi_size’ in something not a structure or union
                             bio_for_each_segment(bvl, bio, i) {
                                                           ^
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:137: error: request for member ‘bi_idx’ in something not a structure or union
                             bio_for_each_segment(bvl, bio, i) {
                                                                                                                                                     ^
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:187: error: request for member ‘bi_size’ in something not a structure or union
                             bio_for_each_segment(bvl, bio, i) {
                                                                                                                                                                                                       ^
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:215: error: request for member ‘bi_size’ in something not a structure or union
                             bio_for_each_segment(bvl, bio, i) {
                                                                                                                                                                                                                                   ^
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:271: error: request for member ‘bi_idx’ in something not a structure or union
                             bio_for_each_segment(bvl, bio, i) {
                                                                                                                                                                                                                                                                                           ^
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:300: error: request for member ‘bi_bvec_done’ in something not a structure or union
                             bio_for_each_segment(bvl, bio, i) {
                                                                                                                                                                                                                                                                                                                        ^
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:362: error: request for member ‘bi_idx’ in something not a structure or union
                             bio_for_each_segment(bvl, bio, i) {
                                                                                                                                                                                                                                                                                                                                                                                      ^
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:391: error: request for member ‘bi_bvec_done’ in something not a structure or union
                             bio_for_each_segment(bvl, bio, i) {
                                                                                                                                                                                                                                                                                                                                                                                                                   ^
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:521: error: request for member ‘bi_idx’ in something not a structure or union
                             bio_for_each_segment(bvl, bio, i) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ^
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:553: error: request for member ‘bi_bvec_done’ in something not a structure or union
                             bio_for_each_segment(bvl, bio, i) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ^
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:572: error: left-hand operand of comma expression has no effect [-Werror=unused-value]
                             bio_for_each_segment(bvl, bio, i) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ^
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:613: error: request for member ‘bv_len’ in something not a structure or union
                             bio_for_each_segment(bvl, bio, i) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ^
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:76: error: passing argument 2 of ‘bio_advance_iter’ from incompatible pointer type [-Werror]
                             bio_for_each_segment(bvl, bio, i) {
                                                                                        ^
            In file included from include/linux/blkdev.h:18:0,
                             from /home/bogl/lustre-release/lustre/include/linux/obd_support.h:63,
                             from /home/bogl/lustre-release/lustre/include/obd_support.h:44,
                             from /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:56:
            include/linux/bio.h:225:60: note: expected ‘struct bvec_iter *’ but argument is of type ‘int *’
             static inline void bio_advance_iter(struct bio *bio, struct bvec_iter *iter,
                                                                        ^
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c: In function ‘can_be_merged’:
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:252:19: error: ‘struct bio’ has no member named ‘bi_size’
                     size = bio->bi_size >> 9;
                               ^
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:253:19: error: ‘struct bio’ has no member named ‘bi_sector’
                     return bio->bi_sector + size == sector ? 1 : 0;
                               ^
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c: In function ‘osd_do_bio’:
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:324:222: error: ‘struct bio’ has no member named ‘bi_size’
                                             CDEBUG(D_INODE, "bio++ sz %d vcnt %d(%d) "
                                                                                                                                                                                                                                          ^
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:324:268: error: ‘struct bio’ has no member named ‘bi_size’
                                             CDEBUG(D_INODE, "bio++ sz %d vcnt %d(%d) "
                                                                                                                                                                                                                                                                                        ^
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:333:59: error: ‘struct bio’ has no member named ‘bi_size’
                                             record_start_io(iobuf, bio->bi_size);
                                                                       ^
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:350:28: error: ‘struct bio’ has no member named ‘bi_sector’
                                     bio->bi_sector = sector;
                                        ^
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:362:43: error: ‘struct bio’ has no member named ‘bi_size’
                             record_start_io(iobuf, bio->bi_size);
                                                       ^
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c: In function ‘can_be_merged’:
            /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:254:1: error: control reaches end of non-void function [-Werror=return-type]
             }
             ^
            cc1: all warnings being treated as errors
            make[6]: *** [/home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.o] Error 1
            make[5]: *** [/home/bogl/lustre-release/lustre/osd-ldiskfs] Error 2
            make[4]: *** [/home/bogl/lustre-release/lustre] Error 2
            make[3]: *** [_module_/home/bogl/lustre-release] Error 2
            make[3]: Leaving directory `/home/bogl/rb/BUILD/kernel-3.14.6.200.l0613'
            make[2]: *** [modules] Error 2
            make[2]: Leaving directory `/home/bogl/lustre-release'
            make[1]: *** [all-recursive] Error 1
            make[1]: Leaving directory `/home/bogl/lustre-release'
            make: *** [all] Error 2
            
            bogl Bob Glossman (Inactive) added a comment - http://review.whamcloud.com/#/c/10337 has landed in master, but I think it's only good enough for clients. Strongly suspect there is more server only code that also needs adjustment for the HAVE_BVEC_ITER case. If I try a server build in a 3.14 kernel I see lots of build errors that I think are related: CC [M] /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.o /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c: In function ‘dio_complete_routine’: /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:166:304: error: ‘struct bio’ has no member named ‘bi_idx’ CERROR("bi_next: %p, bi_flags: %lx, bi_rw: %lu, bi_vcnt: %d, " ^ /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:166:317: error: ‘struct bio’ has no member named ‘bi_size’ CERROR("bi_next: %p, bi_flags: %lx, bi_rw: %lu, bi_vcnt: %d, " ^ /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:24: error: incompatible types when assigning to type ‘int’ from type ‘struct bvec_iter’ bio_for_each_segment(bvl, bio, i) { ^ /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:47: error: request for member ‘bi_size’ in something not a structure or union bio_for_each_segment(bvl, bio, i) { ^ /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:137: error: request for member ‘bi_idx’ in something not a structure or union bio_for_each_segment(bvl, bio, i) { ^ /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:187: error: request for member ‘bi_size’ in something not a structure or union bio_for_each_segment(bvl, bio, i) { ^ /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:215: error: request for member ‘bi_size’ in something not a structure or union bio_for_each_segment(bvl, bio, i) { ^ /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:271: error: request for member ‘bi_idx’ in something not a structure or union bio_for_each_segment(bvl, bio, i) { ^ /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:300: error: request for member ‘bi_bvec_done’ in something not a structure or union bio_for_each_segment(bvl, bio, i) { ^ /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:362: error: request for member ‘bi_idx’ in something not a structure or union bio_for_each_segment(bvl, bio, i) { ^ /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:391: error: request for member ‘bi_bvec_done’ in something not a structure or union bio_for_each_segment(bvl, bio, i) { ^ /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:521: error: request for member ‘bi_idx’ in something not a structure or union bio_for_each_segment(bvl, bio, i) { ^ /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:553: error: request for member ‘bi_bvec_done’ in something not a structure or union bio_for_each_segment(bvl, bio, i) { ^ /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:572: error: left-hand operand of comma expression has no effect [-Werror=unused-value] bio_for_each_segment(bvl, bio, i) { ^ /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:613: error: request for member ‘bv_len’ in something not a structure or union bio_for_each_segment(bvl, bio, i) { ^ /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:177:76: error: passing argument 2 of ‘bio_advance_iter’ from incompatible pointer type [-Werror] bio_for_each_segment(bvl, bio, i) { ^ In file included from include/linux/blkdev.h:18:0, from /home/bogl/lustre-release/lustre/include/linux/obd_support.h:63, from /home/bogl/lustre-release/lustre/include/obd_support.h:44, from /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:56: include/linux/bio.h:225:60: note: expected ‘struct bvec_iter *’ but argument is of type ‘int *’ static inline void bio_advance_iter(struct bio *bio, struct bvec_iter *iter, ^ /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c: In function ‘can_be_merged’: /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:252:19: error: ‘struct bio’ has no member named ‘bi_size’ size = bio->bi_size >> 9; ^ /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:253:19: error: ‘struct bio’ has no member named ‘bi_sector’ return bio->bi_sector + size == sector ? 1 : 0; ^ /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c: In function ‘osd_do_bio’: /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:324:222: error: ‘struct bio’ has no member named ‘bi_size’ CDEBUG(D_INODE, "bio++ sz %d vcnt %d(%d) " ^ /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:324:268: error: ‘struct bio’ has no member named ‘bi_size’ CDEBUG(D_INODE, "bio++ sz %d vcnt %d(%d) " ^ /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:333:59: error: ‘struct bio’ has no member named ‘bi_size’ record_start_io(iobuf, bio->bi_size); ^ /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:350:28: error: ‘struct bio’ has no member named ‘bi_sector’ bio->bi_sector = sector; ^ /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:362:43: error: ‘struct bio’ has no member named ‘bi_size’ record_start_io(iobuf, bio->bi_size); ^ /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c: In function ‘can_be_merged’: /home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.c:254:1: error: control reaches end of non-void function [-Werror=return-type] } ^ cc1: all warnings being treated as errors make[6]: *** [/home/bogl/lustre-release/lustre/osd-ldiskfs/osd_io.o] Error 1 make[5]: *** [/home/bogl/lustre-release/lustre/osd-ldiskfs] Error 2 make[4]: *** [/home/bogl/lustre-release/lustre] Error 2 make[3]: *** [_module_/home/bogl/lustre-release] Error 2 make[3]: Leaving directory `/home/bogl/rb/BUILD/kernel-3.14.6.200.l0613' make[2]: *** [modules] Error 2 make[2]: Leaving directory `/home/bogl/lustre-release' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/bogl/lustre-release' make: *** [all] Error 2

            I have a UMP machine running a 3.15 kernel at home. It gives me the ability to find issues that otherwise would go undetected with SMP devices.

            simmonsja James A Simmons added a comment - I have a UMP machine running a 3.15 kernel at home. It gives me the ability to find issues that otherwise would go undetected with SMP devices.

            James, Why is http://review.whamcloud.com/#/c/10332 needed? I seem to be able to build clients that work without it.

            bogl Bob Glossman (Inactive) added a comment - James, Why is http://review.whamcloud.com/#/c/10332 needed? I seem to be able to build clients that work without it.

            http://review.whamcloud.com/#/c/10332
            http://review.whamcloud.com/#/c/10337

            Sorry I couldn't make 10337 more pretty but it works.

            simmonsja James A Simmons added a comment - http://review.whamcloud.com/#/c/10332 http://review.whamcloud.com/#/c/10337 Sorry I couldn't make 10337 more pretty but it works.

            People

              bogl Bob Glossman (Inactive)
              bogl Bob Glossman (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: