[dahdi-commits] sruffell: linux/trunk r8096 - /linux/trunk/drivers/dahdi/wctdm24xxp/base.c

SVN commits to the DAHDI project dahdi-commits at lists.digium.com
Thu Feb 25 11:34:05 CST 2010


Author: sruffell
Date: Thu Feb 25 11:34:02 2010
New Revision: 8096

URL: http://svnview.digium.com/svn/dahdi?view=rev&rev=8096
Log:
wctdm24xxp: Only use the first three EFRAMES for module commands.

On a 2.6.32.7 debug kernel with a TDM2400, this can save up to 30ms every second
of processing time without any appreciable impact on runtime performance since
most of the commands to the modules during normal operation are reads, and
therefore only one would be in each SFRAME anyway.  The impact of this change is
less for TDM410 and TDM800 since they already limit the number of modules that
they look for queued commands for.

There is still more room for optimizing module command handling.

Modified:
    linux/trunk/drivers/dahdi/wctdm24xxp/base.c

Modified: linux/trunk/drivers/dahdi/wctdm24xxp/base.c
URL: http://svnview.digium.com/svn/dahdi/linux/trunk/drivers/dahdi/wctdm24xxp/base.c?view=diff&rev=8096&r1=8095&r2=8096
==============================================================================
--- linux/trunk/drivers/dahdi/wctdm24xxp/base.c (original)
+++ linux/trunk/drivers/dahdi/wctdm24xxp/base.c Thu Feb 25 11:34:02 2010
@@ -865,7 +865,8 @@
 				if (y < wc->desc->ports)
 					writechunk[y] = wc->chans[y]->writechunk[x];
 			}
-			cmd_dequeue(wc, writechunk, y, x);
+			if (x < 3)
+				cmd_dequeue(wc, writechunk, y, x);
 		}
 		if (!x)
 			wc->blinktimer++;
@@ -1102,7 +1103,8 @@
 		for (y=0;y < wc->cards;y++) {
 			if (likely(wc->initialized) && (y < wc->desc->ports))
 				wc->chans[y]->readchunk[x] = readchunk[y];
-			cmd_decipher(wc, readchunk, y);
+			if (x < 3)
+				cmd_decipher(wc, readchunk, y);
 		}
 		if (wc->vpm100) {
 			for (y=NUM_CARDS;y < NUM_CARDS + NUM_EC; y++)




More information about the dahdi-commits mailing list