Re: [RFC 0/6] uprobes: kill uprobes_srcu/uprobe_srcu_id

From: Oleg Nesterov
Date: Sun Apr 15 2012 - 19:45:06 EST


I'll write another email tomorrow, just one note...

On 04/15, Peter Zijlstra wrote:
>
> OK, still not seeing how your proposal could work.. consider the below
> patch comment, I'm not seeing how is_swbp_at_addr_fast() deals with an
> in-progress INT3 while we remove the probe.
>
> By ensuring the non-race with reg/unreg it will either find the uprobe
> (no problem)

Yes,

> or not find it and not see a breakpoint instruction either,
> even though the pending breakpoint was generated by a uprobe (which is
> now gone),

Yes,

> causing a false positive SIGTRAP.

No. Please note that if is_swbp_at_addr_fast() sets is_swbp == 0 we
restart this insn.

(note that we also restart if get_user_pages() fails, this is hopefully
is more correct too but minor).

> Or am I still not getting it?

My experience shows this is very unlikely. I am starting to think
I missed something, will re-check.


And. I have another reason for down_write() in register/unregister.
I am still not sure this is possible (I had no time to try to
implement), but it seems to me we can kill the uprobe counter in
mm_struct.

Oleg.

--
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/