Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 7 Mar 2011 10:41:12 +0000 (UTC)
From:      Pawel Jakub Dawidek <pjd@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r219372 - head/sbin/hastd
Message-ID:  <201103071041.p27AfCas032344@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pjd
Date: Mon Mar  7 10:41:12 2011
New Revision: 219372
URL: http://svn.freebsd.org/changeset/base/219372

Log:
  - Log size of data to synchronize in human readable form (using %N).
  - Log synchronization time (using %T).
  - Log synchronization speed in human readable form (using %N).
  
  MFC after:	2 weeks

Modified:
  head/sbin/hastd/primary.c

Modified: head/sbin/hastd/primary.c
==============================================================================
--- head/sbin/hastd/primary.c	Mon Mar  7 10:39:26 2011	(r219371)
+++ head/sbin/hastd/primary.c	Mon Mar  7 10:41:12 2011	(r219372)
@@ -1667,6 +1667,7 @@ sync_thread(void *arg __unused)
 	struct hast_resource *res = arg;
 	struct hio *hio;
 	struct g_gate_ctl_io *ggio;
+	struct timeval tstart, tend, tdiff;
 	unsigned int ii, ncomp, ncomps;
 	off_t offset, length, synced;
 	bool dorewind;
@@ -1680,8 +1681,10 @@ sync_thread(void *arg __unused)
 	for (;;) {
 		mtx_lock(&sync_lock);
 		if (offset >= 0 && !sync_inprogress) {
-			pjdlog_info("Synchronization interrupted. "
-			    "%jd bytes synchronized so far.",
+			gettimeofday(&tend, NULL);
+			timersub(&tend, &tstart, &tdiff);
+			pjdlog_info("Synchronization interrupted after %#.0T. "
+			    "%NB synchronized so far.", &tdiff,
 			    (intmax_t)synced);
 			event_send(res, EVENT_SYNCINTR);
 		}
@@ -1713,10 +1716,11 @@ sync_thread(void *arg __unused)
 			if (offset < 0)
 				pjdlog_info("Nodes are in sync.");
 			else {
-				pjdlog_info("Synchronization started. %ju bytes to go.",
-				    (uintmax_t)(res->hr_extentsize *
+				pjdlog_info("Synchronization started. %NB to go.",
+				    (intmax_t)(res->hr_extentsize *
 				    activemap_ndirty(res->hr_amp)));
 				event_send(res, EVENT_SYNCSTART);
+				gettimeofday(&tstart, NULL);
 			}
 		}
 		if (offset < 0) {
@@ -1730,9 +1734,17 @@ sync_thread(void *arg __unused)
 			rw_rlock(&hio_remote_lock[ncomp]);
 			if (ISCONNECTED(res, ncomp)) {
 				if (synced > 0) {
+					int64_t bps;
+
+					gettimeofday(&tend, NULL);
+					timersub(&tend, &tstart, &tdiff);
+					bps = (int64_t)((double)synced /
+					    ((double)tdiff.tv_sec +
+					    (double)tdiff.tv_usec / 1000000));
 					pjdlog_info("Synchronization complete. "
-					    "%jd bytes synchronized.",
-					    (intmax_t)synced);
+					    "%NB synchronized in %#.0lT (%NB/sec).",
+					    (intmax_t)synced, &tdiff,
+					    (intmax_t)bps);
 					event_send(res, EVENT_SYNCDONE);
 				}
 				mtx_lock(&metadata_lock);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201103071041.p27AfCas032344>