Put a meter on that rig. You'll find that power consumption is dropping off a cliff. Cgminer is tuning out hw errors and chainminner is happily gobbling up power without regard to hw errors. The difference in efficiency is not small.
You can make cgminer behave the same way by just changing the tune up/down values. That's an optional value you can pass directly to cgminer without changing the code.
What options are you starting cgminer with?
I've been altering these lines in driver-bab.c
#define BAB_MAXSPEED 57
#define BAB_DEFMAXSPEED 55
#define BAB_DEFSPEED 53
#define BAB_MINSPEED 52
#define BAB_ABSMINSPEED 32
#define BAB_TUNEUP 1.0
#define BAB_TUNEDOWN 10.0
https://github.com/ckolivas/cgminer/blob/master/driver-bab.cThese are also the values that can be passed to cgminer on startup. The format was posted by kano in the cgminer thread...somewhere around pg 700 I believe.
Actually 710:
https://bitcointalk.org/index.php?topic=28402.msg4726840#msg4726840From asic-readme:
--bab-options Set BaB options max:def:min:up:down:hz:delay:trf
https://github.com/ckolivas/cgminer/blob/master/ASIC-README