From: James Simmons Date: Fri, 27 Nov 2015 17:29:03 +0000 (-0500) Subject: LU-6245 libcfs: remove cfs_fs_time handling X-Git-Tag: 2.8.51~21 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=c3ddfae1b795385aa14db61df1a416ab57bfc066 LU-6245 libcfs: remove cfs_fs_time handling Only the mdd layer uses cfs_fs_time handling and since it is kernel side code we can easily convert it to the standard linux kernel time keeping api. Signed-off-by: James Simmons Change-Id: I212e0098a847e01e2ddc201a78a790097ba8b0f9 Reviewed-on: http://review.whamcloud.com/17376 Reviewed-by: Andreas Dilger Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Dmitry Eremin Reviewed-by: Frank Zago Reviewed-by: Oleg Drokin --- diff --git a/libcfs/include/libcfs/libcfs_time.h b/libcfs/include/libcfs/libcfs_time.h index 6ac5659..21619ba 100644 --- a/libcfs/include/libcfs/libcfs_time.h +++ b/libcfs/include/libcfs/libcfs_time.h @@ -39,6 +39,7 @@ #ifndef __LIBCFS_TIME_H__ #define __LIBCFS_TIME_H__ + /* * generic time manipulation functions. */ @@ -108,17 +109,6 @@ static inline void cfs_slow_warning(cfs_time_t now, int seconds, char *msg) }) /* - * helper function similar to do_gettimeofday() of Linux kernel - */ -static inline void cfs_fs_timeval(struct timeval *tv) -{ - cfs_fs_time_t time; - - cfs_fs_time_current(&time); - cfs_fs_time_usec(&time, tv); -} - -/* * return valid time-out based on user supplied one. Currently we only check * that time-out is not shorted than allowed. */ diff --git a/libcfs/include/libcfs/linux/linux-time.h b/libcfs/include/libcfs/linux/linux-time.h index d567711..44caab3 100644 --- a/libcfs/include/libcfs/linux/linux-time.h +++ b/libcfs/include/libcfs/linux/linux-time.h @@ -63,9 +63,6 @@ * cfs_duration_t represents time interval with resolution of internal * platform clock * - * cfs_fs_time_t represents instance in world-visible time. This is - * used in file-system time-stamps - * * cfs_time_t cfs_time_current(void); * cfs_time_t cfs_time_add (cfs_time_t, cfs_duration_t); * cfs_duration_t cfs_time_sub (cfs_time_t, cfs_time_t); @@ -78,13 +75,6 @@ * void cfs_duration_usec(cfs_duration_t, struct timeval *); * void cfs_duration_nsec(cfs_duration_t, struct timespec *); * - * void cfs_fs_time_current(cfs_fs_time_t *); - * time_t cfs_fs_time_sec (cfs_fs_time_t *); - * void cfs_fs_time_usec (cfs_fs_time_t *, struct timeval *); - * void cfs_fs_time_nsec (cfs_fs_time_t *, struct timespec *); - * int cfs_fs_time_before (cfs_fs_time_t *, cfs_fs_time_t *); - * int cfs_fs_time_beforeq(cfs_fs_time_t *, cfs_fs_time_t *); - * * CFS_TIME_FORMAT * CFS_DURATION_FORMAT * @@ -109,28 +99,6 @@ #include -typedef struct timespec cfs_fs_time_t; - -static inline void cfs_fs_time_usec(cfs_fs_time_t *t, struct timeval *v) -{ - v->tv_sec = t->tv_sec; - v->tv_usec = t->tv_nsec / 1000; -} - -static inline void cfs_fs_time_nsec(cfs_fs_time_t *t, struct timespec *s) -{ - *s = *t; -} - -/* - * internal helper function used by cfs_fs_time_before*() - */ -static inline unsigned long long __cfs_fs_time_flat(cfs_fs_time_t *t) -{ - return (unsigned long long)t->tv_sec * NSEC_PER_SEC + t->tv_nsec; -} - - /* * Generic kernel stuff */ @@ -139,6 +107,9 @@ typedef unsigned long cfs_time_t; /* jiffies */ typedef long cfs_duration_t; typedef cycles_t cfs_cycles_t; +#define timespec64 timespec +#define ktime_get_real_ts64 ktime_get_real_ts + static inline int cfs_time_before(cfs_time_t t1, cfs_time_t t2) { return time_before(t1, t2); @@ -159,26 +130,6 @@ static inline time_t cfs_time_current_sec(void) return get_seconds(); } -static inline void cfs_fs_time_current(cfs_fs_time_t *t) -{ - *t = CURRENT_TIME; -} - -static inline time_t cfs_fs_time_sec(cfs_fs_time_t *t) -{ - return t->tv_sec; -} - -static inline int cfs_fs_time_before(cfs_fs_time_t *t1, cfs_fs_time_t *t2) -{ - return __cfs_fs_time_flat(t1) < __cfs_fs_time_flat(t2); -} - -static inline int cfs_fs_time_beforeq(cfs_fs_time_t *t1, cfs_fs_time_t *t2) -{ - return __cfs_fs_time_flat(t1) <= __cfs_fs_time_flat(t2); -} - static inline cfs_duration_t cfs_time_seconds(int seconds) { @@ -255,7 +206,6 @@ static inline int cfs_time_beforeq_64(__u64 t1, __u64 t2) return (__s64)t2 - (__s64)t1 >= 0; } - /* * One jiffy */ diff --git a/libcfs/include/libcfs/user-time.h b/libcfs/include/libcfs/user-time.h index d88af2e..322be07 100644 --- a/libcfs/include/libcfs/user-time.h +++ b/libcfs/include/libcfs/user-time.h @@ -53,9 +53,6 @@ * cfs_duration_t represents time interval with resolution of internal * platform clock * - * cfs_fs_time_t represents instance in world-visible time. This is - * used in file-system time-stamps - * * cfs_time_t cfs_time_current(void); * cfs_time_t cfs_time_add (cfs_time_t, cfs_duration_t); * cfs_duration_t cfs_time_sub (cfs_time_t, cfs_time_t); @@ -68,13 +65,6 @@ * void cfs_duration_usec(cfs_duration_t, struct timeval *); * void cfs_duration_nsec(cfs_duration_t, struct timespec *); * - * void cfs_fs_time_current(cfs_fs_time_t *); - * time_t cfs_fs_time_sec (cfs_fs_time_t *); - * void cfs_fs_time_usec (cfs_fs_time_t *, struct timeval *); - * void cfs_fs_time_nsec (cfs_fs_time_t *, struct timespec *); - * int cfs_fs_time_before (cfs_fs_time_t *, cfs_fs_time_t *); - * int cfs_fs_time_beforeq(cfs_fs_time_t *, cfs_fs_time_t *); - * * CFS_TIME_FORMAT * CFS_DURATION_FORMAT * @@ -96,7 +86,6 @@ * Liblustre. time(2) based implementation. */ -typedef time_t cfs_fs_time_t; typedef time_t cfs_time_t; typedef time_t cfs_duration_t; @@ -140,38 +129,6 @@ static inline void cfs_duration_nsec(cfs_duration_t d, struct timespec *s) s->tv_nsec = 0; } -static inline void cfs_fs_time_current(cfs_fs_time_t *t) -{ - time(t); -} - -static inline time_t cfs_fs_time_sec(cfs_fs_time_t *t) -{ - return *t; -} - -static inline void cfs_fs_time_usec(cfs_fs_time_t *t, struct timeval *v) -{ - v->tv_sec = *t; - v->tv_usec = 0; -} - -static inline void cfs_fs_time_nsec(cfs_fs_time_t *t, struct timespec *s) -{ - s->tv_sec = *t; - s->tv_nsec = 0; -} - -static inline int cfs_fs_time_before(cfs_fs_time_t *t1, cfs_fs_time_t *t2) -{ - return *t1 < *t2; -} - -static inline int cfs_fs_time_beforeq(cfs_fs_time_t *t1, cfs_fs_time_t *t2) -{ - return *t1 <= *t2; -} - #define CFS_TICK (1) #define cfs_time_current_64 cfs_time_current diff --git a/lnet/selftest/ping_test.c b/lnet/selftest/ping_test.c index 18dcf5a..0dd1ba2 100644 --- a/lnet/selftest/ping_test.c +++ b/lnet/selftest/ping_test.c @@ -91,7 +91,7 @@ ping_client_prep_rpc(sfw_test_unit_t *tsu, srpc_ping_reqst_t *req; sfw_test_instance_t *tsi = tsu->tsu_instance; sfw_session_t *sn = tsi->tsi_batch->bat_session; - struct timeval tv; + struct timespec64 ts; int rc; LASSERT(sn != NULL); @@ -109,9 +109,9 @@ ping_client_prep_rpc(sfw_test_unit_t *tsu, req->pnr_seq = lst_ping_data.pnd_counter++; spin_unlock(&lst_ping_data.pnd_lock); - cfs_fs_timeval(&tv); - req->pnr_time_sec = tv.tv_sec; - req->pnr_time_usec = tv.tv_usec; + ktime_get_real_ts64(&ts); + req->pnr_time_sec = ts.tv_sec; + req->pnr_time_usec = ts.tv_nsec / NSEC_PER_USEC; return rc; } @@ -120,12 +120,12 @@ static void ping_client_done_rpc (sfw_test_unit_t *tsu, srpc_client_rpc_t *rpc) { sfw_test_instance_t *tsi = tsu->tsu_instance; - sfw_session_t *sn = tsi->tsi_batch->bat_session; - srpc_ping_reqst_t *reqst = &rpc->crpc_reqstmsg.msg_body.ping_reqst; - srpc_ping_reply_t *reply = &rpc->crpc_replymsg.msg_body.ping_reply; - struct timeval tv; + sfw_session_t *sn = tsi->tsi_batch->bat_session; + srpc_ping_reqst_t *reqst = &rpc->crpc_reqstmsg.msg_body.ping_reqst; + srpc_ping_reply_t *reply = &rpc->crpc_replymsg.msg_body.ping_reply; + struct timespec64 ts; - LASSERT (sn != NULL); + LASSERT(sn != NULL); if (rpc->crpc_status != 0) { if (!tsi->tsi_stopping) /* rpc could have been aborted */ @@ -160,10 +160,10 @@ ping_client_done_rpc (sfw_test_unit_t *tsu, srpc_client_rpc_t *rpc) return; } - cfs_fs_timeval(&tv); + ktime_get_real_ts64(&ts); CDEBUG (D_NET, "%d reply in %u usec\n", reply->pnr_seq, - (unsigned)((tv.tv_sec - (unsigned)reqst->pnr_time_sec) * 1000000 - + (tv.tv_usec - reqst->pnr_time_usec))); + (unsigned)((ts.tv_sec - reqst->pnr_time_sec) * 1000000 + + (ts.tv_nsec / NSEC_PER_USEC - reqst->pnr_time_usec))); return; } diff --git a/lnet/selftest/selftest.h b/lnet/selftest/selftest.h index 386da3b..9379cbd 100644 --- a/lnet/selftest/selftest.h +++ b/lnet/selftest/selftest.h @@ -43,6 +43,7 @@ #define LNET_ONLY +#include #include #include #include diff --git a/lustre/mdd/mdd_internal.h b/lustre/mdd/mdd_internal.h index 4f99f02..f79746b 100644 --- a/lustre/mdd/mdd_internal.h +++ b/lustre/mdd/mdd_internal.h @@ -74,10 +74,10 @@ struct mdd_changelog { int mc_lastuser; }; -static inline __u64 cl_time(void) { - cfs_fs_time_t time; +static inline __u64 cl_time(void) +{ + struct timespec time = CURRENT_TIME; - cfs_fs_time_current(&time); return (((__u64)time.tv_sec) << 30) + time.tv_nsec; }