Re: [PATCH v3 2/2] livepatch: force transition process to finish

From: Miroslav Benes
Date: Fri Nov 03 2017 - 04:07:32 EST


On Thu, 2 Nov 2017, Josh Poimboeuf wrote:

> On Tue, Oct 31, 2017 at 12:48:53PM +0100, Miroslav Benes wrote:
> > If a task sleeps in a set of patched functions uninterruptedly, it could
> > block the whole transition process indefinitely. Thus it may be useful
> > to clear its TIF_PATCH_PENDING to allow the process to finish.
>
> The phrase "transition process" (here and in the patch title) confused
> me a little bit, since elsewhere we just call it "transition".

Ok.

> > +static ssize_t force_store(struct kobject *kobj, struct kobj_attribute *attr,
> > + const char *buf, size_t count)
> > +{
> > + int ret;
> > + bool val;
> > +
> > + /*
> > + * klp_mutex lock is not grabbed here intentionally. It is not really
> > + * needed. The race window is harmless and grabbing the lock would only
> > + * hold the action back.
> > + */
> > + if (!klp_transition_patch)
> > + return -EINVAL;
> > +
> > + ret = kstrtobool(buf, &val);
> > + if (ret)
> > + return ret;
> > +
> > + if (val)
> > + klp_force_transitions();
>
> The plural "transitions" is inconsistent with the rest of the code,
> which uses it in the singular. How about klp_force_transition() or
> klp_force()?

klp_force_transition() it is.

Miroslav