Re: [RFC PATCH 6/9] livepatch: create per-task consistency model

Peter Zijlstra
2015-02-12T11:56:36Z

On Wed, Feb 11, 2015 at 09:21:21PM -0600, Josh Poimboeuf wrote:
> Ingo, Peter,
>
> Would you have any objections to making task_rq_lock/unlock() non-static
> (or moving them to kernel/sched/sched.h) so they can be called by the
> livepatch code?

Basically yes. I really don't want to expose that. And
kernel/sched/sched.h is very much not intended for use outside of
kernel/sched/ so even that is a no go.

> To provide some background, I'm looking for a way to temporarily prevent
> a sleeping task from running while its stack is examined, to decide
> whether it can be safely switched to the new patching "universe". For
> more details see klp_transition_task() in the patch below.
>
> Using task_rq_lock() is the most straightforward way I could find to
> achieve that.

Its not at all clear how all this would work to me. And I'm not
motivated enough to go try and reverse engineer your patch; IMO
livepatching is utter fail.

If your infrastructure relies on the uptime of a single machine you've
lost already.

FWIW, the barriers in klp_update_task_universe() and
klp_set_universe_goal() look like complete crack, and their comments are
seriously deficient.