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.

Reply via email to