Messages in this thread | | | Date | Tue, 1 Dec 2009 11:33:51 +0100 | From | Ingo Molnar <> | Subject | Re: [RFC] [PATCH 0/2] Futex fault injection |
| |
* Sripathi Kodi <sripathik@in.ibm.com> wrote:
> Hi, > > This patch set adds fault injection for futex subsystem. It adds > faults at places where reading/writing from user space can return > EFAULT. This will be useful in testing any significant change to futex > subsystem.
Instead of this unacceptably ugly and special-purpose debugfs interface, please extend perf events to allow event injection. Some other places in the kernel (which deal with rare events) want/need this capability too.
A good way to do it would be to define tracepoints in these places via a new kind of TRACE_EVENT(), which would also define an event_injected_*() callback to use.
So, for example, instead of:
if (futex_should_fail(&fail_futex_efault, 1)) return -EFAULT;
if (unlikely(!access_ok(rw, uaddr, sizeof(u32)))) { trace_get_futex_key_efault(uaddr); return -EFAULT; }
We'd have something like:
if (unlikely(!access_ok(rw, uaddr, sizeof(u32))) || event_injected_get_futex_key_efault()) {
trace_get_futex_key_efault(uaddr); return -EFAULT; }
And each separate event injection point could thus be triggered individually.
To use this there would be a separate facility to inject events - via the perf events ioctl for example.
Ingo
| |