Re: [PATCH v4 3.0-rc2-tip 13/22] 13: uprobes: Handing int3 andsinglestep exception.

From: Srikar Dronamraju
Date: Thu Jun 16 2011 - 08:13:05 EST


> > +
> > +cleanup_ret:
> > + if (u) {
> > + down_read(&mm->mmap_sem);
> > + if (!set_orig_insn(current, u, probept, true))
>
> we try to undo the probe? That doesn't make any sense. I thought you
> meant to return to userspace, let it re-take the trap and try again
> until you do manage to allocate the user resource.

I meant removing the probe itself
https://lkml.org/lkml/2011/4/21/279

We could try reseting and retrying the trap. Just that we might end up
looping under memory pressure.

>
> This behaviour makes probes totally unreliable under memory pressure.

Under memory pressure we could be unreliable.

>
> > + atomic_dec(&mm->uprobes_count);
> > + up_read(&mm->mmap_sem);
> > + put_uprobe(u);
> > + } else {
> > + /*TODO Return SIGTRAP signal */
> > + }
> > + if (utask) {
> > + utask->active_uprobe = NULL;
> > + utask->state = UTASK_RUNNING;
> > + }
> > + set_instruction_pointer(regs, probept);
> > +}
>
> Also, there's a scary amount of TODO in there...

All of those deal with delaying the signals. I am working on it at this
moment.

--
Thanks and Regards
Srikar
--
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/