Re: Re: [RFC][PATCH 3/4] tracing/kprobes: Fail to unregister ifprobe event files are open

From: Masami Hiramatsu
Date: Fri Aug 02 2013 - 00:57:53 EST


(2013/08/01 22:34), Oleg Nesterov wrote:
> Just one off-topic note,
>
>> > @@ -632,7 +635,9 @@ static int release_all_trace_probes(void)
>> > /* TODO: Use batch unregistration */
>> > while (!list_empty(&probe_list)) {
>> > tp = list_entry(probe_list.next, struct trace_probe, list);
>> > - unregister_trace_probe(tp);
>> > + ret = unregister_trace_probe(tp);
>> > + if (ret)
>> > + goto end;
>> > free_trace_probe(tp);
>> > }
> This obviously breaks all-or-nothing semantics (I mean, this breaks
> the intent, the current code is buggy).

I see, since we can't lock all operations, we have to change the
semantics. I think it's OK.

> I think we can't avoid this, and I hope this is fine. But then perhaps
> we should simply remove the "list_for_each_entry" check above?

Yes, it should be done. And in that case, I'd like to remove
all removable probes, as much as possible.

BTW, I'd like to replace this "remove all" behavior with
writing "-:*", instead of writing without append flag.

Thank you,
--
Masami HIRAMATSU
IT Management Research Dept. Linux Technology Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@xxxxxxxxxxx


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/