Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp1487943imu; Sat, 12 Jan 2019 01:09:57 -0800 (PST) X-Google-Smtp-Source: ALg8bN4+yy37Zf+ufxj/haht3xDI/ibEiZtk6MIb/8WvgcSM7Cq0zemMvQR/MgdavcmYaAktSowp X-Received: by 2002:a17:902:29a7:: with SMTP id h36mr18206851plb.244.1547284197644; Sat, 12 Jan 2019 01:09:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1547284197; cv=none; d=google.com; s=arc-20160816; b=A171yv3Xj6Bhu3wBakPaNLndn5deCr9OozLuXUKi059v0tBvBXtQe8LGbY5UpKDjo1 Z9P65go9R+ftBBWd7pUaJrl/2LcSGCtg/vQuyTeqOcix8AOEmaT/T8rHuU/OAO1oIUMo h2UGlhWvE90NU13vK3K9eabT8hcxcAN0Ma2ci1Vay4XSCSB/21hC8tXQXP29iUsRDK26 W2IOOlafxryHTGxy0nZ1zVnWrgURwDYhqeCC7iisFfvEsurPHppkbyNSvJw4P8yl4PHj BRuH/peveuFQjxiMnH6G5tnx6+p9CYlTtosIbEXdIcaOX7RF/UUd2oYyzqjL1JsQkscm 86Zg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=E9bWdeDUbYDd3IM3ku0yQuQNW46gQ3WhH6ycKelA1S8=; b=wEm6WjfMKBFo/9rJ1TvI3Pw0e5Vxqoy7zOI0gq0CQiIYbMS/IGRZOpizf9sIMpM9jW YRghzW6rgNoG9zQhY7973joGM+d2q367ds6V3G/1pH571Dryx+6Sh/Pi97dev7VM9bqd ojyN2ihIhwyhRoo/92cjLMPV7Tn5DKjbmAECkrM69Zm5r/CLlb0KaiBwEBusM7oyU2Rz kO4+c85sv9s8f10f2C8zyvUEzIJkSl5kk+WY4l3L/Plog04n8z4SY/0BHwrMxjmcxhEM djq1IY4VFEvn13ldzJCHDSEJZOlNAYIPDvUIKC24LZt1Yx+1jGvWSqZg7VDGQmhVDRDm gyug== 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 j132si25941294pfc.84.2019.01.12.01.09.27; Sat, 12 Jan 2019 01:09:57 -0800 (PST) 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 S1725841AbfALJHc (ORCPT + 99 others); Sat, 12 Jan 2019 04:07:32 -0500 Received: from gate.crashing.org ([63.228.1.57]:59413 "EHLO gate.crashing.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725816AbfALJHb (ORCPT ); Sat, 12 Jan 2019 04:07:31 -0500 Received: from gate.crashing.org (localhost.localdomain [127.0.0.1]) by gate.crashing.org (8.14.1/8.14.1) with ESMTP id x0C8jjRG031682; Sat, 12 Jan 2019 02:45:45 -0600 Received: (from segher@localhost) by gate.crashing.org (8.14.1/8.14.1/Submit) id x0C8jfVM031680; Sat, 12 Jan 2019 02:45:41 -0600 X-Authentication-Warning: gate.crashing.org: segher set sender to segher@kernel.crashing.org using -f Date: Sat, 12 Jan 2019 02:45:41 -0600 From: Segher Boessenkool To: Balbir Singh Cc: Joe Lawrence , Jiri Kosina , linux-kernel@vger.kernel.org, Torsten Duwe , live-patching@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Subject: Re: ppc64le reliable stack unwinder and scheduled tasks Message-ID: <20190112084541.GK14180@gate.crashing.org> References: <7f468285-b149-37e2-e782-c9e538b997a9@redhat.com> <20190112010914.GB10427@350D> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190112010914.GB10427@350D> User-Agent: Mutt/1.4.2.3i Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, Jan 12, 2019 at 12:09:14PM +1100, Balbir Singh wrote: > Could you please define interesting frame on top a bit more? Usually > the topmost return address is in LR There is no reliable way (other than DWARF unwind info) to find out where the value of LR at function entry currently lives (if anywhere). It may or may not be still available in LR, it may or may not be saved to the return stack slot. It can also live in some GPR, or in some other stack slot. (The same is true for all other registers). The only thing the ABI guarantees you is that you can find all stack frames via the back chain. If you want more you can use some heuristics and do some heroics (like GDB does), but this is not fully reliable. Using DWARF unwind info is, but that requires big tables. Segher