Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp5959816pxb; Mon, 14 Feb 2022 11:44:06 -0800 (PST) X-Google-Smtp-Source: ABdhPJwyVE8P2HJwBY5epN7Ca+BeaSCSkj+u+VbpJKTIqg9xav6PXP6cV2o+SajUha5idqpYdL+W X-Received: by 2002:a63:904b:: with SMTP id a72mr482845pge.225.1644867845794; Mon, 14 Feb 2022 11:44:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644867845; cv=none; d=google.com; s=arc-20160816; b=pYldtwraRhM0VkbL9yQbl6dQ/Gv/2+FnxSDDZnOgMYAV/Rv8puaTrApuO9vt2KqOPx fMSg5CrjaUEpdzwwii2QFOLmHPWOsemRwscOEZQVOmv/A/OB6O2hA1Aep6NyH1Z12zFj UPejkl3XoCxVwDLA7eVaSpDKOPEiSSru5rmcZoOiRAbtMGWC2VmI3pnvjiinCLk3Kexk vRVpnJP4KuBi1iQO8IKIx+UZ9HXco5RJufmmi/i10pCVHdo92d/+jHzH6VBOoGq+9+dg WyiQ7yOqgdh3EWYZM1Lh6D5Flz0nuBL/kKn/c7Iu68RNbXFxfbxOvj6nzEOgfw6/w9LE 0opA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=J8HfLfxVfcNiEkSEpweyJmi/8GyqJBZOj2yEwh6I5kQ=; b=fSq58X0JkMOQ+kOnBl+CiUrBRVfBLIB8fQTpitrhdXd0a8epZRdOmb6GLzeep/tPfd j3RSXVb6pJtaG064Rt052JZ7JQ439/I0zuwDi9d96Si/wE6Y0jN7CgDwlgqTujVVBhIG iIyyJd6wUyCJePxqeBefSYK0ynPutllKPg2WmS+7NjsclbmH6tN7KWaPET7e+nROwRsR dTsosESo7rcQqpXNCtJf+Ecd7J4j95AIrdTMRCDcu4Oyel58Ln7AKhKsf5AGRpQrtVLE 1GMrl/7bmu1zfCI4IBxdsWlliRKA5eUdD8q4boOR9Qpj5losyozH2dgcl7J7EnyPJJ16 qmQw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=J1zBuhZ7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id y66si567212pgy.560.2022.02.14.11.44.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Feb 2022 11:44:05 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=J1zBuhZ7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id CB909B5621; Mon, 14 Feb 2022 11:29:08 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1352749AbiBKSfm (ORCPT + 93 others); Fri, 11 Feb 2022 13:35:42 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:41670 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346051AbiBKSfk (ORCPT ); Fri, 11 Feb 2022 13:35:40 -0500 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id A028FCD3 for ; Fri, 11 Feb 2022 10:35:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1644604536; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=J8HfLfxVfcNiEkSEpweyJmi/8GyqJBZOj2yEwh6I5kQ=; b=J1zBuhZ7HO9+tJWbj9vUVD9LgB7gT9h9AUtxbjZgDtWsgVtN6zfTbiKjj5vW2ODYv+1xlw GDyFjgMore1zZcPnDcpyXiN9tvpfhjbuBYqJbGvvZGgnjJCDJ4BjYVaLJLGHqW8iLGl7DM LlZgJzf3fDAtz6SXp4hYmLwO+O81sHI= Received: from mail-oi1-f198.google.com (mail-oi1-f198.google.com [209.85.167.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-433-Bd2bTdhfNKSEJdflCwdnwA-1; Fri, 11 Feb 2022 13:35:35 -0500 X-MC-Unique: Bd2bTdhfNKSEJdflCwdnwA-1 Received: by mail-oi1-f198.google.com with SMTP id ay31-20020a056808301f00b002d06e828c00so2664837oib.2 for ; Fri, 11 Feb 2022 10:35:35 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=J8HfLfxVfcNiEkSEpweyJmi/8GyqJBZOj2yEwh6I5kQ=; b=tYyIMkoAYVbULeclHlCVDy1e2opnCtug3hcv+oNoQGmxbIW9uc1G/lIk3rMvnBhscy maD4Kl+BkCuBFZTJIL3vHKqziezkKo/OXb9TL8FfWJ0+hNnuQuhOYZa3ZRalb8eUNbS4 2KGUbX1/3KSphWvoDasLKb/pixSvCd3UZk4fazrAHohmqNdvWN04d9pdGp5jYLmqAW4N 4ufZe8m7hqKC4HgXwfcNjtVARsjmlHaH66PLqIdPwZM4DP50eQ6Hl/QxBHCY/ZO/BcAF b9kj694kplFzDDuA9ENVM4ApDO9TQK9Sks5nkN5mbJ7/3blK+a3nnVh7lt/oor6qkFol k1Iw== X-Gm-Message-State: AOAM5330n0ELPNpg8TDRGbG5+zSHg90DNuu4/e2a/xcO+0FpHN52caxA BcLiIGHNeFpyEcbbNoimklR03Dr/m/bWk+ObZ+YobKEIxjHXZHj0U/eMIEP+zIorp9m1Zai94Y8 CHmdkuTdvolYCgjuLRxJZZYIv X-Received: by 2002:a05:6830:19ed:: with SMTP id t13mr1078542ott.83.1644604535029; Fri, 11 Feb 2022 10:35:35 -0800 (PST) X-Received: by 2002:a05:6830:19ed:: with SMTP id t13mr1078522ott.83.1644604534752; Fri, 11 Feb 2022 10:35:34 -0800 (PST) Received: from treble ([2600:1700:6e32:6c00::35]) by smtp.gmail.com with ESMTPSA id m7sm9451958ots.32.2022.02.11.10.35.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Feb 2022 10:35:34 -0800 (PST) Date: Fri, 11 Feb 2022 10:35:29 -0800 From: Josh Poimboeuf To: =?utf-8?B?RsSBbmctcnXDrCBTw7JuZw==?= Cc: Alexander Lobakin , linux-hardening@vger.kernel.org, x86@kernel.org, Borislav Petkov , Jesse Brandeburg , Kristen Carlson Accardi , Kees Cook , Miklos Szeredi , Ard Biesheuvel , Tony Luck , Bruce Schlobohm , Jessica Yu , kernel test robot , Miroslav Benes , Evgenii Shatokhin , Jonathan Corbet , Masahiro Yamada , Michal Marek , Nick Desaulniers , Herbert Xu , "David S. Miller" , Thomas Gleixner , Will Deacon , Ingo Molnar , Christoph Hellwig , Dave Hansen , "H. Peter Anvin" , Andy Lutomirski , Peter Zijlstra , Arnd Bergmann , Nathan Chancellor , Masami Hiramatsu , Marios Pomonis , Sami Tolvanen , "H.J. Lu" , Nicolas Pitre , linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org, linux-arch@vger.kernel.org, live-patching@vger.kernel.org, llvm@lists.linux.dev Subject: Re: [PATCH v10 02/15] livepatch: avoid position-based search if `-z unique-symbol` is available Message-ID: <20220211183529.q7qi2qmlyuscxyto@treble> References: <20220209185752.1226407-1-alexandr.lobakin@intel.com> <20220209185752.1226407-3-alexandr.lobakin@intel.com> <20220211174130.xxgjoqr2vidotvyw@treble> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Feb 11, 2022 at 10:05:02AM -0800, Fāng-ruì Sòng wrote: > On Fri, Feb 11, 2022 at 9:41 AM Josh Poimboeuf wrote: > > > > On Wed, Feb 09, 2022 at 07:57:39PM +0100, Alexander Lobakin wrote: > > > Position-based search, which means that if there are several symbols > > > with the same name, the user needs to additionally provide the > > > "index" of a desired symbol, is fragile. For example, it breaks > > > when two symbols with the same name are located in different > > > sections. > > > > > > Since a while, LD has a flag `-z unique-symbol` which appends > > > numeric suffixes to the functions with the same name (in symtab > > > and strtab). It can be used to effectively prevent from having > > > any ambiguity when referring to a symbol by its name. > > > > In the patch description can you also give the version of binutils (and > > possibly other linkers) which have the flag? > > GNU ld>=2.36 supports -z unique-symbol. ld.lld doesn't support -z unique-symbol. > > I subscribe to llvm@lists.linux.dev and happen to notice this message > (can't keep up with the changes...) > I am a bit concerned with this option and replied last time on > https://lore.kernel.org/r/20220105032456.hs3od326sdl4zjv4@google.com > > My full reasoning is on > https://maskray.me/blog/2020-11-15-explain-gnu-linker-options#z-unique-symbol Ah, right. Also discussed here: https://lore.kernel.org/all/20210123225928.z5hkmaw6qjs2gu5g@google.com/T/#u https://lore.kernel.org/all/20210125172124.awabevkpvq4poqxf@treble/ I'm not qualified to comment on LTO/PGO stability issues, but it doesn't sound good. And we want to support livepatch for LTO kernels. Also I realized that this flag would have a negative effect on kpatch-build, as it currently does its analysis on .o files. So it would have to figure out how to properly detect function renames, to avoid patching the wrong function for example. And if LLD doesn't plan to support the flag then it will be a headache for livepatch (and the kernel in general) to deal with the divergent configs. One idea I mentioned before, it may be worth exploring changing the "F" in FGKASLR to "File" instead of "Function". In other words, only shuffle at an object-file granularity. Then, even with duplicates, the symbol pair doesn't change in the symbol table. And as a bonus, it should help FGKASLR i-cache performance, significantly. -- Josh