Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752153AbbEDMUR (ORCPT ); Mon, 4 May 2015 08:20:17 -0400 Received: from ip4-83-240-67-251.cust.nbox.cz ([83.240.67.251]:51184 "EHLO ip4-83-240-18-248.cust.nbox.cz" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750715AbbEDMUL (ORCPT ); Mon, 4 May 2015 08:20:11 -0400 From: Jiri Slaby To: live-patching@vger.kernel.org Cc: jpoimboe@redhat.com, sjenning@redhat.com, jkosina@suse.cz, vojtech@suse.cz, mingo@redhat.com, linux-kernel@vger.kernel.org, Jiri Slaby Subject: [RFC kgr on klp 0/9] kGraft on the top of KLP Date: Mon, 4 May 2015 14:20:09 +0200 Message-Id: <1430742009-5895-1-git-send-email-jslaby@suse.cz> X-Mailer: git-send-email 2.3.5 In-Reply-To: <1430739625-4658-1-git-send-email-jslaby@suse.cz> References: <1430739625-4658-1-git-send-email-jslaby@suse.cz> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3040 Lines: 77 Hello, this is a patchset which teaches the Kernel Live Patching to be consistent when patching with the use of the kGraft approach [1]. Besides helpers, the set adds support for consistency models, implements the kGraft consistency model, and finally allows for sending signals to complete the patching process quickly (but still safely). Currently we have only two consistency models: * none * kGraft None is the one which was present before the patchset and that one indeed guarantees no consistency at all. LEAVE_FUNCTION and SWITCH_FUNCTION as was described earlier [2]. kGraft is based on the well-known RCU principle and every process is converted to the patched world on its own, safely. kGraft is LEAVE_KERNEL and SWITCH_THREAD. Signal "broadcasting" is added in the last patch of the series and is based on the previous public discussions [3]. As usual, see the respective patches for more details about a particular patch. Since the KLP supports x86_64 and s390 currently, the same holds for this patchset. It was tested on both of these arch's. Thanks go to Petr Mladek, Mirek Benes, Jiri Kosina, and others, who worked hard to improved the set much. [1] https://lkml.org/lkml/2014/6/25/284 [2] https://lkml.org/lkml/2014/11/7/354 [3] https://lkml.org/lkml/2015/2/21/119 Jiri Slaby (7): livepatch: introduce patch/func-walking helpers livepatch: add klp_*_to_patch helpers livepatch: add kgr infrastructure livepatch: teach klp about consistency models livepatch: do not allow failure while really patching livepatch: propagate the patch status to functions livepatch: add kgraft-like patching Miroslav Benes (2): livepatch: make kobject in klp_object statically allocated livepatch: send a fake signal to all tasks arch/s390/include/asm/thread_info.h | 2 + arch/s390/kernel/Makefile | 1 + arch/s390/kernel/entry.S | 11 ++ arch/s390/kernel/livepatch.c | 14 ++ arch/x86/include/asm/thread_info.h | 11 +- arch/x86/kernel/ptrace.c | 7 + arch/x86/kernel/signal.c | 5 + fs/proc/base.c | 14 ++ include/linux/livepatch.h | 81 +++++++++- include/linux/sched.h | 28 ++++ kernel/livepatch/Makefile | 2 +- kernel/livepatch/cmodel-kgraft.c | 204 +++++++++++++++++++++++++ kernel/livepatch/cmodel-simple.c | 39 +++++ kernel/livepatch/core.c | 284 +++++++++++++++++++++++++++-------- kernel/signal.c | 3 +- samples/livepatch/livepatch-sample.c | 1 + 16 files changed, 638 insertions(+), 69 deletions(-) create mode 100644 arch/s390/kernel/livepatch.c create mode 100644 kernel/livepatch/cmodel-kgraft.c create mode 100644 kernel/livepatch/cmodel-simple.c -- 2.3.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/