Whamcloud - gitweb
LU-16534 build: Prefer timer_delete[_sync] 65/53265/2
authorShaun Tancheff <shaun.tancheff@hpe.com>
Tue, 28 Nov 2023 07:34:01 +0000 (23:34 -0800)
committerOleg Drokin <green@whamcloud.com>
Tue, 27 Feb 2024 05:40:48 +0000 (05:40 +0000)
Linux commit v6.1-rc1-7-g9a5a30568697
  timers: Get rid of del_singleshot_timer_sync()
Linux commit v6.1-rc1-11-g9b13df3fb64e
  timers: Rename del_timer_sync() to timer_delete_sync()
Linux commit v6.1-rc1-12-gbb663f0f3c39
  timers: Rename del_timer() to timer_delete()

Prefer timer_delete_sync() to del_singleshot_timer_sync()
Prefer timer_delete_sync() to del_timer_sync()
Prefer del_timer() to timer_delete()

Provide del_timer and del_timer_sync when
timer_delete[_sync] is not available

Lustre-change: https://review.whamcloud.com/49922
Lustre-commit: 0ec89529ce14a1bb5af0c01ed86424a10e0e373c

Test-Parameters: trivial
HPE-bug-id: LUS-11470
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: I4c946c315a83482dd0bd69e5e89f0302a67bf81c
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/53265
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
contrib/scripts/spelling.txt
libcfs/autoconf/lustre-libcfs.m4
lnet/klnds/gnilnd/gnilnd_cb.c
lnet/klnds/gnilnd/gnilnd_conn.c
lnet/lnet/net_fault.c
lustre/ldlm/ldlm_lockd.c
lustre/osp/osp_precreate.c
lustre/ptlrpc/gss/gss_keyring.c
lustre/ptlrpc/service.c

index fd28a99..b6aebb6 100644 (file)
@@ -93,6 +93,9 @@ cfs_time_current||jiffies
 cfs_time_current_64||ktime_get
 cfs_time_current_sec||ktime_get_real_seconds
 DEFINE_TIMER||CFS_DEFINE_TIMER
+del_timer||timer_delete
+del_timer_sync||timer_delete_sync
+del_singleshot_timer_sync||timer_delete_sync
 DN_MAX_BONUSLEN||DN_BONUS_SIZE(dnodesize)
 DN_OLD_MAX_BONUSLEN||DN_BONUS_SIZE(DNODE_MIN_SIZE)
 from_timer||cfs_from_timer
index 4b40e3e..3c0b935 100644 (file)
@@ -1277,6 +1277,58 @@ param_set_uint_minmax, [
 ]) # LIBCFS_PARAM_SET_UINT_MINMAX
 
 #
+# LIBCFS_HAVE_TIMER_DELETE_SYNC
+#
+# Linux commit v6.1-rc1-7-g9a5a30568697
+#   timers: Get rid of del_singleshot_timer_sync()
+# Linux commit v6.1-rc1-11-g9b13df3fb64e
+#   timers: Rename del_timer_sync() to timer_delete_sync()
+#
+AC_DEFUN([LIBCFS_HAVE_TIMER_DELETE_SYNC], [
+tmp_flags="$EXTRA_KCFLAGS"
+EXTRA_KCFLAGS="-Werror"
+LB_CHECK_COMPILE([is timer_delete_sync() available],
+timer_delete_sync, [
+       #include <linux/timer.h>
+],[
+       struct timer_list *timer = NULL;
+       (void)timer_delete_sync(timer);
+],[
+       AC_DEFINE(HAVE_TIMER_DELETE_SYNC, 1,
+               [timer_delete_sync() is available])
+],[
+       AC_DEFINE(timer_delete_sync(t), del_timer_sync(t),
+               [timer_delete_sync() is not available])
+])
+EXTRA_KCFLAGS="$tmp_flags"
+]) # LIBCFS_HAVE_TIMER_DELETE_SYNC
+
+#
+# LIBCFS_HAVE_TIMER_DELETE
+#
+# Linux commit v6.1-rc1-12-gbb663f0f3c39
+#   timers: Rename del_timer() to timer_delete()
+#
+AC_DEFUN([LIBCFS_HAVE_TIMER_DELETE], [
+tmp_flags="$EXTRA_KCFLAGS"
+EXTRA_KCFLAGS="-Werror"
+LB_CHECK_COMPILE([is timer_delete() available],
+timer_delete, [
+       #include <linux/timer.h>
+],[
+       struct timer_list *timer = NULL;
+       (void)timer_delete(timer);
+],[
+       AC_DEFINE(HAVE_TIMER_DELETE, 1,
+               [timer_delete() is available])
+],[
+       AC_DEFINE(timer_delete(t), del_timer(t),
+               [timer_delete() not is available])
+])
+EXTRA_KCFLAGS="$tmp_flags"
+]) # LIBCFS_HAVE_TIMER_DELETE
+
+#
 # LIBCFS_PROG_LINUX
 #
 # LibCFS linux kernel checks
