On 12/22/2015 11:49 AM, H. Nikolaus Schaller wrote:
Hi,
Am 22.12.2015 um 10:21 schrieb H. Nikolaus Schaller hns@goldelico.com:
Am 22.12.2015 um 10:16 schrieb H. Nikolaus Schaller hns@goldelico.com:
Well, shortly after writing this mail I think I may not have locked activities well enough. Therefore a very fast led trigger could schedule more and more workers which are finally limited by the I2C bandwidth and then, the system is no longer capable of handling all incoming led trigger requests.
I will try to fix that situation.
Well, it depends on something I could not find good information about:
can a work function be called concurrently several times? Or is it guaranteed that a work function is scheduled from a work_queue only if the previous one is finished? In the latter case, the problem I was thinking about can not happen.
I think they are serial, but that's from my experience of working on pandora with just 1 CPU. It's quite common to see canceling old work items before adding new ones, probably to keep queue growth under control. It might be useful to do that in your case too.
Grazvydas