From owner-freebsd-current@FreeBSD.ORG Sat Sep 18 09:28:02 2010 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0BEE11065670; Sat, 18 Sep 2010 09:28:02 +0000 (UTC) (envelope-from nlopes.ml@gmail.com) Received: from mail-qy0-f175.google.com (mail-qy0-f175.google.com [209.85.216.175]) by mx1.freebsd.org (Postfix) with ESMTP id 9ED458FC12; Sat, 18 Sep 2010 09:28:01 +0000 (UTC) Received: by qyk31 with SMTP id 31so1679181qyk.13 for ; Sat, 18 Sep 2010 02:28:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type; bh=iM6oMPW8mgF7Ag6q+gGyMZlCdGhRj9ElUkGvWsAppc8=; b=ElkeUS/MEvYFfWK6SCOGLZpXERvjw1XbgSn+qUzd8lKd7Y5IMdRtQSNolgD2VtFzmq DBE+YGqA6qcbkCV8IrY8yRZbi2g1vvUpShM+coI2sKaO0JzX+K05/XvH1lE0AHADSfpq sSngnjVGy4rXDOLeyvWaKyqm6WZDpHp7joecI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=wYpxKJb+2REXCaRbbJSeap3VI6EqHEPEPn0BML2o5TgmRyvGQetAf2/gZf1k4RV7tI KETIhFR2MuAZv3qYlwp3IcwJFTcfQeYEQ5ArDkt6XDFhvzOQpoH7KgmbhWo3z3laAt9S 9hOjvSUNki3r7vPPHHXwj86BNVXrKFepqIZH4= MIME-Version: 1.0 Received: by 10.224.106.38 with SMTP id v38mr3896648qao.381.1284802080447; Sat, 18 Sep 2010 02:28:00 -0700 (PDT) Received: by 10.229.235.143 with HTTP; Sat, 18 Sep 2010 02:28:00 -0700 (PDT) In-Reply-To: References: <8C5C36F5-A070-4CBA-8B8C-6751F8D636E1@gmail.com> <20100917203645.GS2389@deviant.kiev.zoral.com.ua> Date: Sat, 18 Sep 2010 11:28:00 +0200 Message-ID: From: Norberto Lopes To: Kostik Belousov Content-Type: multipart/mixed; boundary=00c09f82cc309c9fee0490854b59 Cc: freebsd-current@freebsd.org, netchild@freebsd.org Subject: Re: Extend ktrace/kdump output X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Sep 2010 09:28:02 -0000 --00c09f82cc309c9fee0490854b59 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Anyway, attached is the patch. All (constructive) criticism is welcome, even if it has to deal with "how I should do things freebsd way (in case there is one)". On Fri, Sep 17, 2010 at 10:48 PM, Norberto Lopes wrot= e: > On Fri, Sep 17, 2010 at 10:36 PM, Kostik Belousov w= rote: >> On Fri, Sep 17, 2010 at 09:55:26PM +0200, Norberto Lopes wrote: >>> Hi. >>> I've been taking a look at ktrace and kdump in order to get (1) familia= r with the sources and (2) to finally try to give back something to the com= munity. >>> >>> So far from what I've seen, and after reading this thread http://lists.= freebsd.org/pipermail/freebsd-arch/2006-April/005107.html it seems that mos= t of those points got done. >>> >>> To warm up I changed the output of the stat structure in order to provi= de me with the device name (something I actually find useful for me sometim= es) >>> >>> Instead of: >>> =C2=A022596 cat =C2=A0 =C2=A0 =C2=A0STRU =C2=A0struct stat {dev=3D89, i= no=3D3320836, mode=3D-r--r--r-- , nlink=3D1, uid=3D0, gid=3D0, atime=3D1284= 725358, stime=3D1284485510, ctime=3D1284485510, birthtime=3D1284485509, siz= e=3D1172220, blksize=3D16384, blocks=3D2336, flags=3D0x20000 } >>> >>> I get this now (including major and minor): >>> =C2=A022596 cat =C2=A0 =C2=A0 =C2=A0STRU =C2=A0struct stat {dev=3D (/dev/ad4s1a), ino=3D3320836, mode=3D-r--r--r-- , nlink= =3D1, uid=3D0, gid=3D0, atime=3D1284725358, stime=3D1284485510, ctime=3D128= 4485510, birthtime=3D1284485509, size=3D1172220, blksize=3D16384, blocks=3D= 2336, flags=3D0x20000 } >>> >>> I wouldn't mind having someone help me whenever and if I get stuck on t= he technical side (*wink* Alexander Leidinger *wink*) and also to give me m= ore insight on what the road to help in this should be. >>> >>> P.S.: I'm still going through "man style" hence no patch attached. If a= nyone finds this one useful, I'll reply with the patch though. >>> >> How do you look up the device name by st_dev ? Note that the number is >> generated by devfs at the moment of cdev creation. It is only valid on >> the machine where stat(2) is done, and only due to the next reboot. >> > > Through a really ugly hack... > opendir("/dev") > readdir("/dev") > go through them and find the one... > > Yes, I know, painful and ugly, but as I usually use kdump with no > reboots between analysis (I hardly ever reboot actually), and because > I find it exhausting to keep going back to look up the device name, > this kept me happy enough. :) > --00c09f82cc309c9fee0490854b59 Content-Type: application/octet-stream; name="kstat_devname.diff" Content-Disposition: attachment; filename="kstat_devname.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ge89zcwl0 SW5kZXg6IGtkdW1wLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2R1bXAuYwkocmV2aXNpb24gMjEyODIwKQor Kysga2R1bXAuYwkod29ya2luZyBjb3B5KQpAQCAtODIsNiArODIsOCBAQCBleHRlcm4gaW50IGVy cm5vOwogI2luY2x1ZGUgPHRpbWUuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KICNpbmNsdWRlIDx2 aXMuaD4KKyNpbmNsdWRlIDxkaXJlbnQuaD4KKyNpbmNsdWRlIDxzdGRib29sLmg+CiAjaW5jbHVk ZSAia3RyYWNlLmgiCiAjaW5jbHVkZSAia2R1bXBfc3Vici5oIgogCkBAIC0xMjQ5LDYgKzEyNTEs MTEgQEAga3Ryc3RhdChzdHJ1Y3Qgc3RhdCAqc3RhdHApCiAJc3RydWN0IHBhc3N3ZCAqcHdkOwog CXN0cnVjdCBncm91cCAgKmdycDsKIAlzdHJ1Y3QgdG0gKnRtOworCURJUiAqb2QgPSBOVUxMOwor CXN0cnVjdCBzdGF0ICpkZXZfc3RhdDsKKwlzdHJ1Y3QgZGlyZW50ICpkZXZfZW50cnk7CisJY2hh ciAqZGV2X25hbWUsICpkZXZfcGF0aD0iL2Rldi8iOworCWJvb2wgZm91bmRfZGV2ID0gZmFsc2U7 CiAKIAkvKgogCSAqIG5vdGU6IGt0cnN0cnVjdCgpIGhhcyBhbHJlYWR5IHZlcmlmaWVkIHRoYXQg c3RhdHAgcG9pbnRzIHRvIGEKQEAgLTEyNTYsOSArMTI2Myw3MyBAQCBrdHJzdGF0KHN0cnVjdCBz dGF0ICpzdGF0cCkKIAkgKi8KIAlwcmludGYoInN0cnVjdCBzdGF0IHsiKTsKIAlzdHJtb2RlKHN0 YXRwLT5zdF9tb2RlLCBtb2RlKTsKLQlwcmludGYoImRldj0lanUsIGlubz0lanUsIG1vZGU9JXMs IG5saW5rPSVqdSwgIiwKLQkJKHVpbnRtYXhfdClzdGF0cC0+c3RfZGV2LCAodWludG1heF90KXN0 YXRwLT5zdF9pbm8sIG1vZGUsCi0JCSh1aW50bWF4X3Qpc3RhdHAtPnN0X25saW5rKTsKKworCWRl dl9zdGF0ID0gKHN0cnVjdCBzdGF0ICopbWFsbG9jKHNpemVvZihzdHJ1Y3Qgc3RhdCkpOworCWlm IChkZXZfc3RhdCA9PSBOVUxMKQorCQllcnJ4KDEsICIlcyIsIHN0cmVycm9yKEVOT01FTSkpOwor CisJLyogY2hlY2sgaWYgd2UgY2FuIHJlYWNoIGl0IGFuZCBvcGVuIGl0ICovCisJaWYgKCFzdGF0 KGRldl9wYXRoLCBkZXZfc3RhdCkgJiYgKG9kID0gb3BlbmRpcihkZXZfcGF0aCkpID09IE5VTEwp CisJCWZyZWUoZGV2X3N0YXQpOworCWVsc2UgeworCQl3aGlsZSAoKGRldl9lbnRyeSA9IHJlYWRk aXIob2QpKSAhPSBOVUxMICYmIGZvdW5kX2RldiA9PSBmYWxzZSkgeworCQkJLyogaWdub3JlICIu IiBhbmQgIi4uIiAqLworCQkJaWYgKChzdHJjbXAoZGV2X2VudHJ5LT5kX25hbWUsICIuIikgPT0g MCkgfHwgCisJCQkgICAgKHN0cmNtcChkZXZfZW50cnktPmRfbmFtZSwgIi4uIikgPT0gMCkpCisJ CQkJY29udGludWU7CisJCQkKKwkJCWRldl9uYW1lID0gKGNoYXIgKiltYWxsb2Moc2l6ZW9mKGNo YXIpKgorCQkJICAgICAgICAoc3RybGVuKGRldl9wYXRoKStzdHJsZW4oZGV2X2VudHJ5LT5kX25h bWUpKSk7CisKKwkJCWlmIChkZXZfbmFtZSA9PSBOVUxMKQorCQkJCWVycngoMSwgIiVzIiwgc3Ry ZXJyb3IoRU5PTUVNKSk7CisJCQkKKwkJCSh2b2lkKXNwcmludGYoZGV2X25hbWUsICIlcyVzIiwg ZGV2X3BhdGgsIAorCQkJICAgICAgICAgICAgICAgIGRldl9lbnRyeS0+ZF9uYW1lKTsKKwkgICAg CisJCQlkZXZfc3RhdCA9IChzdHJ1Y3Qgc3RhdCAqKW1hbGxvYyhzaXplb2Yoc3RydWN0IHN0YXQp KTsKKwkJCWlmIChkZXZfc3RhdCA9PSBOVUxMKQorCQkJCWVycngoMSwgIiVzIiwgc3RyZXJyb3Io RU5PTUVNKSk7CisKKwkJCWlmIChzdGF0KGRldl9uYW1lLCBkZXZfc3RhdCkgPT0gLTEpIHsKKwkJ CQlmcmVlKGRldl9zdGF0KTsKKwkJCQljb250aW51ZTsKKwkJCX0KKworCQkJLyogCisJCQkgKiBJ ZiB0aGUgZmlsZSBkZXZpY2UgbnVtYmVyIGVxdWFscyB0aGUgZGV2aWNlIGlub2RlIAorCQkJICog d2UgaGF2ZSB0aGUgZGV2aWNlIHRoYXQgY29udGFpbnMgdGhlIGZpbGUuCisJCQkgKgorCQkJICog SW4gdGhlIGNoYW5jZSB0aGF0IHdlIGZpbmQgdGhhdCB0aGUgImZpbGUiIGlub2RlCisJCQkgKiBl cXVhbHMgdGhlIGRldmljZSBpbm9kZSwgdGhlbiB0aGV5IGFyZSB0aGUgc2FtZSB0b28uCisJCQkg Ki8KKwkJCWlmICgodWludG1heF90KXN0YXRwLT5zdF9kZXYgPT0gCisJCQkgICAgKHVpbnRtYXhf dClkZXZfc3RhdC0+c3RfaW5vKSB7CisJCQkJZm91bmRfZGV2ID0gdHJ1ZTsKKwkJCQlicmVhazsK KwkJCX0KKwkJCWVsc2UgaWYgKCh1aW50bWF4X3Qpc3RhdHAtPnN0X2lubyA9PSAKKwkJCSAgICAg ICAgKHVpbnRtYXhfdClkZXZfc3RhdC0+c3RfaW5vKSB7CisJCQkJZm91bmRfZGV2ID0gdHJ1ZTsK KwkJCQlicmVhazsKKwkJCX0KKworCQkJZnJlZShkZXZfbmFtZSk7CQkJCisJCQlmcmVlKGRldl9z dGF0KTsKKwkJfQorCX0KKwlpZiAoZm91bmRfZGV2KSB7CisJCXByaW50ZigiZGV2PTxpZD0lanU6 TT0lZDptPSVkPiAoJXMpLCIsIAorCQkgICAgICAgICh1aW50bWF4X3Qpc3RhdHAtPnN0X2Rldiwg bWFqb3Ioc3RhdHAtPnN0X2RldiksCisJCSAgICAgICAgbWlub3Ioc3RhdHAtPnN0X2RldiksIGRl dl9uYW1lKTsKKwkJZnJlZShkZXZfbmFtZSk7CisJfQorCWVsc2UKKwkJcHJpbnRmKCJkZXY9PGlk PSVqdTpNPSVkOm09JWQ+LCIsICh1aW50bWF4X3Qpc3RhdHAtPnN0X2RldiwgCisJCSAgICAgICAg bWFqb3Ioc3RhdHAtPnN0X2RldiksIG1pbm9yKHN0YXRwLT5zdF9kZXYpKTsKKworCXByaW50Zigi IGlubz0lanUsIG1vZGU9JXMsIG5saW5rPSVqdSwgIiwKKwkgICAgICAgICh1aW50bWF4X3Qpc3Rh dHAtPnN0X2lubywgbW9kZSwgKHVpbnRtYXhfdClzdGF0cC0+c3RfbmxpbmspOworCiAJaWYgKHJl c29sdiA9PSAwIHx8IChwd2QgPSBnZXRwd3VpZChzdGF0cC0+c3RfdWlkKSkgPT0gTlVMTCkKIAkJ cHJpbnRmKCJ1aWQ9JWp1LCAiLCAodWludG1heF90KXN0YXRwLT5zdF91aWQpOwogCWVsc2UKQEAg LTEyNjcsNyArMTMzOCwxMSBAQCBrdHJzdGF0KHN0cnVjdCBzdGF0ICpzdGF0cCkKIAkJcHJpbnRm KCJnaWQ9JWp1LCAiLCAodWludG1heF90KXN0YXRwLT5zdF9naWQpOwogCWVsc2UKIAkJcHJpbnRm KCJnaWQ9XCIlc1wiLCAiLCBncnAtPmdyX25hbWUpOworCisJLyogWFhYOiBEbyB3ZSByZWFsbHkg bmVlZCByZGV2IGluIGNhc2UgaXQncyBub3QgY2hhcmFjdGVyIG9yIGJsb2NrPyAqLworCS8qIGlm IChTX0lTQ0hSKHN0YXRwLT5zdF9tb2RlKSB8fCBTX0lTQkxLKHN0YXRwLT5zdF9tb2RlKSkgKi8K IAlwcmludGYoInJkZXY9JWp1LCAiLCAodWludG1heF90KXN0YXRwLT5zdF9yZGV2KTsKKwogCXBy aW50ZigiYXRpbWU9Iik7CiAJaWYgKHJlc29sdiA9PSAwKQogCQlwcmludGYoIiVqZCIsIChpbnRt YXhfdClzdGF0cC0+c3RfYXRpbS50dl9zZWMpOwpAQCAtMTMxNyw4ICsxMzkyLDggQEAga3Ryc3Rh dChzdHJ1Y3Qgc3RhdCAqc3RhdHApCiAJZWxzZQogCQlwcmludGYoIiwgIik7CiAJcHJpbnRmKCJz aXplPSVqZCwgYmxrc2l6ZT0lanUsIGJsb2Nrcz0lamQsIGZsYWdzPTB4JXgiLAotCQkodWludG1h eF90KXN0YXRwLT5zdF9zaXplLCAodWludG1heF90KXN0YXRwLT5zdF9ibGtzaXplLAotCQkoaW50 bWF4X3Qpc3RhdHAtPnN0X2Jsb2Nrcywgc3RhdHAtPnN0X2ZsYWdzKTsKKwkgICAgICAgICh1aW50 bWF4X3Qpc3RhdHAtPnN0X3NpemUsICh1aW50bWF4X3Qpc3RhdHAtPnN0X2Jsa3NpemUsCisJICAg ICAgICAoaW50bWF4X3Qpc3RhdHAtPnN0X2Jsb2Nrcywgc3RhdHAtPnN0X2ZsYWdzKTsKIAlwcmlu dGYoIiB9XG4iKTsKIH0KIAo= --00c09f82cc309c9fee0490854b59--