From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Zijlstra Subject: Re: [patch V2 28/29] stacktrace: Provide common infrastructure Date: Fri, 19 Apr 2019 09:02:11 +0200 Message-ID: <20190419070211.GL4038@hirez.programming.kicks-ass.net> References: <20190418084119.056416939@linutronix.de> <20190418084255.652003111@linutronix.de> <20190418145201.mjzyqbmkjcghqzex@treble> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Thomas Gleixner Cc: Mike Snitzer , David Airlie , Catalin Marinas , dri-devel@lists.freedesktop.org, linux-mm@kvack.org, dm-devel@redhat.com, Alexander Potapenko , Christoph Lameter , Christoph Hellwig , Alasdair Kergon , Marek Szyprowski , linux-arch@vger.kernel.org, x86@kernel.org, kasan-dev@googlegroups.com, David Rientjes , Andrey Ryabinin , Alexey Dobriyan , intel-gfx@lists.freedesktop.org, Johannes Thumshirn , Akinobu Mita , Steven Rostedt , Josef Bacik , Mike Rapoport , Andy Lutomirski , Josh Poimboeuf , David Sterba List-Id: linux-arch.vger.kernel.org T24gVGh1LCBBcHIgMTgsIDIwMTkgYXQgMDU6NDI6NTVQTSArMDIwMCwgVGhvbWFzIEdsZWl4bmVy IHdyb3RlOgo+IE9uIFRodSwgMTggQXByIDIwMTksIEpvc2ggUG9pbWJvZXVmIHdyb3RlOgoKPiA+ IEFub3RoZXIgaWRlYSBJIGhhZCAoYnV0IG5ldmVyIGdvdCBhIGNoYW5jZSB0byB3b3JrIG9uKSB3 YXMgdG8gZXh0ZW5kIHRoZQo+ID4geDg2IHVud2luZCBpbnRlcmZhY2UgdG8gYWxsIGFyY2hlcy4g IFNvIGluc3RlYWQgb2YgdGhlIGNhbGxiYWNrcywgZWFjaAo+ID4gYXJjaCB3b3VsZCBpbXBsZW1l bnQgc29tZXRoaW5nIGxpa2UgdGhpcyBBUEk6Cgo+IEkgc3VyZWx5IHRob3VnaHQgYWJvdXQgdGhh dCwgYnV0IGFmdGVyIHN0YXJpbmcgYXQgYWxsIGluY2FybmF0aW9ucyBvZgo+IGFyY2gvKi9zdGFj a3RyYWNlLmMgSSBqdXN0IGdhdmUgdXAuCj4gCj4gQXNpZGUgb2YgdGhhdCBxdWl0ZSBzb21lIGFy Y2hzIGFscmVhZHkgaGF2ZSBjYWxsYmFjayBiYXNlZCB1bndpbmRlcnMKPiBiZWNhdXNlIHRoZXkg dXNlIHRoZW0gZm9yIG1vcmUgdGhhbiBzdGFja3RyYWNpbmcgYW5kIGp1c3QgaGF2ZSBhIHNpbmds ZQo+IGltcGxlbWVudGF0aW9uIG9mIHRoYXQgbG9vcC4KPiAKPiBJJ20gZmluZSBlaXRoZXIgd2F5 LiBXZSBjYW4gc3RhcnQgd2l0aCB4ODYgYW5kIHRoZW4gbGV0IGFyY2hzIGNvbnZlcnQgb3Zlcgo+ IHRoZWlyIHN0dWZmLCBidXQgSSB3b3VsZG4ndCBob2xkIG15IGJyZWF0aCB0aGF0IHRoaXMgd2ls bCBiZSBjb21wbGV0ZWQgaW4KPiB0aGUgZm9yc2VlYWJsZSBmdXR1cmUuCgpJIHN1Z2dlc3RlZCB0 aGUgc2FtZSB0byBUaG9tYXMgZWFybHkgb24sIGFuZCBJIGV2ZW4gc3BlbmQgdGhlIHRpbWUgdG8K Y29udmVydCBzb21lICRyYW5kb20gYXJjaCB0byB0aGUgaXRlcmF0b3IgaW50ZXJmYWNlLCBhbmQg d2hpbGUgaXQgaXMKaW5kZWVkIGVudGlyZWx5IGZlYXNpYmxlLCBpdCBpcyBfZmFyXyBtb3JlIHdv cmsuCgpUaGUgY2FsbGJhY2sgdGhpbmcgT1RPSCBpcyBmbGV4aWJsZSBlbm91Z2ggdG8gZG8gd2hh dCB3ZSB3YW50IHRvIGRvIG5vdywKYW5kIGFsbG93cyBjb252ZXJ0aW5nIG1vc3QgYXJjaHMgdG8g aXQgd2l0aG91dCB0b28gbXVjaCBwYWluIChhcyBUaG9tYXMKc2FpZCwgbWFueSBhcmNocyBhcmUg YWxyZWFkeSBpbiB0aGlzIGZvcm0gYW5kIG9ubHkgbmVlZCBtaW5vciBBUEkKYWRqdXN0bWVudHMp LCB3aGljaCBnZXRzIHVzIGluIGEgZmFyIGJldHRlciBwbGFjZSB0aGFuIHdlIGFyZSBub3cuCgpB bmQgd2UgY2FuIGFsd2F5cyBnbyB0byBpdGVyYXRvcnMgbGF0ZXIgb24uIEJ1dCBJIHRoaW5rIGdl dHRpbmcgdGhlCmdlbmVyaWMgdW53aW5kZXIgaW1wcm92ZWQgYWNyb3NzIGFsbCBhcmNocyBpcyBh IHJlYWxseSBpbXBvcnRhbnQgZmlyc3QKc3RlcCBoZXJlLgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZng= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from bombadil.infradead.org ([198.137.202.133]:49702 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725280AbfDSWyV (ORCPT ); Fri, 19 Apr 2019 18:54:21 -0400 Date: Fri, 19 Apr 2019 09:02:11 +0200 From: Peter Zijlstra Subject: Re: [patch V2 28/29] stacktrace: Provide common infrastructure Message-ID: <20190419070211.GL4038@hirez.programming.kicks-ass.net> References: <20190418084119.056416939@linutronix.de> <20190418084255.652003111@linutronix.de> <20190418145201.mjzyqbmkjcghqzex@treble> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Sender: linux-arch-owner@vger.kernel.org List-ID: To: Thomas Gleixner Cc: Josh Poimboeuf , LKML , x86@kernel.org, Andy Lutomirski , Steven Rostedt , Alexander Potapenko , linux-arch@vger.kernel.org, Alexey Dobriyan , Andrew Morton , Pekka Enberg , linux-mm@kvack.org, David Rientjes , Christoph Lameter , Catalin Marinas , Dmitry Vyukov , Andrey Ryabinin , kasan-dev@googlegroups.com, Mike Rapoport , Akinobu Mita , iommu@lists.linux-foundation.org, Robin Murphy , Christoph Hellwig , Marek Szyprowski , Johannes Thumshirn , David Sterba , Chris Mason , Josef Bacik , linux-btrfs@vger.kernel.org, dm-devel@redhat.com, Mike Snitzer , Alasdair Kergon , intel-gfx@lists.freedesktop.org, Joonas Lahtinen , Maarten Lankhorst , dri-devel@lists.freedesktop.org, David Airlie , Jani Nikula , Daniel Vetter , Rodrigo Vivi Message-ID: <20190419070211._41ANixINaZi9ssCPhRO-40pXW_eA52BCsoiLnpwFKo@z> On Thu, Apr 18, 2019 at 05:42:55PM +0200, Thomas Gleixner wrote: > On Thu, 18 Apr 2019, Josh Poimboeuf wrote: > > Another idea I had (but never got a chance to work on) was to extend the > > x86 unwind interface to all arches. So instead of the callbacks, each > > arch would implement something like this API: > I surely thought about that, but after staring at all incarnations of > arch/*/stacktrace.c I just gave up. > > Aside of that quite some archs already have callback based unwinders > because they use them for more than stacktracing and just have a single > implementation of that loop. > > I'm fine either way. We can start with x86 and then let archs convert over > their stuff, but I wouldn't hold my breath that this will be completed in > the forseeable future. I suggested the same to Thomas early on, and I even spend the time to convert some $random arch to the iterator interface, and while it is indeed entirely feasible, it is _far_ more work. The callback thing OTOH is flexible enough to do what we want to do now, and allows converting most archs to it without too much pain (as Thomas said, many archs are already in this form and only need minor API adjustments), which gets us in a far better place than we are now. And we can always go to iterators later on. But I think getting the generic unwinder improved across all archs is a really important first step here.