[Cluster-devel] [gfs2-utils PATCH] fsck.gfs2: time each of the passes

Steven Whitehouse swhiteho at redhat.com
Fri Jul 11 17:58:05 UTC 2014


Hi,

On 11/07/14 18:41, Bob Peterson wrote:
> ----- Original Message -----
> (snip)
>> Use timersub() here perhaps?
>>
>> Otherwise looks good,
>>
>> Steve.
> Hi Steve,
>
> Thanks for the suggestion. How about this version?
Yes, that looks better. There is probably a nicer way to do the 
conversion to string too... a quick google points at using a time_t to 
contain tv_secs, converting to tm and then appending the tv_usecs after. 
Should be a bit cleaner than doing it manually,

Steve.

> Bob Peterson
> Red Hat File Systems
> ---
> diff --git a/gfs2/fsck/main.c b/gfs2/fsck/main.c
> index 81b7dd5..2c51e80 100644
> --- a/gfs2/fsck/main.c
> +++ b/gfs2/fsck/main.c
> @@ -11,6 +11,7 @@
>   #include <signal.h>
>   #include <libintl.h>
>   #include <locale.h>
> +#include <sys/time.h>
>   #define _(String) gettext(String)
>   #include <syslog.h>
>   
> @@ -247,11 +248,14 @@ static const struct fsck_pass passes[] = {
>   static int fsck_pass(const struct fsck_pass *p, struct gfs2_sbd *sdp)
>   {
>   	int ret;
> +	long hh, mm, ss, ms;
> +	struct	timeval	before, after, diff;
>   
>   	if (fsck_abort)
>   		return FSCK_CANCELED;
>   	pass = p->name;
>   	log_notice( _("Starting %s\n"), p->name);
> +	gettimeofday(&before, 0);
>   	ret = p->f(sdp);
>   	if (ret)
>   		exit(ret);
> @@ -260,7 +264,18 @@ static int fsck_pass(const struct fsck_pass *p, struct gfs2_sbd *sdp)
>   		log_notice( _("%s interrupted   \n"), p->name);
>   		return FSCK_CANCELED;
>   	}
> -	log_notice( _("%s complete      \n"), p->name);
> +	gettimeofday(&after, 0);
> +	timersub(&after, &before, &diff);
> +	hh = diff.tv_sec / 3600;
> +	mm = (diff.tv_sec / 60) - (hh * 60);
> +	ss = diff.tv_sec - (hh * 3600) - (mm * 60);
> +	ms = diff.tv_usec / 1000;
> +	log_notice( _("%s completed in "), p->name);
> +	if (hh)
> +		log_notice("%ldh", hh);
> +	if (mm)
> +		log_notice("%ldm", mm);
> +	log_notice("%ld.%03lds      \n", ss, ms);
>   	return 0;
>   }
>   




More information about the Cluster-devel mailing list