probe syscall.io_submit.return {
/* this assumes a given proc will do lots of io_submit calls, and
* so doesn't do the more expensive "delete in_iosubmit[p]". If
* there are lots of procs doing small number of io_submit calls,
* the hash may grow pretty big, so using delete may be better
*/
in_iosubmit[tid()] = 0
}
However, the test to see if a thread is currently executing in io_submit
is performed using the membership operator 'in':
if (tid() in in_iosubmit)
This is obviously wrong. We can do one of two things:
1) change the test to if (in_iosubmit[tid()] == 1) or
2) just perform the delete in the return probe
While I agree that we typically have a small number of threads performing
io_submit, I don't believe there is substance to the performance claims
for the delete operator. So, I've opted for solution 2.