On Wed, Nov 15, 2017 at 02:50:12PM +0100, Miroslav Benes wrote: > Currently, livepatch gradually migrate the system from an unpatched to a > patched state (or vice versa). Each task drops its TIF_PATCH_PENDING > itself when crossing the kernel/user space boundary or it is cleared > using the stack checking approach. If there is a task which sleeps on a > patched function, the whole transition can get stuck indefinitely. > > Livepatch has means which can be used in these cases. The transition can > be cancelled and/or immediate flag may be used for the live patch. On > the other hand it might be useful to poke the system a little bit and > help the transition to finish by doing so. > > That is what the fake signal can be used for. A task sleeping/waiting in > the kernel gets TIF_SIGPENDING set, it handles it and during that its > TIF_PATCH_PENDING is cleared. Kthreads are only woken up, they do not > handle signals suitably. > > Still, there are cases which neither fake signal can solve. A task can > sleep uninterruptedly without reacting to signals at all. Even then, it > may be safe to clear the task's TIF_PATCH_PENDING. As a last resort, > admin may force such clearing for all tasks in the system with this > patch set. > > We use the fake signal in SLES for a long time. Moreover, we don't have > a stack checking there, so we rely on the fake signal a lot. We send it > automatically and periodically. > > Petr, I did not add you Reviewed-by tags intentionally because of the changes. > > Changes from v3: > - only TASK_INTERRUPTIBLE kthreads are woken up - Petr > - documentation - Pavel > - function naming and sysfs fix - Josh For the series: Acked-by: Josh Poimboeuf <jpoimboe@xxxxxxxxxx> -- Josh -- To unsubscribe from this list: send the line "unsubscribe live-patching" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html