Details
-
Improvement
-
Resolution: Fixed
-
Minor
-
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
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.
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.
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.
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.