All of lore.kernel.org
 help / color / mirror / Atom feed
From: jbrassow@sourceware.org <jbrassow@sourceware.org>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] cluster/cmirror-kernel/src dm-cmirror-client.c ...
Date: 7 Dec 2006 18:58:34 -0000	[thread overview]
Message-ID: <20061207185834.1629.qmail@sourceware.org> (raw)

CVSROOT:	/cvs/cluster
Module name:	cluster
Branch: 	RHEL4
Changes by:	jbrassow at sourceware.org	2006-12-07 18:58:32

Modified files:
	cmirror-kernel/src: dm-cmirror-client.c dm-cmirror-server.c 

Log message:
	Get rid of a number of unnecessary messages, which spray to the console
	during errors and cause the mirror reconfiguration to take a long time.
	(Even been seen to cause machines to be fenced if the load is too great.)

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cmirror-kernel/src/dm-cmirror-client.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.32&r2=1.1.2.33
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cmirror-kernel/src/dm-cmirror-server.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.17&r2=1.1.2.18

--- cluster/cmirror-kernel/src/Attic/dm-cmirror-client.c	2006/12/05 17:49:08	1.1.2.32
+++ cluster/cmirror-kernel/src/Attic/dm-cmirror-client.c	2006/12/07 18:58:32	1.1.2.33
@@ -905,9 +905,8 @@
 	spin_lock(&region_state_lock);
 	list_for_each_entry_safe(rs, tmp_rs, &clear_region_list, rs_list){
 		if(lc == rs->rs_lc && region == rs->rs_region){
-#ifdef DEBUG
-			DMINFO("Mark pre-empting clear of region %Lu", region);
-#endif
+			DMDEBUG("Mark pre-empting clear (%Lu/%s)",
+				region, lc->uuid + (strlen(lc->uuid) - 8));
 			list_del_init(&rs->rs_list);
 			list_add(&rs->rs_list, &marked_region_list);
 			clear_region_count--;
@@ -1023,7 +1022,7 @@
 	** clearing without ever marking..................................... */
 
 	if(!rs_new){
-		DMERR("Unable to allocate region_state for mark.");
+		DMERR("Unable to allocate region_state for clear.");
 		BUG();
 	}
 
@@ -1058,9 +1057,6 @@
 	while(consult_server(lc, region, LRT_COMPLETE_RESYNC_WORK, &success_tmp)){
 		DMWARN("unable to notify server of completed resync work");
 	}
-	if (!success)
-		DMERR("Attempting to revert sync status of region #%llu", region);
-
 	return;
 }
 
@@ -1069,11 +1065,7 @@
 	int i;
 	region_t rtn;
 	struct log_c *lc = (struct log_c *) log->context;
-/* take out optimization
-	if(atomic_read(&lc->in_sync) == 1){
-		return lc->region_count;
-	}
-*/
+
 	/* Try to get sync count up to five times */
 	for (i = 0; i < 5 && consult_server(lc, 0, LRT_GET_SYNC_COUNT, &rtn); i++);
 	if(i >= 5){
--- cluster/cmirror-kernel/src/Attic/dm-cmirror-server.c	2006/09/05 17:50:11	1.1.2.17
+++ cluster/cmirror-kernel/src/Attic/dm-cmirror-server.c	2006/12/07 18:58:32	1.1.2.18
@@ -522,8 +522,8 @@
 		}
 	} else if (ru->ru_rw == RU_RECOVER) {
 		DMINFO("Attempt to mark a region " SECTOR_FORMAT 
-		      ", which is being recovered.",
-		      lr->u.lr_region);
+		      "/%s which is being recovered.",
+		       lr->u.lr_region, lc->uuid + (strlen(lc->uuid) - 8));
 		DMINFO("Current recoverer: %u", ru->ru_nodeid);
 		DMINFO("Mark requester   : %u", who);
 
@@ -534,8 +534,8 @@
 	} else {
 		DMWARN("Attempt to mark a already marked region (%u,"
 		       SECTOR_FORMAT
-		       ")",
-		       who, lr->u.lr_region);
+		       "/%s)",
+		       who, lr->u.lr_region, lc->uuid + (strlen(lc->uuid) - 8));
 		mempool_free(new, region_user_pool);
 	}
 
