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

Jiri Slaby
2015-02-12T13:26:47Z

On 02/12/2015, 04:21 AM, 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?
>
> 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.

Hi, I cannot speak whether it is the proper way or not.

But if so, would it make sense to do the opposite: expose an API to walk
through the processes' stack and make the decision? Concretely, move
parts of klp_stacktrace_address_verify_func to sched.c or somewhere in
kernel/sched/ and leave task_rq_lock untouched.

regards,
--
js
suse labs