Possible problem with utrace_control

Alpár Török torokalpar at gmail.com
Fri Jun 11 07:56:24 UTC 2010


Hi,

 I have the following scenario:
Producer consumer model. The traced tasks are producers, and there is
one consumer.  Produces produce data in a buffer. If the buffer is
full,
the producer registers itself into a list (lock protected) and returns
UTRACE_STOP. The consumer always checks the list and
utrace_control(REPORT)s the producers (all of them).  The monitoring
callback is called again, and the producer produces what it should
have in the first place.

This works well most of the time. Some times it would seem that
utrace_control doesn't  do it's job, and doesn't return an error
either.  I can observe this when there is a high pressure on the
buffer, and it's almost full so the  STOP / RESUME cycle happens
often.

What i would like to know, is how to go about clarifying this. First
of all is my assumption correct that UTRACE_REPORT will always cause
annother call to the monitoring callback?  What other precautions
should i take? If i am using utrace correctly how could i find the
problem within it ?

This problem leads to a deadlock in my model since the consumer goes
to sleep relying on the producer to wake it up, that i turn never
wakes up itself.

Alpar Torok




More information about the utrace-devel mailing list