@@ -1392,6 +1444,9 @@ LIBCFS_CACHE_DETAIL_WRITERS
 LIBCFS_HAVE_NR_UNSTABLE_NFS
 # 5.15
 LIBCFS_PARAM_SET_UINT_MINMAX
+# 6.1
+LIBCFS_HAVE_TIMER_DELETE_SYNC
+LIBCFS_HAVE_TIMER_DELETE
 ]) # LIBCFS_PROG_LINUX
 
 #
index 89f8bd2..a4ca2f9 100644 (file)
@@ -3085,7 +3085,7 @@ kgnilnd_reaper(void *arg)
                                CDEBUG(D_INFO, "awake after schedule\n");
                        }
 
-                       del_singleshot_timer_sync(&timer);
+                       timer_delete_sync(&timer);
                        spin_lock(&kgnilnd_data.kgn_reaper_lock);
                        finish_wait(&kgnilnd_data.kgn_reaper_waitq, &wait);
                        continue;
@@ -3902,7 +3902,7 @@ kgnilnd_process_rdmaq(kgn_device_t *dev)
                /* if we think we need to adjust, take lock to serialize and recheck */
                spin_lock(&dev->gnd_rdmaq_lock);
                if (time_after_eq(jiffies, dev->gnd_rdmaq_deadline)) {
-                       del_singleshot_timer_sync(&dev->gnd_rdmaq_timer);
+                       timer_delete_sync(&dev->gnd_rdmaq_timer);
 
                        dead_bump = cfs_time_seconds(1) / *kgnilnd_tunables.kgn_rdmaq_intervals;
 
@@ -4734,7 +4734,7 @@ kgnilnd_process_mapped_tx(kgn_device_t *dev)
        spin_lock(&dev->gnd_lock);
        if (list_empty(&dev->gnd_map_tx)) {
                /* if the list is empty make sure we dont have a timer running */
-               del_singleshot_timer_sync(&dev->gnd_map_timer);
+               timer_delete_sync(&dev->gnd_map_timer);
                spin_unlock(&dev->gnd_lock);
                RETURN(0);
        }
@@ -4761,7 +4761,7 @@ kgnilnd_process_mapped_tx(kgn_device_t *dev)
        }
 
        /* delete the previous timer if it exists */
-       del_singleshot_timer_sync(&dev->gnd_map_timer);
+       timer_delete_sync(&dev->gnd_map_timer);
        /* stash the last map version to let us know when a good one was seen */
        last_map_version = dev->gnd_map_version;
 
index a3f7c75..7fa7ac0 100644 (file)
@@ -2541,7 +2541,7 @@ kgnilnd_dgram_mover(void *arg)
                        deadline = jiffies + cfs_time_seconds(*kgnilnd_tunables.kgn_dgram_timeout);
                }
 
-               del_singleshot_timer_sync(&timer);
+               timer_delete_sync(&timer);
                finish_wait(&dev->gnd_dgram_waitq, &wait);
        }
 