@@ -595,8 +595,6 @@
 
 
 static int server_complete_resync_work(struct log_c *lc, struct log_request *lr, int success){
-	uint32_t info;
-
 	if (lr->u.lr_region > lc->region_count) {
 		return -EINVAL;
 	}
@@ -610,30 +608,33 @@
 			lc->sync_count++;
 		}
 	} else if (log_test_bit(lc->sync_bits, lr->u.lr_region)) {
-		DMERR("complete_resync_work region going out-of-sync: disk failure");
 		/* gone for now: lc->sync_count--; */
 		log_clear_bit(lc, lc->sync_bits, lr->u.lr_region);
 	}
 
-	info = (uint32_t)(lc->region_count - lc->sync_count);
-
-	if((info < 10001 && !(info%1000)) ||
-	   (info < 1000 && !(info%100)) ||
-	   (info < 200 && !(info%25)) ||
-	   (info < 6)){
-		DMDEBUG(SECTOR_FORMAT " out-of-sync regions remaining for %s.",
-		       lc->region_count - lc->sync_count,
-		       lc->uuid + (strlen(lc->uuid) - 8));
-	}
 	return 0;
 }
 
 
 static int server_get_sync_count(struct log_c *lc, struct log_request *lr){
+	if (lc->sync_count > lc->region_count) {
+		DMERR("sync_count (" SECTOR_FORMAT ") > region_count (" SECTOR_FORMAT ") in %s!",
+		      lc->sync_count, lc->region_count, lc->uuid + (strlen(lc->uuid) - 8));
+		disk_resume(lc);
+	}
+
 	lr->u.lr_region_rtn = lc->sync_count;
 	return 0;
 }
 
+static void report_duplicate_log(struct log_c *lc)
+{
+	DMERR("HEY!!! There are two matches for %s",
+	      lc->uuid + (strlen(lc->uuid) - 8));
+	list_for_each_entry(lc, &log_list_head, log_list) {
+		DMERR("  %s", lc->uuid + (strlen(lc->uuid) - 8));
+	}
+}
 
 static struct log_c *get_log_context(char *uuid){
 	struct log_c *lc, *r = NULL;
@@ -641,8 +642,7 @@
 	list_for_each_entry(lc, &log_list_head, log_list){
 		if(!strncmp(lc->uuid, uuid, MAX_NAME_LEN)){
 			if (r)
-				DMERR("HEY!!! There are two matches for %s",
-				      lc->uuid + (strlen(lc->uuid) - 8));
+				report_duplicate_log(lc);
 			else
 				r = lc;
 		}
@@ -932,6 +932,7 @@
 				break;
 			}
 			error = server_mark_region(lc, &lr, nodeid);
+			lr.u.lr_int_rtn = 0;
 			break;
 		case LRT_CLEAR_REGION:
 			if(!(nodeid = 



             reply	other threads:[~2006-12-07 18:58 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-07 18:58 jbrassow [this message]
  -- strict thread matches above, loose matches on Subject: below --
2007-10-03 19:02 [Cluster-devel] cluster/cmirror-kernel/src dm-cmirror-client.c jbrassow
2007-09-27 20:31 jbrassow
2007-09-26  3:15 jbrassow
2007-09-21 20:07 jbrassow
2007-09-13 15:24 jbrassow
2007-07-11 16:18 jbrassow
2007-04-26 16:55 jbrassow
2007-04-26 16:54 jbrassow
2007-04-24 20:10 jbrassow
2007-04-24 20:08 jbrassow
2007-04-10  7:13 jbrassow
2007-04-10  7:12 jbrassow
2007-04-05 21:33 jbrassow
2007-04-05 21:32 jbrassow
2007-04-03 18:23 jbrassow
2007-04-03 18:21 jbrassow
2007-03-22 22:34 jbrassow
2007-03-22 22:22 jbrassow
2007-03-14  4:28 jbrassow
2007-02-26 17:38 jbrassow
2007-02-20 19:35 jbrassow
2007-02-19 16:29 jbrassow
2007-02-14 17:44 jbrassow
2007-02-02 17:22 jbrassow
2007-01-08 19:28 jbrassow
2006-09-05 17:50 jbrassow
2006-09-05 17:48 jbrassow
2006-07-27 23:11 jbrassow
2006-07-27 23:11 jbrassow
2006-07-22 22:19 jbrassow
2006-07-22 22:19 jbrassow
2006-07-22 22:12 jbrassow
2006-06-29 19:49 jbrassow
2006-06-29 19:48 jbrassow
2006-06-29 19:46 jbrassow
2006-06-27 20:19 jbrassow
2006-06-15 19:48 jbrassow
2006-06-15 19:34 jbrassow
2006-06-13 16:26 jbrassow

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20061207185834.1629.qmail@sourceware.org \
    --to=jbrassow@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.