On 08/16, Oleg Nesterov wrote: > > On top of utrace_set_events() 1-4 fixes I sent. > > utrace_barrier() needs more fixes, I'll send them separately.
Later. > Untested, but still I am asking for your review. Of course I am > going to test these changes later, but I'm afraid the thorough > review is much more important, it is not clear to me how it is > possible to really test the changes like this. Well, I tried to test these changes, seems to work. But... From 2/3 changelog: This means that mark_engine_detached() can race with REPORT_CALLBACKS() but there is nothing new. Yes, there is nothing new. But, Roland, this is WRONG! With or without these fixes utrace_control()->mark_engine_detached() was always wrong if it races with REPORT/REPORT_CALLBACKS. Not sure what we were thinking about :/ Look. Suppose that utrace_control(DETACH) is called right after start_callback() returns ops != NULL. After that finish_callback(..., ops->callback(...)) can hit ->callback == NULL! The obvious and simplest solution: utrace_detached_ops{} should have the dummy handler for every callback. But I'd like to think a bit more. Oleg.