From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from stargate.chelsio.com ([12.32.117.8]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1f2ycz-00014o-Cb for kexec@lists.infradead.org; Mon, 02 Apr 2018 12:32:03 +0000 Date: Mon, 2 Apr 2018 18:00:45 +0530 From: Rahul Lakkireddy Subject: Re: [PATCH net-next v2 1/2] fs/crashdd: add API to collect hardware dump in second kernel Message-ID: <20180402123044.GA31231@chelsio.com> References: <296ffbd47fd4f30238689e636bd2480683224227.1521888444.git.rahul.lakkireddy@chelsio.com> <20180330103907.GC3313@nanopsycho> <20180330105156.GA24344@chelsio.com> <87k1tt2yo7.fsf@xmission.com> <20180402091143.GD3313@nanopsycho> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20180402091143.GD3313@nanopsycho> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "kexec" Errors-To: kexec-bounces+dwmw2=infradead.org@lists.infradead.org To: Jiri Pirko Cc: Indranil Choudhury , "netdev@vger.kernel.org" , Nirranjan Kirubaharan , "kexec@lists.infradead.org" , "linux-kernel@vger.kernel.org" , "stephen@networkplumber.org" , Ganesh GR , "Eric W. Biederman" , "linux-fsdevel@vger.kernel.org" , "akpm@linux-foundation.org" , "torvalds@linux-foundation.org" , "davem@davemloft.net" , "viro@zeniv.linux.org.uk" T24gTW9uZGF5LCBBcHJpbCAwNC8wMi8xOCwgMjAxOCBhdCAxNDo0MTo0MyArMDUzMCwgSmlyaSBQ aXJrbyB3cm90ZToKPiBGcmksIE1hciAzMCwgMjAxOCBhdCAwODo0MjowMFBNIENFU1QsIGViaWVk ZXJtQHhtaXNzaW9uLmNvbSB3cm90ZToKPiA+UmFodWwgTGFra2lyZWRkeSA8cmFodWwubGFra2ly ZWRkeUBjaGVsc2lvLmNvbT4gd3JpdGVzOgo+ID4KPiA+PiBPbiBGcmlkYXksIE1hcmNoIDAzLzMw LzE4LCAyMDE4IGF0IDE2OjA5OjA3ICswNTMwLCBKaXJpIFBpcmtvIHdyb3RlOgo+ID4+PiBTYXQs IE1hciAyNCwgMjAxOCBhdCAxMTo1NjozM0FNIENFVCwgcmFodWwubGFra2lyZWRkeUBjaGVsc2lv LmNvbSB3cm90ZToKPiA+Pj4gPkFkZCBhIG5ldyBtb2R1bGUgY3Jhc2hkZCB0aGF0IGV4cG9ydHMg dGhlIC9zeXMva2VybmVsL2NyYXNoZGQvCj4gPj4+ID5kaXJlY3RvcnkgaW4gc2Vjb25kIGtlcm5l bCwgY29udGFpbmluZyBjb2xsZWN0ZWQgaGFyZHdhcmUvZmlybXdhcmUKPiA+Pj4gPmR1bXBzLgo+ ID4+PiA+Cj4gPj4+ID5UaGUgc2VxdWVuY2Ugb2YgYWN0aW9ucyBkb25lIGJ5IGRldmljZSBkcml2 ZXJzIHRvIGFwcGVuZCB0aGVpciBkZXZpY2UKPiA+Pj4gPnNwZWNpZmljIGhhcmR3YXJlL2Zpcm13 YXJlIGxvZ3MgdG8gL3N5cy9rZXJuZWwvY3Jhc2hkZC8gZGlyZWN0b3J5IGFyZQo+ID4+PiA+YXMg Zm9sbG93czoKPiA+Pj4gPgo+ID4+PiA+MS4gRHVyaW5nIHByb2JlIChiZWZvcmUgaGFyZHdhcmUg aXMgaW5pdGlhbGl6ZWQpLCBkZXZpY2UgZHJpdmVycwo+ID4+PiA+cmVnaXN0ZXIgdG8gdGhlIGNy YXNoZGQgbW9kdWxlICh2aWEgY3Jhc2hkZF9hZGRfZHVtcCgpKSwgd2l0aAo+ID4+PiA+Y2FsbGJh Y2sgZnVuY3Rpb24sIGFsb25nIHdpdGggYnVmZmVyIHNpemUgYW5kIGxvZyBuYW1lIG5lZWRlZCBm b3IKPiA+Pj4gPmZpcm13YXJlL2hhcmR3YXJlIGxvZyBjb2xsZWN0aW9uLgo+ID4+PiA+Cj4gPj4+ ID4yLiBDcmFzaGRkIGNyZWF0ZXMgYSBkcml2ZXIncyBkaXJlY3RvcnkgdW5kZXIKPiA+Pj4gPi9z eXMva2VybmVsL2NyYXNoZGQvPGRyaXZlcj4uIFRoZW4sIGl0IGFsbG9jYXRlcyB0aGUgYnVmZmVy IHdpdGgKPiA+Pj4gCj4gPj4+IFRoaXMgc21lbGxzLiBJIG5lZWQgdG8gaWRlbnRpZnkgdGhlIGV4 YWN0IEFTSUMgaW5zdGFuY2UgdGhhdCBwcm9kdWNlZAo+ID4+PiB0aGUgZHVtcC4gVG8gaWRlbnRp ZnkgYnkgZHJpdmVyIG5hbWUgZG9lcyBub3QgaGVscCBtZSBpZiBJIGhhdmUgbXVsdGlwbGUKPiA+ Pj4gaW5zdGFuY2VzIG9mIHRoZSBzYW1lIGRyaXZlci4gVGhpcyBsb29rcyB3cm9uZyB0byBtZS4g VGhpcyBsb29rcyBsaWtlCj4gPj4+IGEgam9iIGZvciBkZXZsaW5rIHdoZXJlIHlvdSBoYXZlIDEg ZGV2bGluayBpbnN0YW5jZSBwZXIgMSBBU0lDIGluc3RhbmNlLgo+ID4+PiAKPiA+Pj4gUGxlYXNl IHNlZToKPiA+Pj4gaHR0cDovL3BhdGNod29yay5vemxhYnMub3JnL3Byb2plY3QvbmV0ZGV2L2xp c3QvP3Nlcmllcz0zNjUyNAo+ID4+PiAKPiA+Pj4gSSBiZXZpZXZlIHRoYXQgdGhlIHNvbHV0aW9u IGluIHRoZSBwYXRjaHNldCBjb3VsZCBiZSB1c2VkIGZvcgo+ID4+PiB5b3VyIHVzZWNhc2UgdG9v Lgo+ID4+PiAKPiA+Pj4gCj4gPj4KPiA+PiBUaGUgc3lzZnMgYXBwcm9hY2ggcHJvcG9zZWQgaGVy ZSBoYWQgYmVlbiBkcm9wcGVkIGluIGZhdm91ciBleHBvcnRpbmcKPiA+PiB0aGUgZHVtcHMgYXMg RUxGIG5vdGVzIGluIC9wcm9jL3ZtY29yZS4KPiA+Pgo+ID4+IFdpbGwgYmUgcG9zdGluZyB0aGUg bmV3IHBhdGNoZXMgc29vbi4KPiA+Cj4gPlRoZSBjb25jZXJuIHdhcyBhY3R1YWxseSBob3cgeW91 IGlkZW50aWZ5IHdoaWNoIGRldmljZSB0aGF0IGNhbWUgZnJvbS4KPiA+V2hlcmUgeW91IHJlYWQg dGhlIGlkZW50aWZpZXIgY2hhbmdlcyBidXQgc3lzZnMgb3IgL3Byb2Mvdm1jb3JlIHRoZQo+ID5j aGFuZ2UgcmVtYWlucyB2YWxpZC4KPiAKPiBZZWFoLiBJIHN0aWxsIGRvbid0IHNlZSBob3cgeW91 IGxpbmsgdGhlIGR1bXAgYW5kIHRoZSBkZXZpY2UuCgpJbiBvdXIgY2FzZSwgdGhlIGR1bXAgYW5k IHRoZSBkZXZpY2UgYXJlIGJlaW5nIGlkZW50aWZpZWQgYnkgdGhlCmRyaXZlcuKAmXMgbmFtZSBm b2xsb3dlZCBieSBpdHMgY29ycmVzcG9uZGluZyBwY2kgYnVzIGlkLiAgSeKAmXZlIHBvc3RlZCBh bgpleGFtcGxlIGluIG15IHYzIHNlcmllczoKCmh0dHBzOi8vd3d3LnNwaW5pY3MubmV0L2xpc3Rz L25ldGRldi9tc2c0OTM3ODEuaHRtbAoKSGVyZeKAmXMgYW4gZXh0cmFjdCBmcm9tIHRoZSBsaW5r IGFib3ZlOgoKIyByZWFkZWxmIC1uIC9wcm9jL3ZtY29yZQoKRGlzcGxheWluZyBub3RlcyBmb3Vu ZCBhdCBmaWxlIG9mZnNldCAweDAwMDAxMDAwIHdpdGggbGVuZ3RoIDB4MDQwMDMyODg6Ck93bmVy ICAgICAgICAgICAgICAgICBEYXRhIHNpemUgICAgIERlc2NyaXB0aW9uClZNQ09SRUREX2N4Z2I0 XzAwMDA6MDI6MDAuNCAweDAyMDAwZmQ4ICAgICAgVW5rbm93biBub3RlIHR5cGU6KDB4MDAwMDA3 MDApClZNQ09SRUREX2N4Z2I0XzAwMDA6MDQ6MDAuNCAweDAyMDAwZmQ4ICAgICAgVW5rbm93biBu b3RlIHR5cGU6KDB4MDAwMDA3MDApCkNPUkUgICAgICAgICAgICAgICAgIDB4MDAwMDAxNTAgICAg IE5UX1BSU1RBVFVTIChwcnN0YXR1cyBzdHJ1Y3R1cmUpCkNPUkUgICAgICAgICAgICAgICAgIDB4 MDAwMDAxNTAgICAgIE5UX1BSU1RBVFVTIChwcnN0YXR1cyBzdHJ1Y3R1cmUpCkNPUkUgICAgICAg ICAgICAgICAgIDB4MDAwMDAxNTAgICAgIE5UX1BSU1RBVFVTIChwcnN0YXR1cyBzdHJ1Y3R1cmUp CkNPUkUgICAgICAgICAgICAgICAgIDB4MDAwMDAxNTAgICAgIE5UX1BSU1RBVFVTIChwcnN0YXR1 cyBzdHJ1Y3R1cmUpCkNPUkUgICAgICAgICAgICAgICAgIDB4MDAwMDAxNTAgICAgIE5UX1BSU1RB VFVTIChwcnN0YXR1cyBzdHJ1Y3R1cmUpCkNPUkUgICAgICAgICAgICAgICAgIDB4MDAwMDAxNTAg ICAgIE5UX1BSU1RBVFVTIChwcnN0YXR1cyBzdHJ1Y3R1cmUpCkNPUkUgICAgICAgICAgICAgICAg IDB4MDAwMDAxNTAgICAgIE5UX1BSU1RBVFVTIChwcnN0YXR1cyBzdHJ1Y3R1cmUpCkNPUkUgICAg ICAgICAgICAgICAgIDB4MDAwMDAxNTAgICAgIE5UX1BSU1RBVFVTIChwcnN0YXR1cyBzdHJ1Y3R1 cmUpClZNQ09SRUlORk8gICAgICAgICAgIDB4MDAwMDA3NGYgICAgIFVua25vd24gbm90ZSB0eXBl OiAoMHgwMDAwMDAwMCkKCkhlcmUsIGZvciBteSB0d28gZGV2aWNlcywgdGhlIGR1bXDigJlzIG5h bWVzIGFyZQpWTUNPUkVERF9jeGdiNF8wMDAwOjAyOjAwLjQgYW5kIFZNQ09SRUREX2N4Z2I0XzAw MDA6MDQ6MDAuNC4KCkl04oCZcyByZWFsbHkgdXAgdG8gdGhlIGNhbGxlcnMgdG8gd3JpdGUgdGhl aXIgb3duIHVuaXF1ZSBuYW1lIGZvciB0aGUKZHVtcC4gIFRoZSBuYW1lIGlzIGFwcGVuZGVkIHRv IOKAnFZNQ09SRUREX+KAnSBzdHJpbmcuCgo+IFJhaHVsLCBkaWQgeW91IGxvb2sgYXQgdGhlIHBh dGNoc2V0IEkgcG9pbnRlZCBvdXQ/CgpGb3IgZGV2bGluaywgSSB0aGluayB0aGUgZHVtcCBuYW1l IHdvdWxkIGJlIGlkZW50aWZpZWQgYnkKYnVzX3R5cGUvZGV2aWNlX25hbWU7IGkuZS4g4oCccGNp LzAwMDA6MDI6MDAuNOKAnSBmb3IgbXkgZXhhbXBsZS4KSXMgbXkgdW5kZXJzdGFuZGluZyBjb3Jy ZWN0PwoKVGhhbmtzLApSYWh1bAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18Ka2V4ZWMgbWFpbGluZyBsaXN0CmtleGVjQGxpc3RzLmluZnJhZGVhZC5vcmcK aHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9rZXhlYwo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from stargate.chelsio.com ([12.32.117.8]:47797 "EHLO stargate.chelsio.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751897AbeDBMcF (ORCPT ); Mon, 2 Apr 2018 08:32:05 -0400 Date: Mon, 2 Apr 2018 18:00:45 +0530 From: Rahul Lakkireddy To: Jiri Pirko Cc: "Eric W. Biederman" , "netdev@vger.kernel.org" , "linux-fsdevel@vger.kernel.org" , "kexec@lists.infradead.org" , "linux-kernel@vger.kernel.org" , "davem@davemloft.net" , "viro@zeniv.linux.org.uk" , "stephen@networkplumber.org" , "akpm@linux-foundation.org" , "torvalds@linux-foundation.org" , Ganesh GR , Nirranjan Kirubaharan , Indranil Choudhury Subject: Re: [PATCH net-next v2 1/2] fs/crashdd: add API to collect hardware dump in second kernel Message-ID: <20180402123044.GA31231@chelsio.com> References: <296ffbd47fd4f30238689e636bd2480683224227.1521888444.git.rahul.lakkireddy@chelsio.com> <20180330103907.GC3313@nanopsycho> <20180330105156.GA24344@chelsio.com> <87k1tt2yo7.fsf@xmission.com> <20180402091143.GD3313@nanopsycho> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20180402091143.GD3313@nanopsycho> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Monday, April 04/02/18, 2018 at 14:41:43 +0530, Jiri Pirko wrote: > Fri, Mar 30, 2018 at 08:42:00PM CEST, ebiederm@xmission.com wrote: > >Rahul Lakkireddy writes: > > > >> On Friday, March 03/30/18, 2018 at 16:09:07 +0530, Jiri Pirko wrote: > >>> Sat, Mar 24, 2018 at 11:56:33AM CET, rahul.lakkireddy@chelsio.com wrote: > >>> >Add a new module crashdd that exports the /sys/kernel/crashdd/ > >>> >directory in second kernel, containing collected hardware/firmware > >>> >dumps. > >>> > > >>> >The sequence of actions done by device drivers to append their device > >>> >specific hardware/firmware logs to /sys/kernel/crashdd/ directory are > >>> >as follows: > >>> > > >>> >1. During probe (before hardware is initialized), device drivers > >>> >register to the crashdd module (via crashdd_add_dump()), with > >>> >callback function, along with buffer size and log name needed for > >>> >firmware/hardware log collection. > >>> > > >>> >2. Crashdd creates a driver's directory under > >>> >/sys/kernel/crashdd/. Then, it allocates the buffer with > >>> > >>> This smells. I need to identify the exact ASIC instance that produced > >>> the dump. To identify by driver name does not help me if I have multiple > >>> instances of the same driver. This looks wrong to me. This looks like > >>> a job for devlink where you have 1 devlink instance per 1 ASIC instance. > >>> > >>> Please see: > >>> http://patchwork.ozlabs.org/project/netdev/list/?series=36524 > >>> > >>> I bevieve that the solution in the patchset could be used for > >>> your usecase too. > >>> > >>> > >> > >> The sysfs approach proposed here had been dropped in favour exporting > >> the dumps as ELF notes in /proc/vmcore. > >> > >> Will be posting the new patches soon. > > > >The concern was actually how you identify which device that came from. > >Where you read the identifier changes but sysfs or /proc/vmcore the > >change remains valid. > > Yeah. I still don't see how you link the dump and the device. In our case, the dump and the device are being identified by the driver’s name followed by its corresponding pci bus id. I’ve posted an example in my v3 series: https://www.spinics.net/lists/netdev/msg493781.html Here’s an extract from the link above: # readelf -n /proc/vmcore Displaying notes found at file offset 0x00001000 with length 0x04003288: Owner Data size Description VMCOREDD_cxgb4_0000:02:00.4 0x02000fd8 Unknown note type:(0x00000700) VMCOREDD_cxgb4_0000:04:00.4 0x02000fd8 Unknown note type:(0x00000700) CORE 0x00000150 NT_PRSTATUS (prstatus structure) CORE 0x00000150 NT_PRSTATUS (prstatus structure) CORE 0x00000150 NT_PRSTATUS (prstatus structure) CORE 0x00000150 NT_PRSTATUS (prstatus structure) CORE 0x00000150 NT_PRSTATUS (prstatus structure) CORE 0x00000150 NT_PRSTATUS (prstatus structure) CORE 0x00000150 NT_PRSTATUS (prstatus structure) CORE 0x00000150 NT_PRSTATUS (prstatus structure) VMCOREINFO 0x0000074f Unknown note type: (0x00000000) Here, for my two devices, the dump’s names are VMCOREDD_cxgb4_0000:02:00.4 and VMCOREDD_cxgb4_0000:04:00.4. It’s really up to the callers to write their own unique name for the dump. The name is appended to “VMCOREDD_” string. > Rahul, did you look at the patchset I pointed out? For devlink, I think the dump name would be identified by bus_type/device_name; i.e. “pci/0000:02:00.4” for my example. Is my understanding correct? Thanks, Rahul