From 2b68c8625c32508450871ffb9ac0d35c9cd41157 Mon Sep 17 00:00:00 2001 From: yangsheng Date: Mon, 18 Feb 2013 02:59:18 +0800 Subject: [PATCH] LU-2601 kernel: kernel update [RHEL5.9 2.6.18-348.1.1.el5] Update RHEL5.9 kernel to 2.6.18-348.1.1.el5. Adding scsi/fc_compat.h to lustre-lnet.m4 and o2iblnd.h to build o2ib modules. Signed-off-by: Shuichi Ihara Signed-off-by: yang sheng Change-Id: I1d66d12f64238cb410288715ff389ab96b15f0f3 Reviewed-on: http://review.whamcloud.com/5451 Tested-by: Hudson Tested-by: Maloo Reviewed-by: Bobi Jam Reviewed-by: Nathaniel Clark Reviewed-by: Lai Siyao Reviewed-by: Oleg Drokin --- build/autoconf/lustre-build-linux.m4 | 1 + .../patches/ext4-mballoc-pa_free-mismatch.patch | 21 ++++++++++------ .../patches/ext4-vmalloc-rhel5.patch | 28 ---------------------- .../series/ldiskfs-2.6-rhel5-ext4.series | 1 - lnet/autoconf/lustre-lnet.m4 | 14 +++++++++++ lnet/klnds/o2iblnd/o2iblnd.h | 3 +++ lustre/ChangeLog | 4 ++-- .../kernel-2.6.18-2.6-rhel5-i686.config | 15 +++++++++++- .../kernel-2.6.18-2.6-rhel5-x86_64.config | 17 ++++++++++++- lustre/kernel_patches/targets/2.6-rhel5.target.in | 2 +- lustre/kernel_patches/which_patch | 4 ++-- 11 files changed, 67 insertions(+), 43 deletions(-) diff --git a/build/autoconf/lustre-build-linux.m4 b/build/autoconf/lustre-build-linux.m4 index deb80fd..b43a74c 100644 --- a/build/autoconf/lustre-build-linux.m4 +++ b/build/autoconf/lustre-build-linux.m4 @@ -546,6 +546,7 @@ else if test -n "$BACKPORT_INCLUDES"; then OFED_BACKPORT_PATH="$O2IBPATH/${BACKPORT_INCLUDES/*\/kernel_addons/kernel_addons}/" EXTRA_LNET_INCLUDE="-I$OFED_BACKPORT_PATH $EXTRA_LNET_INCLUDE" + AC_DEFINE(HAVE_OFED_BACKPORT_H, 1, [found OFED backport headers]) AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) diff --git a/ldiskfs/kernel_patches/patches/ext4-mballoc-pa_free-mismatch.patch b/ldiskfs/kernel_patches/patches/ext4-mballoc-pa_free-mismatch.patch index 9a93611..cd5223f 100644 --- a/ldiskfs/kernel_patches/patches/ext4-mballoc-pa_free-mismatch.patch +++ b/ldiskfs/kernel_patches/patches/ext4-mballoc-pa_free-mismatch.patch @@ -85,10 +85,13 @@ Index: linux-stage/fs/ext4/mballoc.c ac = kmem_cache_alloc(ext4_ac_cachep, GFP_NOFS); if (!ac) { ar->len = 0; -@@ -4850,6 +4881,25 @@ - ac->ac_b_ex.fe_len = 0; - ar->len = 0; - ext4_mb_show_ac(ac); +@@ -4850,10 +4881,29 @@ + ac->ac_b_ex.fe_len = 0; + ac->ac_status = AC_STATUS_CONTINUE; + goto repeat; +- } else if (*errp) ++ } else if (*errp) { + errout: + if (ac->ac_pa) { + struct ext4_prealloc_space *pa = ac->ac_pa; + @@ -108,10 +111,13 @@ Index: linux-stage/fs/ext4/mballoc.c + (unsigned)pa->pa_error, + pa->pa_inode ? pa->pa_inode->i_ino : 0); + } - } else { + ext4_discard_allocated_blocks(ac); +- else { ++ } else { block = ext4_grp_offs_to_block(sb, &ac->ac_b_ex); ar->len = ac->ac_b_ex.fe_len; -@@ -5025,6 +5075,15 @@ + } +@@ -5025,6 +5075,16 @@ goto error_return; } @@ -121,7 +127,8 @@ Index: linux-stage/fs/ext4/mballoc.c + printk(KERN_WARNING "Release to readonly device %s (%#x): " + "[inode %lu] [block %lu] [count %lu] [is_meta %d]\n", + bdev->bd_disk ? bdev->bd_disk->disk_name : "", -+ bdev->bd_dev, inode->i_ino, (unsigned long)block, count, metadata); ++ bdev->bd_dev, inode->i_ino, (unsigned long)block, count, ++ (flags & EXT4_FREE_BLOCKS_METADATA)); + } + ext4_debug("freeing block %llu\n", block); diff --git a/ldiskfs/kernel_patches/patches/ext4-vmalloc-rhel5.patch b/ldiskfs/kernel_patches/patches/ext4-vmalloc-rhel5.patch index e1fa436..731b2df 100644 --- a/ldiskfs/kernel_patches/patches/ext4-vmalloc-rhel5.patch +++ b/ldiskfs/kernel_patches/patches/ext4-vmalloc-rhel5.patch @@ -51,25 +51,6 @@ Index: linux-stage/fs/ext4/super.c goto failed_mount; } -@@ -2907,17 +2919,16 @@ no_journal: - if (IS_ERR(root)) { - ext4_msg(sb, KERN_ERR, "get root inode failed"); - ret = PTR_ERR(root); -+ root = NULL; - goto failed_mount4; - } - if (!S_ISDIR(root->i_mode) || !root->i_blocks || !root->i_size) { -- iput(root); - ext4_msg(sb, KERN_ERR, "corrupt root inode, run e2fsck"); - goto failed_mount4; - } - sb->s_root = d_alloc_root(root); - if (!sb->s_root) { - ext4_msg(sb, KERN_ERR, "get root dentry failed"); -- iput(root); - ret = -ENOMEM; - goto failed_mount4; - } @@ -2968,6 +2979,7 @@ no_journal: if (err) { ext4_msg(sb, KERN_ERR, "failed to initalize mballoc (%d)", @@ -78,15 +59,6 @@ Index: linux-stage/fs/ext4/super.c goto failed_mount4; } -@@ -3011,6 +3023,8 @@ cantfind_ext4: - goto failed_mount; - - failed_mount4: -+ iput(root); -+ sb->s_root = NULL; - ext4_msg(sb, KERN_ERR, "mount failed"); - destroy_workqueue(EXT4_SB(sb)->dio_unwritten_wq); - failed_mount_wq: @@ -3033,7 +3047,11 @@ failed_mount3: failed_mount2: for (i = 0; i < db_count; i++) diff --git a/ldiskfs/kernel_patches/series/ldiskfs-2.6-rhel5-ext4.series b/ldiskfs/kernel_patches/series/ldiskfs-2.6-rhel5-ext4.series index 51fb676..2270f47 100644 --- a/ldiskfs/kernel_patches/series/ldiskfs-2.6-rhel5-ext4.series +++ b/ldiskfs/kernel_patches/series/ldiskfs-2.6-rhel5-ext4.series @@ -31,7 +31,6 @@ ext4-disable-mb-cache-rhel5.patch ext4-disable-delalloc-rhel5.patch ext4-nocmtime-2.6-rhel5.patch ext4-failed-mount-b23368.patch -ext4-export-64bit-name-hash.patch ext4-vmalloc-rhel5.patch ext4-mballoc-group_check-rhel5.patch ext4-store-tree-generation-at-find.patch diff --git a/lnet/autoconf/lustre-lnet.m4 b/lnet/autoconf/lustre-lnet.m4 index 8e01b4a..02d4a04 100644 --- a/lnet/autoconf/lustre-lnet.m4 +++ b/lnet/autoconf/lustre-lnet.m4 @@ -47,6 +47,9 @@ fi AC_DEFUN([LN_FUNC_DEV_GET_BY_NAME_2ARG], [AC_MSG_CHECKING([if dev_get_by_name has two args]) LB_LINUX_TRY_COMPILE([ + #if !defined(HAVE_OFED_BACKPORT_H) && defined(HAVE_SCSI_FC_COMPAT_H) + #include + #endif #include ],[ dev_get_by_name(NULL, NULL); @@ -351,6 +354,13 @@ AC_SUBST(MXLND) ]) +# check if kenrel has scsi/fc_compat.h +AC_DEFUN([LN_HAVE_SCSI_FC_COMPAT_H], +[LB_CHECK_FILE([$LINUX/include/scsi/fc_compat.h], [ + AC_DEFINE(HAVE_SCSI_FC_COMPAT_H, 1, + [kernel has include/scsi/fc_compat.h]) +]) +]) # # LN_CONFIG_O2IB @@ -415,6 +425,9 @@ else #if !HAVE_GFP_T typedef int gfp_t; #endif + #if !defined(HAVE_OFED_BACKPORT_H) && defined(HAVE_SCSI_FC_COMPAT_H) + #include + #endif #include #include #include @@ -572,6 +585,7 @@ LB_LINUX_TRY_COMPILE([ # AC_DEFUN([LN_PROG_LINUX], [ +LN_HAVE_SCSI_FC_COMPAT_H LN_FUNC_DEV_GET_BY_NAME_2ARG LN_CONFIG_AFFINITY LN_CONFIG_BACKOFF diff --git a/lnet/klnds/o2iblnd/o2iblnd.h b/lnet/klnds/o2iblnd/o2iblnd.h index d9640f0..ccd553c 100644 --- a/lnet/klnds/o2iblnd/o2iblnd.h +++ b/lnet/klnds/o2iblnd/o2iblnd.h @@ -83,6 +83,9 @@ typedef int gfp_t; #endif +#if !defined(HAVE_OFED_BACKPORT_H) && defined(HAVE_SCSI_FC_COMPAT_H) +#include +#endif #include #include #include diff --git a/lustre/ChangeLog b/lustre/ChangeLog index a94c251..54a5a47 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -1,11 +1,11 @@ 26-12-2012 Whamcloud, Inc. * version 2.1.4 * Server support for kernels: - 2.6.18-308.20.1.el5 (RHEL5) + 2.6.18-348.1.1.el5 (RHEL5) 2.6.32-279.14.1.el6 (RHEL6) * Client support for unpatched kernels: (see http://wiki.lustre.org/index.php?title=Patchless_Client) - 2.6.18-308.20.1.el5 (RHEL5) + 2.6.18-348.1.1.el5 (RHEL5) 2.6.32-279.14.1.el6 (RHEL6) 2.6.29.4-167.fc11 (FC11) 2.6.16.60-0.69.1 (SLES10) diff --git a/lustre/kernel_patches/kernel_configs/kernel-2.6.18-2.6-rhel5-i686.config b/lustre/kernel_patches/kernel_configs/kernel-2.6.18-2.6-rhel5-i686.config index bb5ed8c..b968dc6 100644 --- a/lustre/kernel_patches/kernel_configs/kernel-2.6.18-2.6-rhel5-i686.config +++ b/lustre/kernel_patches/kernel_configs/kernel-2.6.18-2.6-rhel5-i686.config @@ -701,6 +701,8 @@ CONFIG_IP_SCTP=m # CONFIG_SCTP_HMAC_SHA1 is not set CONFIG_SCTP_HMAC_MD5=y CONFIG_RDS=m +CONFIG_RDS_RDMA=m +CONFIG_RDS_TCP=m # CONFIG_RDS_DEBUG is not set # @@ -1183,6 +1185,7 @@ CONFIG_SCSI_SAS_ATA=y # SCSI low-level drivers # CONFIG_LIBFC=m +CONFIG_HYPERV_STORAGE=m CONFIG_LIBFCOE=m CONFIG_FCOE=m CONFIG_LIBISCSI1=m @@ -1554,6 +1557,7 @@ CONFIG_BE2NET=m CONFIG_BNA=m CONFIG_SFC=m CONFIG_SFC_MTD=y +CONFIG_SFC_MCDI_MON=y # # Token Ring devices @@ -1738,6 +1742,7 @@ CONFIG_NETPOLL=y CONFIG_NETPOLL_TRAP=y CONFIG_NET_POLL_CONTROLLER=y CONFIG_VIRTIO_NET=m +CONFIG_HYPERV_NET=m # # ISDN subsystem @@ -1991,7 +1996,7 @@ CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_PNP=y CONFIG_SERIAL_8250_CS=m -CONFIG_SERIAL_8250_NR_UARTS=32 +CONFIG_SERIAL_8250_NR_UARTS=64 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y @@ -2934,6 +2939,14 @@ CONFIG_INTEL_IOATDMA_V3=m CONFIG_UIO=m # +# Microsoft Hyper-V guest support +# +CONFIG_HYPERV=m +CONFIG_HYPERV_UTILS=m +CONFIG_HID_BASE_HV=m +CONFIG_HID_HYPERV_MOUSE=m + +# # File systems # CONFIG_EXT2_FS=y diff --git a/lustre/kernel_patches/kernel_configs/kernel-2.6.18-2.6-rhel5-x86_64.config b/lustre/kernel_patches/kernel_configs/kernel-2.6.18-2.6-rhel5-x86_64.config index f49a865..c9af8a4 100644 --- a/lustre/kernel_patches/kernel_configs/kernel-2.6.18-2.6-rhel5-x86_64.config +++ b/lustre/kernel_patches/kernel_configs/kernel-2.6.18-2.6-rhel5-x86_64.config @@ -646,6 +646,8 @@ CONFIG_IP_SCTP=m # CONFIG_SCTP_HMAC_SHA1 is not set CONFIG_SCTP_HMAC_MD5=y CONFIG_RDS=m +CONFIG_RDS_RDMA=m +CONFIG_RDS_TCP=m # CONFIG_RDS_DEBUG is not set # @@ -1124,6 +1126,7 @@ CONFIG_SCSI_SAS_ATA=y # SCSI low-level drivers # CONFIG_LIBFC=m +CONFIG_HYPERV_STORAGE=m CONFIG_LIBFCOE=m CONFIG_FCOE=m CONFIG_LIBISCSI1=m @@ -1488,6 +1491,7 @@ CONFIG_BE2NET=m CONFIG_BNA=m CONFIG_SFC=m CONFIG_SFC_MTD=y +CONFIG_SFC_MCDI_MON=y # # Token Ring devices @@ -1666,6 +1670,7 @@ CONFIG_NETPOLL=y CONFIG_NETPOLL_TRAP=y CONFIG_NET_POLL_CONTROLLER=y CONFIG_VIRTIO_NET=m +CONFIG_HYPERV_NET=m # # ISDN subsystem @@ -1912,7 +1917,7 @@ CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_PNP=y CONFIG_SERIAL_8250_CS=m -CONFIG_SERIAL_8250_NR_UARTS=32 +CONFIG_SERIAL_8250_NR_UARTS=64 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y @@ -2742,6 +2747,7 @@ CONFIG_INFINIBAND_CXGB3=m CONFIG_INFINIBAND_CXGB4=m CONFIG_INFINIBAND_NES=m # CONFIG_INFINIBAND_NES_DEBUG is not set +CONFIG_INFINIBAND_QIB=m CONFIG_MLX4_INFINIBAND=m CONFIG_INFINIBAND_IPOIB=m CONFIG_INFINIBAND_IPOIB_CM=y @@ -2837,6 +2843,14 @@ CONFIG_INTEL_IOATDMA_V3=m CONFIG_UIO=m # +# Microsoft Hyper-V guest support +# +CONFIG_HYPERV=m +CONFIG_HYPERV_UTILS=m +CONFIG_HID_BASE_HV=m +CONFIG_HID_HYPERV_MOUSE=m + +# # Firmware Drivers # CONFIG_EDD=m @@ -3083,6 +3097,7 @@ CONFIG_OPROFILE=m CONFIG_HAVE_OPTPROBES=y CONFIG_KPROBES=y CONFIG_OPTPROBES=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y # # Kernel hacking diff --git a/lustre/kernel_patches/targets/2.6-rhel5.target.in b/lustre/kernel_patches/targets/2.6-rhel5.target.in index 4d7672b..67ff82b 100644 --- a/lustre/kernel_patches/targets/2.6-rhel5.target.in +++ b/lustre/kernel_patches/targets/2.6-rhel5.target.in @@ -1,5 +1,5 @@ lnxmaj="2.6.18" -lnxrel="308.20.1.el5" +lnxrel="348.1.1.el5" KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm SERIES=2.6-rhel5.series diff --git a/lustre/kernel_patches/which_patch b/lustre/kernel_patches/which_patch index 5886457..2ede44b 100644 --- a/lustre/kernel_patches/which_patch +++ b/lustre/kernel_patches/which_patch @@ -1,11 +1,11 @@ SERIES VERSION COMMENT SUPPORTED KERNELS: -2.6-rhel5 RHEL5: 2.6.18-308.20.1.el5 +2.6-rhel5 RHEL5: 2.6.18-348.1.1.el5 2.6-rhel6 RHEL6: 2.6.32-279.14.1.el6 CLIENT SUPPORT FOR UNPATCHED KERNELS: - 2.6.18-308.20.1.el5 (RHEL5) + 2.6.18-348.1.1.el5 (RHEL5) 2.6.32-279.14.1.el6 (RHEL6) 2.6.16.60-0.69.1 (SLES10) 2.6.27.19-5 (SLES11) -- 1.8.3.1