From 31d6ccdce8d663682edf0c4dfd4f9f9b4ef89785 Mon Sep 17 00:00:00 2001 From: Jian Yu Date: Tue, 16 Mar 2021 11:42:56 -0700 Subject: [PATCH] LU-14527 kernel: kernel update RHEL7.9 [3.10.0-1160.21.1.el7] Update RHEL7.9 kernel to 3.10.0-1160.21.1.el7. Test-Parameters: clientdistro=el7.9 serverdistro=el7.9 Change-Id: I1a46fe492d280b19c0f93458aaac975a4c873caf Signed-off-by: Jian Yu Reviewed-on: https://review.whamcloud.com/42050 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Minh Diep Reviewed-by: Yang Sheng Reviewed-by: Oleg Drokin --- lustre/ChangeLog | 4 +- ...-lockup-in-run_timers-large-jiffies-delta.patch | 112 --------------------- lustre/kernel_patches/series/3.10-rhel7.9.series | 1 - .../kernel_patches/targets/3.10-rhel7.9.target.in | 2 +- lustre/kernel_patches/which_patch | 2 +- 5 files changed, 4 insertions(+), 117 deletions(-) delete mode 100644 lustre/kernel_patches/patches/revert-fix-lockup-in-run_timers-large-jiffies-delta.patch diff --git a/lustre/ChangeLog b/lustre/ChangeLog index e25d1d7..0bc09b5 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -5,7 +5,7 @@ TBD Whamcloud * Server primary kernels built and tested during release cycle: 3.10.0-1062.18.1.el7 (RHEL7.7) 3.10.0-1127.19.1.el7 (RHEL7.8) - 3.10.0-1160.15.2.el7 (RHEL7.9) + 3.10.0-1160.21.1.el7 (RHEL7.9) * Other server kernels known to build and work at some point (others may also work): 3.10.0-862.14.4.el7 (RHEL7.5) 3.10.0-957.27.2.el7 (RHEL7.6) @@ -23,7 +23,7 @@ TBD Whamcloud * Client primary kernels built and tested during release cycle: 3.10.0-1062.18.1.el7 (RHEL7.7) 3.10.0-1127.19.1.el7 (RHEL7.8) - 3.10.0-1160.15.2.el7 (RHEL7.9) + 3.10.0-1160.21.1.el7 (RHEL7.9) 4.12.14-95.48 (SLES12 SP4) 4.12.14-122.20 (SLES12 SP5) 4.12.14-197.75 (SLES15 SP1) diff --git a/lustre/kernel_patches/patches/revert-fix-lockup-in-run_timers-large-jiffies-delta.patch b/lustre/kernel_patches/patches/revert-fix-lockup-in-run_timers-large-jiffies-delta.patch deleted file mode 100644 index a8c1796..0000000 --- a/lustre/kernel_patches/patches/revert-fix-lockup-in-run_timers-large-jiffies-delta.patch +++ /dev/null @@ -1,112 +0,0 @@ ---- linux-3.10.0-1160.11.1.el7.x86_64/kernel/timer.c 2020-11-30 12:40:05.000000000 -0500 -+++ linux-3.10.0-1160.6.1.el7.x86_64/kernel/timer.c 2020-10-21 13:17:08.000000000 -0400 -@@ -1213,95 +1213,6 @@ - } - } - --/* -- * Total number of list_head entries in tv1-tv5 of struct tvec_base. -- */ --#define TVEC_LEN ((offsetofend(struct tvec_base, tv5) - \ -- offsetof(struct tvec_base, tv1)) / \ -- sizeof(struct list_head)) -- --/** -- * requeue_timers - requeue all the timers in the timer wheel -- * @base: the timer vector to be processed. -- * -- * When a cpu is idle for a long period of time, it is possible that -- * timer_jiffies can significantly lag behind jiffies making the iterative -- * jiffies check in __run_timers() takes a long time to complete causing -- * soft or hard system lockup. -- * -- * This function remedies this situation by requeuing all the timers in -- * the cascading timer wheel and adjusting timer_jiffies to the min() of -- * current jiffies and the expiry times of all active timers. The expiry -- * times of expired deferrable timers will be set to the new timer_jiffies. -- */ --static noinline void requeue_timers(struct tvec_base *base) --{ -- struct timer_list *timer, *tmp; -- struct list_head list, head, *vecs; -- unsigned long min_jiffies = jiffies; -- unsigned long nactive = base->active_timers; -- unsigned long nall = base->all_timers; -- int i; -- -- lockdep_assert_held(&base->lock); -- INIT_LIST_HEAD(&head); -- -- /* -- * tv1-tv5 are processed together as a single array of list_head's. -- */ -- vecs = (struct list_head *)&base->tv1; -- for (i = 0; i < TVEC_LEN; i++, vecs++) { -- if (list_empty(vecs)) -- continue; -- -- list_replace_init(vecs, &list); -- -- /* -- * Check all the timers in list and move them over to head. -- */ -- list_for_each_entry_safe(timer, tmp, &list, entry) { -- base->all_timers--; -- if (!tbase_get_deferrable(timer->base)) { -- base->active_timers--; -- if (time_before(timer->expires, min_jiffies)) -- min_jiffies = timer->expires; -- } -- list_add_tail(&timer->entry, &head); -- } -- if (!base->all_timers) -- break; -- } -- WARN_ON_ONCE(base->all_timers || base->active_timers); -- -- /* -- * Restore all_timers and active_timers. -- * Requeue timers back into timer wheel with timer_jiffies -- * set to min_jiffies. -- */ -- base->all_timers = nall; -- base->active_timers = nactive; -- base->timer_jiffies = min_jiffies; -- -- list_for_each_entry_safe(timer, tmp, &head, entry) { -- unsigned long old_expires; -- bool restore = false; -- -- /* -- * For expiry time that is < min_jiffies (deferrable ones), -- * temporarily change it to min_jiffies, insert the timer -- * without accounting and restore the expiry time. -- */ -- if (time_before(timer->expires, min_jiffies)) { -- old_expires = timer->expires; -- timer->expires = min_jiffies; -- restore = true; -- } -- __internal_add_timer(base, timer); -- if (restore) -- timer->expires = old_expires; -- } --} -- - #define INDEX(N) ((base->timer_jiffies >> (TVR_BITS + (N) * TVN_BITS)) & TVN_MASK) - - /** -@@ -1317,13 +1228,6 @@ - - spin_lock_irq(&base->lock); - -- /* -- * Requeue the timers if jiffies - timer_jiffies >= 2*TVEC_LEN. -- */ -- if (base->all_timers && -- time_after_eq(jiffies, base->timer_jiffies + 2 * TVEC_LEN)) -- requeue_timers(base); -- - while (time_after_eq(jiffies, base->timer_jiffies)) { - struct list_head work_list; - struct list_head *head = &work_list; diff --git a/lustre/kernel_patches/series/3.10-rhel7.9.series b/lustre/kernel_patches/series/3.10-rhel7.9.series index cf8e197..c3af94a 100644 --- a/lustre/kernel_patches/series/3.10-rhel7.9.series +++ b/lustre/kernel_patches/series/3.10-rhel7.9.series @@ -3,4 +3,3 @@ fix-integrity-verify-rhel7.patch block-integrity-allow-optional-integrity-functions-rhel7.patch block-pass-bio-into-integrity_processing_fn-rhel7.patch block-Ensure-we-only-enable-integrity-metadata-for-reads-and-writes-rhel7.patch -revert-fix-lockup-in-run_timers-large-jiffies-delta.patch diff --git a/lustre/kernel_patches/targets/3.10-rhel7.9.target.in b/lustre/kernel_patches/targets/3.10-rhel7.9.target.in index d7dca49..1d1d43d 100644 --- a/lustre/kernel_patches/targets/3.10-rhel7.9.target.in +++ b/lustre/kernel_patches/targets/3.10-rhel7.9.target.in @@ -1,5 +1,5 @@ lnxmaj="3.10.0" -lnxrel="1160.15.2.el7" +lnxrel="1160.21.1.el7" KERNEL_SRPM=kernel-${lnxmaj}-${lnxrel}.src.rpm SERIES=3.10-rhel7.9.series diff --git a/lustre/kernel_patches/which_patch b/lustre/kernel_patches/which_patch index ffbb657..77f753b 100644 --- a/lustre/kernel_patches/which_patch +++ b/lustre/kernel_patches/which_patch @@ -16,7 +16,7 @@ PATCH SERIES FOR SERVER KERNELS: 3.10-rhel7.6.series 3.10.0-957.27.2.el7 (RHEL 7.6) 3.10-rhel7.7.series 3.10.0-1062.18.1.el7 (RHEL 7.7) 3.10-rhel7.8.series 3.10.0-1127.19.1.el7 (RHEL 7.8) -3.10-rhel7.9.series 3.10.0-1160.15.2.el7 (RHEL 7.9) +3.10-rhel7.9.series 3.10.0-1160.21.1.el7 (RHEL 7.9) 4.18-rhel8.series 4.18.0-80.11.2.el8 (RHEL 8.0) 4.18-rhel8.1.series 4.18.0-147.8.1.el8 (RHEL 8.1) 4.18-rhel8.2.series 4.18.0-193.28.1.el8 (RHEL 8.2) -- 1.8.3.1