Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp1230512pxb; Fri, 22 Jan 2021 10:06:03 -0800 (PST) X-Google-Smtp-Source: ABdhPJzzf+SKhl3FxBNBO6mcWgpw0T9dMaumNk7u4OKEEoRpMrftqoyNKGo72NeFXB3oYOzwtpYY X-Received: by 2002:a17:906:1f03:: with SMTP id w3mr3832424ejj.463.1611338763085; Fri, 22 Jan 2021 10:06:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1611338763; cv=none; d=google.com; s=arc-20160816; b=XHH4mSGQFn9njhYtQUvjkW8ShEbTYNHmjGk2l5QAUVNAuvLc6NrmcddDj3v5vqowai oTCwSM04G/h5UjdGJYQcMhbeQgX9jlmDIfjfzL1ronITXdMflOZGFMP5ztADvNAhhHZY PDaA8UvLnLSlZogwurw7jA5aGio47zdNYcGg+APogo2iJN9uVuXFB54y7C09z+S/Cktm Xzmuwc8rUCHKuZarbHn6GBb1ybbwSyNZtL4pSEsnMkTSHTDfBg+fcBW3MFQT9+LulAkh qEzo9zslWwxtvo0mUqKu+Lg7SprjlEC47J8R5V5aBETegG1W+PuxZmnCOPjrANCg7APy YB8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=4XOK73Npunp3ly86oIgT/xEghnFSVi5xNW4268AR0VA=; b=pSVaXKswts7P+KAGOEz9MsHgmh1hMnifbirmbIhBdbQ0pic7xYl5s6Ok+YbX4nZzgp Gc3ONIBL9bhJ7PWZf1FianaA7FLf56qFf5y/cXZ4yKcDD1y/n3hevr8S9kud3YU1G01D cruJq0RFFgpZPmm0wBFUIPz9MB8YoSkOy0pR83wLZ2YCLRY3pTceStLuxQMunEx1E8Rk oV+B9VMbBdKLgS+kqD6pnm2nfK0DIHRhgYZjf/hHY26tQxj0jDGsq+dJ+aVcJ4DVdhLx CRpV7w86SdIpW06QfWz9P0WdsPPM6ZhnZLoTNTc7UzzXy23xytdd/MDxowHQ4IePT79p Ijlw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="M/RdoYta"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q12si3985378edn.552.2021.01.22.10.05.37; Fri, 22 Jan 2021 10:06:03 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="M/RdoYta"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730107AbhAVSDq (ORCPT + 99 others); Fri, 22 Jan 2021 13:03:46 -0500 Received: from mail.kernel.org ([198.145.29.99]:54306 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730010AbhAVRzk (ORCPT ); Fri, 22 Jan 2021 12:55:40 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id ECA2423AC8; Fri, 22 Jan 2021 17:54:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1611338096; bh=AYFiX4zVoFw1zc21BTNTrpcrcdxIXokJIpPNH+bgg4o=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=M/RdoYta0yYvxyxrVm1MwF9jMowYeci9nw51o8xr81Rrjxay9o6aIN0uHyLNYLz23 jqVK5Evzma3qJfNbOgcyeEqy3QqtoqYYOl9GXHIc/IkjzjRhOZpljDFyAcV24iAJq5 o8wT+0ox1CBYBIFCBppwxMBmQgNoLdzN28/VcW5lBj7pyNbCaKeN0B2kvFGGuxdim1 OQiNbQVwuLvpEP37uUJFjsXM0U/ZGtjvEwVRGsHoYeFJe03N4tQbb1kh3Rd+uo0OTD M5fQ+embtPzr1N7lS4XBBkAsM1fcBJ/5SYH77ZFIo/HArEQSlVq3yBgZc/6u12BBxl Ft29gIcXrW0Fg== Received: by mail-ot1-f43.google.com with SMTP id 36so5914549otp.2; Fri, 22 Jan 2021 09:54:55 -0800 (PST) X-Gm-Message-State: AOAM533AH0+us2U3skTvQu9mNZa0SmmQLesuX1jQBfmDa8IikwSSi589 zAWxi20wc2K/3w2/yh2EY1MCwkBp8YeKRKQhmf0= X-Received: by 2002:a05:6830:1158:: with SMTP id x24mr4118875otq.108.1611338095288; Fri, 22 Jan 2021 09:54:55 -0800 (PST) MIME-Version: 1.0 References: <20210120173800.1660730-1-jthierry@redhat.com> <186bb660-6e70-6bbf-4e96-1894799c79ce@redhat.com> <20210121185452.fxoz4ehqfv75bdzq@treble> <20210122174342.GG6391@sirena.org.uk> In-Reply-To: <20210122174342.GG6391@sirena.org.uk> From: Ard Biesheuvel Date: Fri, 22 Jan 2021 18:54:44 +0100 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [RFC PATCH 00/17] objtool: add base support for arm64 To: Mark Brown Cc: Josh Poimboeuf , Peter Zijlstra , Julien Thierry , Linux Kernel Mailing List , Linux ARM , Catalin Marinas , Will Deacon , Masahiro Yamada , Kees Cook , Michal Marek , Mark Rutland , linux-efi , linux-hardening@vger.kernel.org, live-patching@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 22 Jan 2021 at 18:44, Mark Brown wrote: > > On Thu, Jan 21, 2021 at 12:54:52PM -0600, Josh Poimboeuf wrote: > > > 2) The shadow stack idea sounds promising -- how hard would it be to > > make a prototype reliable unwinder? > > In theory it doesn't look too hard and I can't see a particular reason > not to try doing this - there's going to be edge cases but hopefully for > reliable stack trace they're all in areas where we would be happy to > just decide the stack isn't reliable anyway, things like nesting which > allocates separate shadow stacks for each nested level for example. > I'll take a look. This reminds me - a while ago, I had a stab at writing a rudimentary GCC plugin that pushes/pops return addresses to a shadow call stack pointed to by x18 [0] I am by no means suggesting that we should rely on a GCC plugin for this, only that it does seem rather straight-forward for the compiler to manage a stack with return addresses like that (although the devil is probably in the details, as usual) [0] https://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/log/?h=arm64-scs-gcc