First of all, sorry for the overly long series that this turned into. I'm currently doing a survey of all code using time_t/timeval/timespec to get an idea of what work needs to be done where, in particular in terms of user interface changes.
Lustre is by far the most pervasive user of time types and functions, and I could not even find my way through the code to see what needs to be done other than actually doing that work.
On most other subsystems, we try to use montonic times where possible for in-kernel uses. I did not do that here but kept using wall-clock times, in order to leave the debug output and procfs files untouched. A follow-up series could convert a lot of the ktime_get_real_*() to ktime_get_*() to change that if we don't care about the format.
There are a couple of things that I left unchanged:
- Socket timestamps in drivers/staging/lustre/lnet/lnet/lib-socket.c need to wait for the socket API to be changed first
- inode timestamps need to be changed in VFS, which is a larger work
- The conrpc selftest has a user interface based on timeval that is hard to change.
All patches are based on staging-testing and built-tested on 32-bit arm and x86 as well as 64-bit arm.
Arnd Bergmann (37): staging/lustre: use jiffies for lp_last_query times staging/lustre: use 64-bit inode timestamps internally staging/lustre: obd: remove unused data structures staging/lustre: tracefile: use 64-bit seconds staging/lustre: use 64-bit timestamps in procfs output staging/lustre: use time64_t for l_last_activity staging/lustre: use ktime_t for calculating elapsed time staging/lustre: change rq_at_index type staging/lustre: avoid unnecessary timeval conversion staging/lustre: use 64-bit time LNetCtl() staging/lustre: use 'long' return type for cfs_duration_sec() staging/lustre: use jiffies_to_timeval() instead of cfs_duration_usec staging/lustre: use 64-bit ibn_incarnation computation staging/lustre: use 64-bit times for lnet_shuffle_seed staging/lustre: use 64-bit computation in s2dhms() staging/lustre: use 64-bit timestamps for selftest staging/lustre: use 64-bit time for pl_recalc staging/lustre: use 64-bit time for obd eviction staging/lustre: use 64-bit time for procfs output staging/lustre: use 64-bit time for adaptive timeout staging/lustre: use 64-bit llite procfs timestamps staging/lustre: use 64-bit times for ksnd_connd staging/lustre: use 64-bit time for ni_last_alive staging/lustre: use 64-bit time for selftest staging/lustre: partially use time64_t for capa expiry staging/lustre: use 64-bit times in ptlrpc_enc_page_pool staging/lustre: use 64-bit times in debug print staging/lustre: use 64-bit times in another debug print staging/lustre: use 64-bit timestamps for mdc staging/lustre: use 64-bit times for ptlrpc sec expiry staging/lustre: use 64-bit times for ptlrpc_sec staging/lustre: use 64-bit times for exp_last_request_time staging/lustre: use 64-bit times for request times staging/lustre: remove a bit of dead code staging/lustre: remove wrappers for timer functions staging/lustre: remove unused time handling functions staging/lustre: remove CFS_TIME_T definition
.../lustre/include/linux/libcfs/libcfs_debug.h | 4 +- .../lustre/include/linux/libcfs/libcfs_prim.h | 13 -- .../lustre/include/linux/libcfs/libcfs_time.h | 49 -------- .../lustre/include/linux/libcfs/linux/linux-time.h | 35 +----- .../staging/lustre/include/linux/lnet/lib-lnet.h | 2 +- .../staging/lustre/include/linux/lnet/lib-types.h | 2 +- .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c | 6 +- .../staging/lustre/lnet/klnds/socklnd/socklnd.c | 2 +- .../staging/lustre/lnet/klnds/socklnd/socklnd.h | 6 +- .../staging/lustre/lnet/klnds/socklnd/socklnd_cb.c | 8 +- drivers/staging/lustre/lnet/lnet/api-ni.c | 6 +- drivers/staging/lustre/lnet/lnet/config.c | 2 +- drivers/staging/lustre/lnet/lnet/lib-eq.c | 9 +- drivers/staging/lustre/lnet/lnet/lib-move.c | 4 +- drivers/staging/lustre/lnet/lnet/router.c | 10 +- drivers/staging/lustre/lnet/lnet/router_proc.c | 2 +- drivers/staging/lustre/lnet/selftest/conctl.c | 2 +- drivers/staging/lustre/lnet/selftest/conrpc.c | 10 +- drivers/staging/lustre/lnet/selftest/console.c | 2 +- drivers/staging/lustre/lnet/selftest/console.h | 2 +- drivers/staging/lustre/lnet/selftest/framework.c | 5 +- drivers/staging/lustre/lnet/selftest/ping_test.c | 12 +- drivers/staging/lustre/lnet/selftest/rpc.c | 9 +- drivers/staging/lustre/lnet/selftest/selftest.h | 2 +- drivers/staging/lustre/lnet/selftest/timer.c | 14 +-- drivers/staging/lustre/lnet/selftest/timer.h | 2 +- drivers/staging/lustre/lustre/include/cl_object.h | 6 +- .../staging/lustre/lustre/include/lprocfs_status.h | 6 +- .../lustre/lustre/include/lustre/lustre_idl.h | 1 + .../staging/lustre/lustre/include/lustre_capa.h | 16 ++- drivers/staging/lustre/lustre/include/lustre_dlm.h | 6 +- .../staging/lustre/lustre/include/lustre_export.h | 7 +- .../staging/lustre/lustre/include/lustre_import.h | 14 +-- drivers/staging/lustre/lustre/include/lustre_net.h | 24 ++-- drivers/staging/lustre/lustre/include/lustre_sec.h | 2 +- drivers/staging/lustre/lustre/include/obd.h | 97 +-------------- drivers/staging/lustre/lustre/include/obd_class.h | 2 +- drivers/staging/lustre/lustre/ldlm/ldlm_lock.c | 2 +- drivers/staging/lustre/lustre/ldlm/ldlm_pool.c | 30 ++--- drivers/staging/lustre/lustre/ldlm/ldlm_request.c | 29 ++--- drivers/staging/lustre/lustre/libcfs/debug.c | 4 +- .../lustre/lustre/libcfs/linux/linux-prim.c | 70 ----------- .../lustre/lustre/libcfs/linux/linux-tracefile.c | 8 +- drivers/staging/lustre/lustre/libcfs/module.c | 3 - drivers/staging/lustre/lustre/llite/file.c | 2 +- .../staging/lustre/lustre/llite/llite_internal.h | 2 +- drivers/staging/lustre/lustre/llite/llite_lib.c | 8 +- drivers/staging/lustre/lustre/llite/lproc_llite.c | 24 ++-- drivers/staging/lustre/lustre/llite/super25.c | 6 +- drivers/staging/lustre/lustre/llite/vvp_io.c | 4 +- drivers/staging/lustre/lustre/llite/vvp_object.c | 12 +- drivers/staging/lustre/lustre/lov/lov_obd.c | 2 +- drivers/staging/lustre/lustre/mdc/mdc_locks.c | 2 +- drivers/staging/lustre/lustre/mdc/mdc_reint.c | 2 +- drivers/staging/lustre/lustre/mdc/mdc_request.c | 2 +- drivers/staging/lustre/lustre/obdclass/genops.c | 6 +- drivers/staging/lustre/lustre/obdclass/llog.c | 2 +- .../lustre/lustre/obdclass/lprocfs_status.c | 27 ++--- .../lustre/lustre/obdclass/lustre_handles.c | 6 +- .../staging/lustre/lustre/obdclass/obd_config.c | 13 +- .../staging/lustre/lustre/obdecho/echo_client.c | 4 +- drivers/staging/lustre/lustre/osc/lproc_osc.c | 16 +-- drivers/staging/lustre/lustre/osc/osc_io.c | 6 +- drivers/staging/lustre/lustre/osc/osc_request.c | 4 +- drivers/staging/lustre/lustre/ptlrpc/client.c | 48 ++++---- drivers/staging/lustre/lustre/ptlrpc/events.c | 8 +- drivers/staging/lustre/lustre/ptlrpc/import.c | 14 +-- .../staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c | 16 +-- drivers/staging/lustre/lustre/ptlrpc/niobuf.c | 10 +- .../staging/lustre/lustre/ptlrpc/pack_generic.c | 6 +- drivers/staging/lustre/lustre/ptlrpc/pinger.c | 29 +++-- drivers/staging/lustre/lustre/ptlrpc/sec.c | 28 ++--- drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c | 29 +++-- drivers/staging/lustre/lustre/ptlrpc/sec_config.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/sec_gc.c | 6 +- drivers/staging/lustre/lustre/ptlrpc/sec_lproc.c | 4 +- drivers/staging/lustre/lustre/ptlrpc/service.c | 135 +++++++++++---------- 77 files changed, 380 insertions(+), 652 deletions(-)