Received: by 2002:a25:c593:0:0:0:0:0 with SMTP id v141csp1058269ybe; Thu, 5 Sep 2019 09:40:05 -0700 (PDT) X-Google-Smtp-Source: APXvYqxx4ZB2SbNtM7TjauM7KMBySQ89Dxt+EeQQ8DZbtzllxXM7xR5utDfRzCQIZh2AGb3LyxJ8 X-Received: by 2002:a17:90a:e397:: with SMTP id b23mr4734606pjz.140.1567701605001; Thu, 05 Sep 2019 09:40:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1567701604; cv=none; d=google.com; s=arc-20160816; b=olJz0BVb5c7R/827qKCtPgs4RJ7jxzXwwTwdmlUiooHuZ2SwRmf/moiuR3Il22uZoU 21qn6athx1zYlcfLdqgok6cO0l4hEtZDtDOwVk6tfzG0oxtnFOe3UtvfCpiakyyrYA3p hAscDfLXhp4VJ+HqNadYhmDxx1MKiEXLOsDE2PaKl7EsZkkuD36m1kGLAWpFE0qUKVzN 3Lpf6+6f7wShg5O5J/mMMycq7rY83NtuCuK8Fbm8RMX8YlsCm2Scm/lILGqFKf5H8h0E Ar3ojbTfRycqeSPRGhmXwKf/qQNFcYNNgkeOKqLGruOOSJUj1SW0i6uDw9fJ4XTtr3FD XRxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :message-id:in-reply-to:subject:cc:to:from:date; bh=joeIqNg9Ehw5rcM/Rr7HfqPqE0oJngDWyXa2Tuy/jYw=; b=Tv2iOfaRrVmj5cxpUPqIJBP9xS7wzLGEBJvwdnde1S2kcGE72c1e5QRPD4VQUCvEKA AVCGfr9TiqYoWaEoa/3qU8nAQQuBO4kWAvEEFvOWJ0oQL1Bksge1pp9I/ZYTC/ycnY/i WQMTDMLSYjo+6LMV2s5MhnyZfeEQ2XQYVrthcHMT0qGv7a8uPr6Hq/DbmSzzRoj0Amh1 GMHNuehzzpth8s1wppIv/a+zr4o0NiJqRgkwc7e0xCpR4qLA6aTqtaLDUIf/f+zAYEzJ oJXtjg0YWlk8XhI4bDSCxfeJGWJHXcDSR6TK8J3jEH27SaNMP5I3SP3AerzShKk8we1B 06iQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v19si2413076pjn.96.2019.09.05.09.39.48; Thu, 05 Sep 2019 09:40:04 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389175AbfIEMDw (ORCPT + 99 others); Thu, 5 Sep 2019 08:03:52 -0400 Received: from mx2.suse.de ([195.135.220.15]:41912 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1730872AbfIEMDu (ORCPT ); Thu, 5 Sep 2019 08:03:50 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id AC131AC8C; Thu, 5 Sep 2019 12:03:48 +0000 (UTC) Date: Thu, 5 Sep 2019 14:03:34 +0200 (CEST) From: Miroslav Benes To: Josh Poimboeuf cc: Petr Mladek , Joe Lawrence , jikos@kernel.org, linux-kernel@vger.kernel.org, live-patching@vger.kernel.org Subject: Re: [RFC PATCH 2/2] livepatch: Clear relocation targets on a module removal In-Reply-To: <20190905025055.36loaatxtkhdo4q5@treble> Message-ID: References: <20190814151244.5xoaxib5iya2qjco@treble> <20190816094608.3p2z73oxcoqavnm4@pathway.suse.cz> <20190822223649.ptg6e7qyvosrljqx@treble> <20190823081306.kbkm7b4deqrare2v@pathway.suse.cz> <20190826145449.wyo7avwpqyriem46@treble> <5c649320-a9bf-ae7f-5102-483bc34d219f@redhat.com> <20190904084932.gndrtewubqiaxmzy@pathway.suse.cz> <20190905025055.36loaatxtkhdo4q5@treble> User-Agent: Alpine 2.21 (LSU 202 2017-01-01) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 4 Sep 2019, Josh Poimboeuf wrote: > On Wed, Sep 04, 2019 at 10:49:32AM +0200, Petr Mladek wrote: > > On Tue 2019-09-03 15:02:34, Miroslav Benes wrote: > > > On Mon, 2 Sep 2019, Joe Lawrence wrote: > > > > > > > On 9/2/19 12:13 PM, Miroslav Benes wrote: > > > > >> I can easily foresee more problems like those in the future. Going > > > > >> forward we have to always keep track of which special sections are > > > > >> needed for which architectures. Those special sections can change over > > > > >> time, or can simply be overlooked for a given architecture. It's > > > > >> fragile. > > > > > > > > > > Indeed. It bothers me a lot. Even x86 "port" is not feature complete in > > > > > this regard (jump labels, alternatives,...) and who knows what lurks in > > > > > the corners of the other architectures we support. > > > > > > > > > > So it is in itself reason enough to do something about late module > > > > > patching. > > > > > > > > > > > > > Hi Miroslav, > > > > > > > > I was tinkering with the "blue-sky" ideas that I mentioned to Josh the other > > > > day. > > > > > > > I dunno if you had a chance to look at what removing that code looks > > > > like, but I can continue to flesh out that idea if it looks interesting: > > > > > > Unfortunately no and I don't think I'll come up with something useful > > > before LPC, so anything is really welcome. > > > > > > > > > > > https://github.com/joe-lawrence/linux/tree/blue-sky > > > > > > > > A full demo would require packaging up replacement .ko's with a livepatch, as > > > > well as "blacklisting" those deprecated .kos, etc. But that's all I had time > > > > to cook up last week before our holiday weekend here. > > > > > > Frankly, I'm not sure about this approach. I'm kind of torn. The current > > > solution is far from ideal, but I'm not excited about the other options > > > either. It seems like the choice is basically between "general but > > > technically complicated fragile solution with nontrivial maintenance > > > burden", or "something safer and maybe cleaner, but limiting for > > > users/distros". Of course it depends on whether the limitation is even > > > real and how big it is. Unfortunately we cannot quantify it much and that > > > is probably why our opinions (in the email thread) differ. > > > > I wonder what is necessary for a productive discussion on Plumbers: > > > > + Josh would like to see what code can get removed when late > > handling of modules gets removed. I think that it might be > > partially visible from Joe's blue-sky patches. > > Yes, and I like what I see. Especially the removal of the .klp.arch > nastiness! > > > + I would like to better understand the scope of the current > > problems. It is about modifying code in the livepatch that > > depends on position of the related code: > > > > + relocations are rather clear; we will need them anyway > > to access non-public (static) API from the original code. > > > > + What are the other changes? > > I think the .klp.arch sections are the big ones: > > .klp.arch.altinstructions > .klp.arch.parainstructions > .klp.arch.jump_labels (doesn't exist yet) > > And that's just x86... I may misunderstand, but we have .klp.arch sections because para and alternatives have to be processed after relocations. And if we cannot get rid of relocations completely, because of static symbols, then we cannot get rid of .klp.arch sections either. > And then of course there's the klp coming/going notifiers which have > also been an additional source of complexity. True, but I think we (me and Petr) do not consider it as much of a problem as you. > I'd like to hear more specific negatives about Joe's recent patches, > which IMO, are the best option we've discussed so far. I'll reply elsewhere... Miroslav