On Tue, Aug 05, 2008 at 07:20:42PM -0700, Roland McGrath wrote: > > Yes! > [...] > > What is the use case for a utrace client to do a utrace_engine_get/put()? > > Wouldn't it be more robust if utrace implicitly handles refcounts as > > you've detailed below? > > If the only operations that affect this "count" are implicit, then I assume > you must mean those are attach and detach. What today's utrace has now is > an "implicit count": it's 1 when attached, and 0 when not. It's perfectly > robust as described. Since it's implicit, you have to observe all those > squirrelly rules about synchronizing with UTRACE_DETACH that I've been > talking about. > > If there is no utrace_engine_put, then what difference are you saying an > enthusiastic "Yes!" to? Explain what you have in mind that would be > somehow different from what we already had, but have no utrace_engine_put.
My initial opinion was that you were moving away from RCU to also rid the task_struct->utrace assertion failure, which IIRC from some of the investigations at the time, were mostly for RCU lifetime reasons. Ananth