Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756129AbcDDSdL (ORCPT ); Mon, 4 Apr 2016 14:33:11 -0400 Received: from mx1.redhat.com ([209.132.183.28]:40746 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752972AbcDDSdJ (ORCPT ); Mon, 4 Apr 2016 14:33:09 -0400 Date: Mon, 4 Apr 2016 13:33:07 -0500 From: Josh Poimboeuf To: Vojtech Pavlik Cc: Miroslav Benes , Jiri Kosina , Jessica Yu , linux-kernel@vger.kernel.org, live-patching@vger.kernel.org Subject: Re: [RFC PATCH v1.9 12/14] livepatch: create per-task consistency model Message-ID: <20160404183307.2hbht3g4l7ei54rt@treble.redhat.com> References: <74a2b37cea7a64a185e50876dba031137aa59a24.1458933243.git.jpoimboe@redhat.com> <20160404182138.pjze2fvtmknq2ksq@treble.redhat.com> <20160404182759.GA10777@suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20160404182759.GA10777@suse.cz> User-Agent: Mutt/1.5.23.1 (2014-03-12) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Mon, 04 Apr 2016 18:33:08 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1499 Lines: 35 On Mon, Apr 04, 2016 at 08:27:59PM +0200, Vojtech Pavlik wrote: > On Mon, Apr 04, 2016 at 01:21:38PM -0500, Josh Poimboeuf wrote: > > > Hm, can you explain why it should be copied from the parent? > > > > I'm thinking the above code is correct for today, but it should still be > > changed to be more future-proof. > > > > Here's my thinking: > > > > A forked task starts out with no stack, so if I understand correctly, it > > can safely start out in the goal universe, regardless of which universe > > its parent belongs to. > > > > However, the current ret_from_fork code is a mess, and Andy Lutomirski > > has mentioned that he would like to give newly forked tasks a proper > > stack such that instead of jumping to ret_from_fork, they would just > > return from schedule(). In that case, it would no longer be safe to > > start the new task in the goal universe because it could be "sleeping" > > on a to-be-patched function. > > > > So for proper future proofing, newly forked tasks should be started in > > the initial universe (rather than starting in the goal universe or > > inheriting the parent's universe). They can then be transitioned over > > to the goal universe like any other task. How does that sound? > > How could a newly forked task start in the old universe if its parent > has already been migrated? Any context it inherits will already be from > the new universe. Can you be more specific about "context" and why inheritance of it would be a problem? -- Josh