[Cluster-devel] [gfs2-utils PATCH] fsck.gfs2: time each of the passes
Bob Peterson
rpeterso at redhat.com
Thu Jul 10 16:53:01 UTC 2014
Hi,
This patch reports how much time was taken in each pass.
Regards,
Bob Peterson
Red Hat File Systems
Signed-off-by: Bob Peterson <rpeterso at redhat.com>
---
gfs2/fsck/main.c | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/gfs2/fsck/main.c b/gfs2/fsck/main.c
index 81b7dd5..785f0c4 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;
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,20 @@ 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);
+ hh = (after.tv_sec - before.tv_sec) / 3600;
+ mm = ((after.tv_sec - before.tv_sec) / 60) - (hh * 60);
+ ss = ((after.tv_sec - before.tv_sec)) - (hh * 3600) - (mm * 60);
+ ms = after.tv_usec - before.tv_usec;
+ if (ms < 0)
+ ms += 1000000;
+ ms /= 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