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

            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.
            pjones Peter Jones added a comment -

            Oh I believe it

            pjones Peter Jones added a comment - Oh I believe it
            simmonsja James A Simmons added a comment - - edited

            Believe it or not I have patches for this already. I ran into this on my home debian system.Well I have to make the patch work with earlier kernels.

            simmonsja James A Simmons added a comment - - edited Believe it or not I have patches for this already. I ran into this on my home debian system.Well I have to make the patch work with earlier kernels.

            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: