[DRBD-cvs] r1464 - trunk/drbd
drbd-user@lists.linbit.com
drbd-user@lists.linbit.com
Wed, 28 Jul 2004 15:03:18 +0200 (CEST)
Author: lars
Date: 2004-07-28 15:03:18 +0200 (Wed, 28 Jul 2004)
New Revision: 1464
Modified:
trunk/drbd/drbd_receiver.c
Log:
improve performance with proto A and B (hopefully)
Modified: trunk/drbd/drbd_receiver.c
===================================================================
--- trunk/drbd/drbd_receiver.c 2004-07-28 13:01:50 UTC (rev 1463)
+++ trunk/drbd/drbd_receiver.c 2004-07-28 13:03:18 UTC (rev 1464)
@@ -843,17 +843,16 @@
STATIC void receive_data_tail(drbd_dev *mdev,int data_size)
{
- /* Actually the primary can send up to NR_REQUEST / 3 blocks,
- * but we already start when we have NR_REQUEST / 4 blocks.
+ /* kick lower level device, if we have more than (arbitrary number)
+ * reference counts on it, which typically are locally submitted io
+ * requests. don't use unacked_cnt, so we speed up proto A and B, too.
*
- * This code is only with protocol C relevant.
+ * XXX maybe: make that arbitrary number configurable.
+ * for now, I choose 1/16 of max-epoch-size.
*/
-#define NUMBER 24
- if(atomic_read(&mdev->unacked_cnt) >= NUMBER ) {
+ if (atomic_read(&mdev->local_cnt) >= (mdev->conf.max_epoch_size>>4) ) {
drbd_kick_lo(mdev);
}
-#undef NUMBER
-
mdev->writ_cnt+=data_size>>9;
}