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(-)

-- 
2.1.0.rc2

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to