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

Lars Ellenberg Lars.Ellenberg at linbit.com
Mon Sep 12 15:35:10 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.


/ 2005-09-12 15:22:58 +0200
\ Hans Holm:
> 
> Hello Lars,
> 
> I moved the patch to before while(1) in asender thread function.
> This is working as fine as when I patched inside drbd_recv(), which is
> removed!
> 
> So the signal DRBD_SIG is always blocked when the asender thread is
> re-started
> after a Full sync!???!

if you say so.
it should not, however.

> Can I keep the patch before the while(1) then?

sure.

> //PATCH in drbd_receive.c line 1523 (drbd-0.6.12)
hm? your line count seems to be confused.
should be line 1462

I'd suggest this, then
(though untested, and it has been a while since I looked into 0.6 code):

Index: branches/drbd-0.6/drbd/drbd_receiver.c
===================================================================
--- branches/drbd-0.6/drbd/drbd_receiver.c	(revision 1934)
+++ branches/drbd-0.6/drbd/drbd_receiver.c	(working copy)
@@ -1463,6 +1463,13 @@
 
 	ping_sent_at=0;
 
+	spin_lock_irqsave(&current->SIGMASK_LOCK, flags);
+	sigfillset(&current->blocked);
+	sigdelset(&current->blocked,DRBD_SIG);
+	sigdelset(&current->blocked,DRBD_SIGKILL);
+	RECALC_SIGPENDING(current);
+	spin_unlock_irqrestore(&current->SIGMASK_LOCK, flags);
+
 	while(1) {
 		rr=drbd_recv(mdev,((char*)&pkt)+rsize,sizeof(pkt)-rsize,1);
 		if(rr == -ERESTARTSYS) {


> Thanks for the answers and advice, Hans

welcome.

would be interessting to know where it was blocked,
and why it stays blocked, though.
this is probably masking a bug somewhere else...

-- 
: 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