index 6b1469e..c63b6bd 100644 (file)
@@ -639,7 +639,7 @@ delayed_msg_check(struct lnet_delay_rule *rule, bool all,
        }
 
        if (list_empty(&rule->dl_msg_list)) {
-               del_timer(&rule->dl_timer);
+               timer_delete(&rule->dl_timer);
                rule->dl_msg_send = -1;
 
        } else if (!list_empty(msg_list)) {
@@ -929,7 +929,7 @@ lnet_delay_rule_del(lnet_nid_t src, lnet_nid_t dst, bool shutdown)
        list_for_each_entry_safe(rule, tmp, &rule_list, dl_link) {
                list_del_init(&rule->dl_link);
 
-               del_timer_sync(&rule->dl_timer);
+               timer_delete_sync(&rule->dl_timer);
                delayed_msg_check(rule, true, &msg_list);
                delay_rule_decref(rule); /* -1 for the_lnet.ln_delay_rules */
                n++;
index 137ba42..c2a8405 100644 (file)
@@ -487,7 +487,7 @@ static int __ldlm_del_waiting_lock(struct ldlm_lock *lock)
                 /* Removing the head of the list, adjust timer. */
                 if (list_next == &waiting_locks_list) {
                         /* No more, just cancel. */
-                       del_timer(&waiting_locks_timer);
+                       timer_delete(&waiting_locks_timer);
                 } else {
                         struct ldlm_lock *next;
 
index 490fee5..b116025 100644 (file)
@@ -242,7 +242,7 @@ static int osp_statfs_update(const struct lu_env *env, struct osp_device *d)
        /*
         * no updates till reply
         */
-       del_timer(&d->opd_statfs_timer);
+       timer_delete(&d->opd_statfs_timer);
        d->opd_statfs_fresh_till = ktime_add_ns(ktime_get(), expire);
        d->opd_statfs_update_in_progress = 1;
 
@@ -296,7 +296,7 @@ void osp_statfs_need_now(struct osp_device *d)
                 * is replied
                 */
                d->opd_statfs_fresh_till = ktime_sub_ns(ktime_get(), NSEC_PER_SEC);
-               del_timer(&d->opd_statfs_timer);
+               timer_delete(&d->opd_statfs_timer);
                wake_up(&d->opd_pre_waitq);
        }
 }
@@ -1827,7 +1827,7 @@ void osp_statfs_fini(struct osp_device *d)
        struct ptlrpc_thread *thread = &d->opd_pre_thread;
        ENTRY;
 
-       del_timer(&d->opd_statfs_timer);
+       timer_delete(&d->opd_statfs_timer);
 
        if (!thread_is_init(thread) && !thread_is_stopped(thread)) {
                thread->t_flags = SVC_STOPPING;
index 4047e14..2d8089a 100644 (file)
@@ -146,7 +146,7 @@ void ctx_clear_timer_kr(struct ptlrpc_cli_ctx *ctx)
 
         CDEBUG(D_SEC, "ctx %p, key %p\n", ctx, gctx_kr->gck_key);
 
-        del_singleshot_timer_sync(timer);
+       timer_delete_sync(timer);
 }
 
 static
index 6373c36..ce811a0 100644 (file)
@@ -1195,7 +1195,7 @@ static void ptlrpc_at_set_timer(struct ptlrpc_service_part *svcpt)
        time64_t next;
 
        if (array->paa_count == 0) {
-               del_timer(&svcpt->scp_at_timer);
+               timer_delete(&svcpt->scp_at_timer);
                return;
        }
 
@@ -3135,7 +3135,7 @@ ptlrpc_service_del_atimer(struct ptlrpc_service *svc)
        /* early disarm AT timer... */
        ptlrpc_service_for_each_part(svcpt, i, svc) {
                if (svcpt->scp_service != NULL)
-                       del_timer(&svcpt->scp_at_timer);
+                       timer_delete(&svcpt->scp_at_timer);
        }
 }
 
@@ -3276,7 +3276,7 @@ ptlrpc_service_free(struct ptlrpc_service *svc)
                        break;
 
                /* In case somebody rearmed this in the meantime */
-               del_timer(&svcpt->scp_at_timer);
+               timer_delete(&svcpt->scp_at_timer);
                array = &svcpt->scp_at_array;
 
                if (array->paa_reqs_array != NULL) {