From 55b777b56b503649549ca387164833df2dd2977c Mon Sep 17 00:00:00 2001 From: Shaun Tancheff Date: Mon, 13 Nov 2023 15:36:41 -0800 Subject: [PATCH] LU-16534 build: Prefer 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() 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 Change-Id: I4c946c315a83482dd0bd69e5e89f0302a67bf81c Reviewed-by: jsimmons Reviewed-by: Andreas Dilger Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/53090 Tested-by: jenkins Tested-by: Maloo Reviewed-by: James Simmons Reviewed-by: Oleg Drokin --- contrib/scripts/spelling.txt | 3 +++ libcfs/autoconf/lustre-libcfs.m4 | 58 ++++++++++++++++++++++++++++++++++++++++ lnet/klnds/gnilnd/gnilnd_cb.c | 8 +++--- lnet/klnds/gnilnd/gnilnd_conn.c | 2 +- lnet/lnet/net_fault.c | 4 +-- lustre/ldlm/ldlm_lockd.c | 2 +- lustre/lod/lod_qos.c | 2 +- lustre/osp/osp_precreate.c | 6 ++--- lustre/ptlrpc/gss/gss_keyring.c | 2 +- lustre/ptlrpc/service.c | 6 ++--- 10 files changed, 77 insertions(+), 16 deletions(-) diff --git a/contrib/scripts/spelling.txt b/contrib/scripts/spelling.txt index b812339..5e34d04 100644 --- a/contrib/scripts/spelling.txt +++ b/contrib/scripts/spelling.txt @@ -100,6 +100,9 @@ cfs_time_current_sec||ktime_get_real_seconds CLASSERT||BUILD_BUG_ON() msecs_to_jiffies||cfs_time_seconds DEFINE_TIMER||CFS_DEFINE_TIMER +del_timer||timer_delete +del_timer_sync||timer_delete_sync +del_singleshot_timer_sync||timer_delete_sync EWOULDBLOCK||EAGAIN container_of0||container_of_safe DN_MAX_BONUSLEN||DN_BONUS_SIZE(dnodesize) diff --git a/libcfs/autoconf/lustre-libcfs.m4 b/libcfs/autoconf/lustre-libcfs.m4 index 2e99cff..37c2762 100644 --- a/libcfs/autoconf/lustre-libcfs.m4 +++ b/libcfs/autoconf/lustre-libcfs.m4 @@ -2197,6 +2197,58 @@ AC_DEFUN([LIBCFS_PDE_DATA_EXISTS],[ ]) ]) # LIBCFS_PDE_DATA_EXISTS +# +# LIBCFS_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_SRC_TIMER_DELETE_SYNC],[ + LB2_LINUX_TEST_SRC([timer_delete_sync], [ + #include + ],[ + struct timer_list *timer = NULL; + (void)timer_delete_sync(timer); + ],[]) +]) +AC_DEFUN([LIBCFS_TIMER_DELETE_SYNC],[ + AC_MSG_CHECKING([is timer_delete_sync() available]) + LB2_LINUX_TEST_RESULT([timer_delete_sync], [ + 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() not is available]) + ]) +]) # LIBCFS_TIMER_DELETE_SYNC + +# +# LIBCFS_TIMER_DELETE_SYNC +# +# Linux commit v6.1-rc1-12-gbb663f0f3c39 +# timers: Rename del_timer() to timer_delete() +# +AC_DEFUN([LIBCFS_SRC_TIMER_DELETE],[ + LB2_LINUX_TEST_SRC([timer_delete], [ + #include + ],[ + struct timer_list *timer = NULL; + (void)timer_delete(timer); + ],[]) +]) +AC_DEFUN([LIBCFS_TIMER_DELETE],[ + AC_MSG_CHECKING([is timer_delete() available]) + LB2_LINUX_TEST_RESULT([timer_delete], [ + AC_DEFINE(HAVE_TIMER_DELETE, 1, + [timer_delete() is available]) + ],[ + AC_DEFINE(timer_delete(t), del_timer(t), + [timer_delete() not is available]) + ]) +]) # LIBCFS_TIMER_DELETE + dnl # dnl # Generate and compile all of the kernel API test cases to determine dnl # which interfaces are available. By invoking the kernel build system @@ -2334,6 +2386,9 @@ AC_DEFUN([LIBCFS_PROG_LINUX_SRC], [ LIBCFS_SRC_PARAM_SET_UINT_MINMAX # 5.17 LIBCFS_SRC_PDE_DATA_EXISTS + # 6.2 + LIBCFS_SRC_TIMER_DELETE_SYNC + LIBCFS_SRC_TIMER_DELETE LB2_LINUX_TEST_COMPILE_ALL([libcfs], [for available kernel interfaces to libcfs]) @@ -2473,6 +2528,9 @@ AC_DEFUN([LIBCFS_PROG_LINUX_RESULTS], [ LIBCFS_PARAM_SET_UINT_MINMAX # 5.17 LIBCFS_PDE_DATA_EXISTS + # 6.2 + LIBCFS_TIMER_DELETE_SYNC + LIBCFS_TIMER_DELETE ]) # diff --git a/lnet/klnds/gnilnd/gnilnd_cb.c b/lnet/klnds/gnilnd/gnilnd_cb.c index 6be0b2a..abf88d3 100644 --- a/lnet/klnds/gnilnd/gnilnd_cb.c +++ b/lnet/klnds/gnilnd/gnilnd_cb.c @@ -2988,7 +2988,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; @@ -3805,7 +3805,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; @@ -4636,7 +4636,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); } @@ -4663,7 +4663,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; diff --git a/lnet/klnds/gnilnd/gnilnd_conn.c b/lnet/klnds/gnilnd/gnilnd_conn.c index 38dce1d..9ac9549 100644 --- a/lnet/klnds/gnilnd/gnilnd_conn.c +++ b/lnet/klnds/gnilnd/gnilnd_conn.c @@ -2545,7 +2545,7 @@ kgnilnd_dgram_mover(void *arg) deadline = jiffies + cfs_time_seconds(*kgnilnd_tunables.kgn_dgram_timeout); } - del_singleshot_timer_sync(&timer.timer); + timer_delete_sync(&timer.timer); finish_wait(&dev->gnd_dgram_waitq, &wait); } diff --git a/lnet/lnet/net_fault.c b/lnet/lnet/net_fault.c index 0a201a0..98bdb16 100644 --- a/lnet/lnet/net_fault.c +++ b/lnet/lnet/net_fault.c @@ -649,7 +649,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)) { @@ -936,7 +936,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++; diff --git a/lustre/ldlm/ldlm_lockd.c b/lustre/ldlm/ldlm_lockd.c index 7e59709..7a42d5d 100644 --- a/lustre/ldlm/ldlm_lockd.c +++ b/lustre/ldlm/ldlm_lockd.c @@ -511,7 +511,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 { time64_t now = ktime_get_seconds(); struct ldlm_lock *next; diff --git a/lustre/lod/lod_qos.c b/lustre/lod/lod_qos.c index 4d816b6..5d7af0c 100644 --- a/lustre/lod/lod_qos.c +++ b/lustre/lod/lod_qos.c @@ -1488,7 +1488,7 @@ static int lod_ost_alloc_qos(const struct lu_env *env, struct lod_object *lo, /* Do actual allocation, use write lock here. */ rc = down_write_killable(&lod->lod_ost_descs.ltd_qos.lq_rw_sem); - del_singleshot_timer_sync(&timer.timer); + timer_delete_sync(&timer.timer); kernel_sigaction(SIGKILL, SIG_IGN); if (rc) { flush_signals(current); diff --git a/lustre/osp/osp_precreate.c b/lustre/osp/osp_precreate.c index 5585ce1..d9d64ff 100644 --- a/lustre/osp/osp_precreate.c +++ b/lustre/osp/osp_precreate.c @@ -239,7 +239,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; @@ -293,7 +293,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); } } @@ -1837,7 +1837,7 @@ void osp_statfs_fini(struct osp_device *d) struct task_struct *task = d->opd_pre_task; ENTRY; - del_timer(&d->opd_statfs_timer); + timer_delete(&d->opd_statfs_timer); d->opd_pre_task = NULL; if (task) diff --git a/lustre/ptlrpc/gss/gss_keyring.c b/lustre/ptlrpc/gss/gss_keyring.c index 124ebe1..5d4e3c1 100644 --- a/lustre/ptlrpc/gss/gss_keyring.c +++ b/lustre/ptlrpc/gss/gss_keyring.c @@ -149,7 +149,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 diff --git a/lustre/ptlrpc/service.c b/lustre/ptlrpc/service.c index 16fcaba..366dc5a 100644 --- a/lustre/ptlrpc/service.c +++ b/lustre/ptlrpc/service.c @@ -1248,7 +1248,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; } @@ -3390,7 +3390,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); } } @@ -3558,7 +3558,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) { -- 1.8.3.1