Wey, On Thu, Oct 14, 2010 at 11:02:42AM -0700, Wey-Yi Guy wrote: > For BT/WiFi combo devices, need longer tx stuck queue > timer, so those devices won't reload firmware too often. Seeing how many tweaking queue hung monitoring we need, I started to think that the watchdog design is not so good. Currently we compare q->read_ptr with q->last_read_ptr, and if they match 3 times in a row during 200ms, we assume firmware hung. But maybe 200ms of no read_ptr activity is too small time for device. Moreover we have unlikely but possible situation when device is fully functional, but read_ptr will wrap by accident to q->last_read_ptr on every check. I think, better solution would be something like in rt2x00 or in net/sched/sch_generic.c (however rt2x00 is easier to understand). It is based on time stamp. When we get tx complete notification from hardware (and incise read_ptr) mark the time stamp. In watchdog, which tick periodically, check if queue is not empty and if current time is bigger than time_stamp + time_out, if it is - firmware hung. More smaller watchog tick give more precise hung detect (with disadvantage of more cpu usage). Stanislaw -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html