[DRBD-user] DRBD (0.6) slows down the application

Lars Ellenberg Lars.Ellenberg at linbit.com
Mon Aug 22 09:35:00 CEST 2005

Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.


well.
I just thought it may have something to do with write hints being
disabled because we have a race were we could forget to clean the flag
after reconnect:


Index: drbd/drbd_receiver.c
===================================================================
--- drbd/drbd_receiver.c	(Revision 1914)
+++ drbd/drbd_receiver.c	(Arbeitskopie)
@@ -1379,6 +1379,9 @@
 
 	clear_bit(DO_NOT_INC_CONCNT,&drbd_conf[minor].flags);
 
+	/* it may still be set, because some unplug was on the fly */
+	if (!disable_io_hints) mdev->flags &= ~(1<<WRITE_HINT_QUEUED);
+
 	printk(KERN_INFO DEVICE_NAME "%d: Connection lost.\n",minor);
 }
 
Index: drbd/drbd_req-2.4.c
===================================================================
--- drbd/drbd_req-2.4.c	(Revision 1914)
+++ drbd/drbd_req-2.4.c	(Arbeitskopie)
@@ -253,7 +253,9 @@
 	}
 
 	if(!test_and_set_bit(WRITE_HINT_QUEUED,&mdev->flags)) {
-		queue_task(&mdev->write_hint_tq, &tq_disk);
+		/* if it could not be queued, clear our flag again, too */
+		if (!queue_task(&mdev->write_hint_tq, &tq_disk))
+			clear_bit(WRITE_HINT_QUEUED,&mdev->flags);
 	}
 
 	submit_bh(rw,nbh);


-- 
: Lars Ellenberg                                  Tel +43-1-8178292-0  :
: LINBIT Information Technologies GmbH            Fax +43-1-8178292-82 :
: Schoenbrunner Str. 244, A-1120 Vienna/Europe   http://www.linbit.com :
__
please use the "List-Reply" function of your email client.



More information about the drbd-user mailing list