Re: [patch 01/29] knfsd: Add infrastructure for measuring RPC service times.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Apr 01, 2009 at 07:28:01AM +1100, Greg Banks wrote:
> Two new functions; svc_time_mark() remembers the current time
> in a struct svc_time; svc_time_elapsed() calculates and returns
> the time since a svc_time was marked.
> 
> Signed-off-by: Greg Banks <gnb@xxxxxxx>
> ---
> 
>  include/linux/sunrpc/svc.h |   12 ++++++++++++
>  net/sunrpc/svc.c           |   25 +++++++++++++++++++++++++
>  2 files changed, 37 insertions(+)
> 
> Index: bfields/include/linux/sunrpc/svc.h
> ===================================================================
> --- bfields.orig/include/linux/sunrpc/svc.h
> +++ bfields/include/linux/sunrpc/svc.h
> @@ -18,6 +18,16 @@
>  #include <linux/sunrpc/svcauth.h>
>  #include <linux/wait.h>
>  #include <linux/mm.h>
> +#include <linux/time.h>
> +
> +/*
> + * Structure used to implement a fast lockless elapsed time measure.
> + */
> +struct svc_time
> +{
> +	struct timespec	st_spec;
> +};

Are struct svc_time, ...

> +void
> +svc_time_mark(struct svc_time *st)
> +{
> +	getnstimeofday(&st->st_spec);
> +}
> +EXPORT_SYMBOL(svc_time_mark);

... and this function really necessary?  If you're not too attached to
them: it would seem simpler just to use struct timespec and
getnstimeofday directly.  (Well, at least simpler to read for someone
familiar with the kernel but not with th nfs code.)

--b.

> +
> +int
> +svc_time_elapsed(const struct svc_time *mark, struct timespec *ts)
> +{
> +	struct svc_time now;
> +
> +	svc_time_mark(&now);
> +
> +	if (now.st_spec.tv_sec < mark->st_spec.tv_sec)
> +		return -EINVAL;	/* time going backwards */
> +
> +	*ts = timespec_sub(now.st_spec, mark->st_spec);
> +
> +	return 0;
> +}
> +EXPORT_SYMBOL(svc_time_elapsed);
> +
> 
> --
> Greg
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux