From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-wm0-x22b.google.com ([2a00:1450:400c:c09::22b]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1f3FzV-0001NR-HH for kexec@lists.infradead.org; Tue, 03 Apr 2018 07:04:27 +0000 Received: by mail-wm0-x22b.google.com with SMTP id r131so32455854wmb.2 for ; Tue, 03 Apr 2018 00:04:15 -0700 (PDT) Date: Tue, 3 Apr 2018 09:04:12 +0200 From: Jiri Pirko Subject: Re: [PATCH net-next v2 1/2] fs/crashdd: add API to collect hardware dump in second kernel Message-ID: <20180403070412.GH3313@nanopsycho> References: <296ffbd47fd4f30238689e636bd2480683224227.1521888444.git.rahul.lakkireddy@chelsio.com> <20180330103907.GC3313@nanopsycho> <20180330105156.GA24344@chelsio.com> <87k1tt2yo7.fsf@xmission.com> <20180402091143.GD3313@nanopsycho> <20180402123044.GA31231@chelsio.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20180402123044.GA31231@chelsio.com> 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: Rahul Lakkireddy 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" TW9uLCBBcHIgMDIsIDIwMTggYXQgMDI6MzA6NDVQTSBDRVNULCByYWh1bC5sYWtraXJlZGR5QGNo ZWxzaW8uY29tIHdyb3RlOgo+T24gTW9uZGF5LCBBcHJpbCAwNC8wMi8xOCwgMjAxOCBhdCAxNDo0 MTo0MyArMDUzMCwgSmlyaSBQaXJrbyB3cm90ZToKPj4gRnJpLCBNYXIgMzAsIDIwMTggYXQgMDg6 NDI6MDBQTSBDRVNULCBlYmllZGVybUB4bWlzc2lvbi5jb20gd3JvdGU6Cj4+ID5SYWh1bCBMYWtr aXJlZGR5IDxyYWh1bC5sYWtraXJlZGR5QGNoZWxzaW8uY29tPiB3cml0ZXM6Cj4+ID4KPj4gPj4g T24gRnJpZGF5LCBNYXJjaCAwMy8zMC8xOCwgMjAxOCBhdCAxNjowOTowNyArMDUzMCwgSmlyaSBQ aXJrbyB3cm90ZToKPj4gPj4+IFNhdCwgTWFyIDI0LCAyMDE4IGF0IDExOjU2OjMzQU0gQ0VULCBy YWh1bC5sYWtraXJlZGR5QGNoZWxzaW8uY29tIHdyb3RlOgo+PiA+Pj4gPkFkZCBhIG5ldyBtb2R1 bGUgY3Jhc2hkZCB0aGF0IGV4cG9ydHMgdGhlIC9zeXMva2VybmVsL2NyYXNoZGQvCj4+ID4+PiA+ ZGlyZWN0b3J5IGluIHNlY29uZCBrZXJuZWwsIGNvbnRhaW5pbmcgY29sbGVjdGVkIGhhcmR3YXJl L2Zpcm13YXJlCj4+ID4+PiA+ZHVtcHMuCj4+ID4+PiA+Cj4+ID4+PiA+VGhlIHNlcXVlbmNlIG9m IGFjdGlvbnMgZG9uZSBieSBkZXZpY2UgZHJpdmVycyB0byBhcHBlbmQgdGhlaXIgZGV2aWNlCj4+ ID4+PiA+c3BlY2lmaWMgaGFyZHdhcmUvZmlybXdhcmUgbG9ncyB0byAvc3lzL2tlcm5lbC9jcmFz aGRkLyBkaXJlY3RvcnkgYXJlCj4+ID4+PiA+YXMgZm9sbG93czoKPj4gPj4+ID4KPj4gPj4+ID4x LiBEdXJpbmcgcHJvYmUgKGJlZm9yZSBoYXJkd2FyZSBpcyBpbml0aWFsaXplZCksIGRldmljZSBk cml2ZXJzCj4+ID4+PiA+cmVnaXN0ZXIgdG8gdGhlIGNyYXNoZGQgbW9kdWxlICh2aWEgY3Jhc2hk ZF9hZGRfZHVtcCgpKSwgd2l0aAo+PiA+Pj4gPmNhbGxiYWNrIGZ1bmN0aW9uLCBhbG9uZyB3aXRo IGJ1ZmZlciBzaXplIGFuZCBsb2cgbmFtZSBuZWVkZWQgZm9yCj4+ID4+PiA+ZmlybXdhcmUvaGFy ZHdhcmUgbG9nIGNvbGxlY3Rpb24uCj4+ID4+PiA+Cj4+ID4+PiA+Mi4gQ3Jhc2hkZCBjcmVhdGVz IGEgZHJpdmVyJ3MgZGlyZWN0b3J5IHVuZGVyCj4+ID4+PiA+L3N5cy9rZXJuZWwvY3Jhc2hkZC88 ZHJpdmVyPi4gVGhlbiwgaXQgYWxsb2NhdGVzIHRoZSBidWZmZXIgd2l0aAo+PiA+Pj4gCj4+ID4+ PiBUaGlzIHNtZWxscy4gSSBuZWVkIHRvIGlkZW50aWZ5IHRoZSBleGFjdCBBU0lDIGluc3RhbmNl IHRoYXQgcHJvZHVjZWQKPj4gPj4+IHRoZSBkdW1wLiBUbyBpZGVudGlmeSBieSBkcml2ZXIgbmFt ZSBkb2VzIG5vdCBoZWxwIG1lIGlmIEkgaGF2ZSBtdWx0aXBsZQo+PiA+Pj4gaW5zdGFuY2VzIG9m IHRoZSBzYW1lIGRyaXZlci4gVGhpcyBsb29rcyB3cm9uZyB0byBtZS4gVGhpcyBsb29rcyBsaWtl Cj4+ID4+PiBhIGpvYiBmb3IgZGV2bGluayB3aGVyZSB5b3UgaGF2ZSAxIGRldmxpbmsgaW5zdGFu Y2UgcGVyIDEgQVNJQyBpbnN0YW5jZS4KPj4gPj4+IAo+PiA+Pj4gUGxlYXNlIHNlZToKPj4gPj4+ IGh0dHA6Ly9wYXRjaHdvcmsub3psYWJzLm9yZy9wcm9qZWN0L25ldGRldi9saXN0Lz9zZXJpZXM9 MzY1MjQKPj4gPj4+IAo+PiA+Pj4gSSBiZXZpZXZlIHRoYXQgdGhlIHNvbHV0aW9uIGluIHRoZSBw YXRjaHNldCBjb3VsZCBiZSB1c2VkIGZvcgo+PiA+Pj4geW91ciB1c2VjYXNlIHRvby4KPj4gPj4+ IAo+PiA+Pj4gCj4+ID4+Cj4+ID4+IFRoZSBzeXNmcyBhcHByb2FjaCBwcm9wb3NlZCBoZXJlIGhh ZCBiZWVuIGRyb3BwZWQgaW4gZmF2b3VyIGV4cG9ydGluZwo+PiA+PiB0aGUgZHVtcHMgYXMgRUxG IG5vdGVzIGluIC9wcm9jL3ZtY29yZS4KPj4gPj4KPj4gPj4gV2lsbCBiZSBwb3N0aW5nIHRoZSBu ZXcgcGF0Y2hlcyBzb29uLgo+PiA+Cj4+ID5UaGUgY29uY2VybiB3YXMgYWN0dWFsbHkgaG93IHlv dSBpZGVudGlmeSB3aGljaCBkZXZpY2UgdGhhdCBjYW1lIGZyb20uCj4+ID5XaGVyZSB5b3UgcmVh ZCB0aGUgaWRlbnRpZmllciBjaGFuZ2VzIGJ1dCBzeXNmcyBvciAvcHJvYy92bWNvcmUgdGhlCj4+ ID5jaGFuZ2UgcmVtYWlucyB2YWxpZC4KPj4gCj4+IFllYWguIEkgc3RpbGwgZG9uJ3Qgc2VlIGhv dyB5b3UgbGluayB0aGUgZHVtcCBhbmQgdGhlIGRldmljZS4KPgo+SW4gb3VyIGNhc2UsIHRoZSBk dW1wIGFuZCB0aGUgZGV2aWNlIGFyZSBiZWluZyBpZGVudGlmaWVkIGJ5IHRoZQo+ZHJpdmVy4oCZ cyBuYW1lIGZvbGxvd2VkIGJ5IGl0cyBjb3JyZXNwb25kaW5nIHBjaSBidXMgaWQuICBJ4oCZdmUg cG9zdGVkIGFuCj5leGFtcGxlIGluIG15IHYzIHNlcmllczoKPgo+aHR0cHM6Ly93d3cuc3Bpbmlj cy5uZXQvbGlzdHMvbmV0ZGV2L21zZzQ5Mzc4MS5odG1sCj4KPkhlcmXigJlzIGFuIGV4dHJhY3Qg ZnJvbSB0aGUgbGluayBhYm92ZToKPgo+IyByZWFkZWxmIC1uIC9wcm9jL3ZtY29yZQo+Cj5EaXNw bGF5aW5nIG5vdGVzIGZvdW5kIGF0IGZpbGUgb2Zmc2V0IDB4MDAwMDEwMDAgd2l0aCBsZW5ndGgg MHgwNDAwMzI4ODoKPk93bmVyICAgICAgICAgICAgICAgICBEYXRhIHNpemUgICAgIERlc2NyaXB0 aW9uCj5WTUNPUkVERF9jeGdiNF8wMDAwOjAyOjAwLjQgMHgwMjAwMGZkOCAgICAgIFVua25vd24g bm90ZSB0eXBlOigweDAwMDAwNzAwKQo+Vk1DT1JFRERfY3hnYjRfMDAwMDowNDowMC40IDB4MDIw MDBmZDggICAgICBVbmtub3duIG5vdGUgdHlwZTooMHgwMDAwMDcwMCkKPkNPUkUgICAgICAgICAg ICAgICAgIDB4MDAwMDAxNTAgICAgIE5UX1BSU1RBVFVTIChwcnN0YXR1cyBzdHJ1Y3R1cmUpCj5D T1JFICAgICAgICAgICAgICAgICAweDAwMDAwMTUwICAgICBOVF9QUlNUQVRVUyAocHJzdGF0dXMg c3RydWN0dXJlKQo+Q09SRSAgICAgICAgICAgICAgICAgMHgwMDAwMDE1MCAgICAgTlRfUFJTVEFU VVMgKHByc3RhdHVzIHN0cnVjdHVyZSkKPkNPUkUgICAgICAgICAgICAgICAgIDB4MDAwMDAxNTAg ICAgIE5UX1BSU1RBVFVTIChwcnN0YXR1cyBzdHJ1Y3R1cmUpCj5DT1JFICAgICAgICAgICAgICAg ICAweDAwMDAwMTUwICAgICBOVF9QUlNUQVRVUyAocHJzdGF0dXMgc3RydWN0dXJlKQo+Q09SRSAg ICAgICAgICAgICAgICAgMHgwMDAwMDE1MCAgICAgTlRfUFJTVEFUVVMgKHByc3RhdHVzIHN0cnVj dHVyZSkKPkNPUkUgICAgICAgICAgICAgICAgIDB4MDAwMDAxNTAgICAgIE5UX1BSU1RBVFVTIChw cnN0YXR1cyBzdHJ1Y3R1cmUpCj5DT1JFICAgICAgICAgICAgICAgICAweDAwMDAwMTUwICAgICBO VF9QUlNUQVRVUyAocHJzdGF0dXMgc3RydWN0dXJlKQo+Vk1DT1JFSU5GTyAgICAgICAgICAgMHgw MDAwMDc0ZiAgICAgVW5rbm93biBub3RlIHR5cGU6ICgweDAwMDAwMDAwKQo+Cj5IZXJlLCBmb3Ig bXkgdHdvIGRldmljZXMsIHRoZSBkdW1w4oCZcyBuYW1lcyBhcmUKPlZNQ09SRUREX2N4Z2I0XzAw MDA6MDI6MDAuNCBhbmQgVk1DT1JFRERfY3hnYjRfMDAwMDowNDowMC40Lgo+Cj5JdOKAmXMgcmVh bGx5IHVwIHRvIHRoZSBjYWxsZXJzIHRvIHdyaXRlIHRoZWlyIG93biB1bmlxdWUgbmFtZSBmb3Ig dGhlCj5kdW1wLiAgVGhlIG5hbWUgaXMgYXBwZW5kZWQgdG8g4oCcVk1DT1JFRERf4oCdIHN0cmlu Zy4KPgo+PiBSYWh1bCwgZGlkIHlvdSBsb29rIGF0IHRoZSBwYXRjaHNldCBJIHBvaW50ZWQgb3V0 Pwo+Cj5Gb3IgZGV2bGluaywgSSB0aGluayB0aGUgZHVtcCBuYW1lIHdvdWxkIGJlIGlkZW50aWZp ZWQgYnkKPmJ1c190eXBlL2RldmljZV9uYW1lOyBpLmUuIOKAnHBjaS8wMDAwOjAyOjAwLjTigJ0g Zm9yIG15IGV4YW1wbGUuCj5JcyBteSB1bmRlcnN0YW5kaW5nIGNvcnJlY3Q/CgpZZXMuCgoKPgo+ VGhhbmtzLAo+UmFodWwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmtleGVjIG1haWxpbmcgbGlzdAprZXhlY0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8va2V4ZWMK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f48.google.com ([74.125.82.48]:39101 "EHLO mail-wm0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751413AbeDCHEP (ORCPT ); Tue, 3 Apr 2018 03:04:15 -0400 Received: by mail-wm0-f48.google.com with SMTP id f125so32440180wme.4 for ; Tue, 03 Apr 2018 00:04:14 -0700 (PDT) Date: Tue, 3 Apr 2018 09:04:12 +0200 From: Jiri Pirko To: Rahul Lakkireddy 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: <20180403070412.GH3313@nanopsycho> References: <296ffbd47fd4f30238689e636bd2480683224227.1521888444.git.rahul.lakkireddy@chelsio.com> <20180330103907.GC3313@nanopsycho> <20180330105156.GA24344@chelsio.com> <87k1tt2yo7.fsf@xmission.com> <20180402091143.GD3313@nanopsycho> <20180402123044.GA31231@chelsio.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20180402123044.GA31231@chelsio.com> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: Mon, Apr 02, 2018 at 02:30:45PM CEST, rahul.lakkireddy@chelsio.com wrote: >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? Yes. > >Thanks, >Rahul