Messages in this thread | | | Date | Mon, 22 Mar 2010 21:38:36 -0400 | From | Andrew Morton <> | Subject | Re: [PATCH v1 0/10] Uprobes patches. |
| |
On Sat, 20 Mar 2010 19:54:55 +0530 Srikar Dronamraju <srikar@linux.vnet.ibm.com> wrote:
> This patchset implements Uprobes which enables you to dynamically break > into any routine in a user space application and collect information > non-disruptively.
What's missing here is a description of why all this is useful. Presumably much of the functionality which this feature offers can be done wholly in userspace. So I think it would be useful if you were to carefully explain the thinking here - what the value is, how people will use it, why it needs to be done in-kernel, etc. Right now if I was asked "why did you merge that", I'd say "gee, I dunno". I say that a lot. Knowing all of this would perhaps help me to understand your thinking regarding ftrace integration.
The code itself is positioned as non-x86-specific, but the implementation is x86-only. It would be nice to get some confirmation that other architectures can successfully use the core code. But that will be hard to arrange, so probably crossing our fingers is the best approach here.
The code scares me a bit from the "how can malicious people exploit it" point of view. Breaking into other users programs/memory, causing the kernel to scribble on itself, causing unbound memory consumption, etc. No specific issues that I can point at, just vague fear.
Do we know that exiting userspace will never ever already be using int3?
What happens if I run this code in 2016 on a CPU which has new opcodes which this code didn't know about?
When uprobes was being pushed five-odd years ago, it did all sorts of hair-raising things to avoid COWing shared pages. Lots of reasons were given why it *had* to avoid COW. But now it COWs. What were those reasons why COW was unacceptable, and what changed?
| |