From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============3947293343622515879==" MIME-Version: 1.0 From: Mark Wielaard To: elfutils-devel@lists.fedorahosted.org Subject: Re: [RFC] elfutils: Checks for debuginfo file without .debug extension as well Date: Mon, 22 Feb 2016 14:45:09 +0100 Message-ID: <1456148709.7770.91.camel@redhat.com> In-Reply-To: 56C86CEA.6080707@linux.vnet.ibm.com --===============3947293343622515879== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Ravi, On Sat, 2016-02-20 at 19:10 +0530, Ravi Bangoria wrote: > Thanks for the patch. Indeed this is optimized one compared to what I've > proposed. > = > On Friday 19 February 2016 08:41 PM, Mark Wielaard wrote: > > Thanks, that looks like what I expected. > > I also got access to a somewhat newer version of ubuntu ppc64le and that > > has an additional issue. It has the vmlinux file installed unreadable > > (except for root). That causes almost the same issue, but slightly > > differently, now no kernel at all is found... Although in that case it > > can be worked around be using /usr/lib/debug as base. But the main issue > > is exactly as you describe. > = > Can you please provide me system configurations like ubuntu versrion, > kernel version, stap version, elfutils version etc. I'll check if I'll = > be able to get similar system. Ubuntu 15.10 wily. 4.2.0-27-generic #32-Ubuntu SMP ppc64le elfutils-0.163-4ubuntu1 stap from systemtap git. > > Could you try out if this variant of the patch works for you? > = > I've tested your patch and it's working fine with Ubuntu 14.04 with = > kernel 3.13, > stap 2.3 and elfutils 0.165. Great, thanks for testing. > But I've a little doubt here. Here is the code snip of try_kernel_name > from libdwfl/linux-kernel-modules.c > = > static int > try_kernel_name (Dwfl *dwfl, char **fname, bool try_debug) > { > LINE A: > int fd =3D ((((dwfl->callbacks->debuginfo_path > ? *dwfl->callbacks->debuginfo_path : NULL) > ?: DEFAULT_DEBUGINFO_PATH)[0] =3D=3D ':') ? -1 > : TEMP_FAILURE_RETRY (open64 (*fname, O_RDONLY))); > = > if (fd < 0) > { > LINE B: > /* look for "vmlinux" files. */ > fd =3D INTUSE(dwfl_standard_find_debuginfo) (&fakemod, NULL, = > NULL, 0, > *fname, basename = > (*fname), 0, > &fakemod.debug.name); > if (fd < 0 && try_debug) > LINE C: > /* look for "vmlinux.debug" files. */ > fd =3D INTUSE(dwfl_standard_find_debuginfo) (&fakemod, NULL, = > NULL, 0, > *fname, NULL, 0, > &fakemod.debug.name); > = > try_kernel_name is doing almost same thing what I have proposed. Now let's > say we want to go ahead with your patch, than call to dwfl_standard_find_= debuginfo > in LINE C will look for both vmlinux and vmlinux.debug right? But it has = > already checked for vmlinux in LINE B. So, in this case we have to modify = > try_kernel_name as well. Interesting find. And I think you are right. In our case on ubuntu ppc64le, LINE A would find the vmlinux image already and we would never reach LINE B or C. The separate debuginfo would then be found, through dwfl_standard_find_debuginfo, when we want to get the DWARF for the kernel. But on other arches where the main image isn't called vmlinux we would indeed hit them. When try_debug =3D=3D true then we only need to do C now, otherwise we only need to do B. Updated patch attached. This time with updated commit message and ChangeLog entry. Does this look correct to you? Thanks, Mark --===============3947293343622515879== Content-Type: text/x-patch MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-libdwfl-Checks-for-kernel-debuginfo-file-without-.de.patch" RnJvbSA3ODZkNjVkODg0OGVmYWE5ZDYyYjQxMjE3OTBjNTIwZDNhNjc4MmZiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSYXZpIEJhbmdvcmlhIDxyYXZpLmJhbmdvcmlhQGxpbnV4LnZu ZXQuaWJtLmNvbT4KRGF0ZTogVHVlLCAxNiBGZWIgMjAxNiAyMTo1MTozNSArMDUzMApTdWJqZWN0 OiBbUEFUQ0hdIGxpYmR3Zmw6IENoZWNrcyBmb3IgKGtlcm5lbCkgZGVidWdpbmZvIGZpbGUgd2l0 aG91dCAuZGVidWcKIGV4dGVuc2lvbiBhcyB3ZWxsCgpFbGZ1dGlscywgbG9va2luZyBmb3Iga2Vy bmVsIGRlYnVnaW5mbyBmaWxlLCB0cmllcyB0byBmaW5kIGl0IGF0CnZhcmlvdXMgcGxhY2VzLiBJ ZiBlbGZ1dGlscyBmaW5kcyAvYm9vdC92bWxpbnUqeCogZmlsZSwgaXQgY2hlY2tzCmZvciBkZWJ1 ZmdpbmZvIHNlY3Rpb24uIElmIGRlYnVnaW5mbyBpcyBub3QgcHJlc2VudCwgaXQgc2F2ZXMgaXQg YXMKJ21haW4gZWxmJyBhbmQgY29udGludWUgbG9va2luZyBmb3IgZGVidWdpbmZvIGZpbGUgaGF2 aW5nIC5kZWJ1ZwpleHRlbnNpb24gaS5lLiB2bWxpbnV4LVJFTEVBU0UuZGVidWcuCgonVWJ1bnR1 IG9uIHBvd2VycGMnIGluc3RhbGxzIGtlcm5lbCBhcyAvYm9vdC92bWxpbnV4IGFuZCBpbnN0YWxs cwpkZWJ1Z2luZm8gd2l0aG91dCBhbnkgZXh0ZW5zaW9uIGFzIC91c3IvbGliL2RlYnVnL2Jvb3Qv dm1saW51eC1SRUxFQVNFCmFuZCBoZW5jZSwgZWxmdXRpbHMgaXMgbm90IGFibGUgdG8gZmluZCB0 aGUgZGVidWdpbmZvIGZpbGUuCgpIZXJlIGlzIHRoZSBsdW5jaHBhZCBidWcgZm9yIHRoZSBzYW1l OgogIGh0dHBzOi8vYnVncy5sYXVuY2hwYWQubmV0L3VidW50dS8rc291cmNlL3N5c3RlbXRhcC8r YnVnLzE1MzcxMjUKClRoaXMgcGF0Y2ggYWRkcyBmdW5jdGlvbmFsaXR5IHRvIHNlYXJjaCBmb3Ig YSBrZXJuZWwgb3IgZGVidWdpbmZvIGZpbGUKYm90aCB3aXRoIGFuZCB3aXRob3V0IC5kZWJ1ZyBl eHRlbnNpb24uCgpTaWduZWQtb2ZmLWJ5OiBSYXZpIEJhbmdvcmlhIDxyYXZpLmJhbmdvcmlhQGxp bnV4LnZuZXQuaWJtLmNvbT4KU2lnbmVkLW9mZi1ieTogTWFyayBXaWVsYWFyZCA8bWp3QHJlZGhh dC5jb20+Ci0tLQogbGliZHdmbC9DaGFuZ2VMb2cgICAgICAgICAgICAgIHwgMTAgKysrKysrKysr KwogbGliZHdmbC9maW5kLWRlYnVnaW5mby5jICAgICAgIHwgMTUgKysrKysrKysrKysrKystCiBs aWJkd2ZsL2xpbnV4LWtlcm5lbC1tb2R1bGVzLmMgfCAyMCArKysrKysrKysrKystLS0tLS0tLQog MyBmaWxlcyBjaGFuZ2VkLCAzNiBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2xpYmR3ZmwvQ2hhbmdlTG9nIGIvbGliZHdmbC9DaGFuZ2VMb2cKaW5kZXggNjlmZDIz My4uNDYyYTYxZCAxMDA2NDQKLS0tIGEvbGliZHdmbC9DaGFuZ2VMb2cKKysrIGIvbGliZHdmbC9D aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNi0wMi0yMiAgUmF2aSBCYW5nb3JpYSA8cmF2 aS5iYW5nb3JpYUBsaW51eC52bmV0LmlibS5jb20+CisJICAgIE1hcmsgV2llbGFhcmQgIDxtandA cmVkaGF0LmNvbT4KKworCSogZmluZC1kZWJ1Z2luZm8uYyAoZmluZF9kZWJ1Z2luZm9faW5fcGF0 aCk6IFJlbWVtYmVyIHdoZXRoZXIKKwlkZWJ1Z2xpbmtfZmlsZSBpcyBOVUxMLiBUcnkgZmlsZSBi YXNlbmFtZSAod2l0aG91dCAuZGVidWcpIG9mcgorCWFic29sdXRlIGFuZCByZWxhdGl2ZSBwYXRo IGlmIGRlYnVnX2ZpbGUgd2FzIE5VTEwuCisJKiBsaW51eC1rZXJuZWwtbW9kdWxlcy5jICh0cnlf a2VybmVsX25hbWUpOiBJZiB0cnlfZGVidWcgaXMgdHJ1ZSBjYWxsCisJZHdmbF9zdGFuZGFyZF9m aW5kX2RlYnVnaW5mbyB3aXRoIE5VTEwgZGVidWdsaW5rX2ZpbGUsIG90aGVyd2lzZSB3aXRoCisJ YmFzZW5hbWUgb2YgZm5hbWUuCisKIDIwMTYtMDItMTMgIE1hcmsgV2llbGFhcmQgIDxtandAcmVk aGF0LmNvbT4KIAogCSogbGludXgtcHJvYy1tYXBzLmMgKHByb2NfbWFwc19yZXBvcnQpOiBGcmVl IGxhc3RfZmlsZSB3aGVuIEVOT0VYRUMuCmRpZmYgLS1naXQgYS9saWJkd2ZsL2ZpbmQtZGVidWdp bmZvLmMgYi9saWJkd2ZsL2ZpbmQtZGVidWdpbmZvLmMKaW5kZXggNzI0NjFiYy4uODA1MTVkYiAx MDA2NDQKLS0tIGEvbGliZHdmbC9maW5kLWRlYnVnaW5mby5jCisrKyBiL2xpYmR3ZmwvZmluZC1k ZWJ1Z2luZm8uYwpAQCAtMTYzLDcgKzE2MywxMSBAQCBmaW5kX2RlYnVnaW5mb19pbl9wYXRoIChE d2ZsX01vZHVsZSAqbW9kLCBjb25zdCBjaGFyICpmaWxlX25hbWUsCiAKICAgY29uc3QgY2hhciAq ZmlsZV9iYXNlbmFtZSA9IGZpbGVfbmFtZSA9PSBOVUxMID8gTlVMTCA6IGJhc2VuYW1lIChmaWxl X25hbWUpOwogICBjaGFyICpsb2NhbG5hbWUgPSBOVUxMOwotICBpZiAoZGVidWdsaW5rX2ZpbGUg PT0gTlVMTCkKKworICAvKiBXZSBpbnZlbnQgYSBkZWJ1Z2xpbmsgLmRlYnVnIG5hbWUgaWYgTlVM TCwgYnV0IHRoZW4gd2FudCB0byB0cnkgdGhlCisgICAgIGJhc2VuYW1lIHRvby4gICovCisgIGJv b2wgZGVidWdsaW5rX251bGwgPSBkZWJ1Z2xpbmtfZmlsZSA9PSBOVUxMOworICBpZiAoZGVidWds aW5rX251bGwpCiAgICAgewogICAgICAgLyogRm9yIGEgYWx0IGRlYnVnIG11bHRpIGZpbGUgd2Ug bmVlZCBhIG5hbWUsIGZvciBhIHNlcGFyYXRlIGRlYnVnCiAJIG5hbWUgd2UgbWF5IGJlIGFibGUg dG8gZmFsbCBiYWNrIG9uIGZpbGVfYmFzZW5hbWUuZGVidWcuICAqLwpAQCAtMjMxLDYgKzIzNSwx MCBAQCBmaW5kX2RlYnVnaW5mb19pbl9wYXRoIChEd2ZsX01vZHVsZSAqbW9kLCBjb25zdCBjaGFy ICpmaWxlX25hbWUsCiAJY2hlY2sgPSAqcCsrID09ICcrJzsKICAgICAgIGNoZWNrID0gY2hlY2sg JiYgY2FuY2hlY2s7CiAKKyAgICAgIC8qIFRyeSB0aGUgYmFzZW5hbWUgdG9vLCBpZiB3ZSBtYWRl IHVwIHRoZSBkZWJ1Z2xpbmsgbmFtZSBhbmQgdGhpcworCSBpcyBub3QgdGhlIG1haW4gZGlyZWN0 b3J5LiAgKi8KKyAgICAgIGJvb2wgdHJ5X2ZpbGVfYmFzZW5hbWU7CisKICAgICAgIGNvbnN0IGNo YXIgKmRpciwgKnN1YmRpciwgKmZpbGU7CiAgICAgICBzd2l0Y2ggKHBbMF0pCiAJewpAQCAtMjM5 LDYgKzI0Nyw3IEBAIGZpbmRfZGVidWdpbmZvX2luX3BhdGggKER3ZmxfTW9kdWxlICptb2QsIGNv bnN0IGNoYXIgKmZpbGVfbmFtZSwKIAkgIGRpciA9IGZpbGVfZGlybmFtZTsKIAkgIHN1YmRpciA9 IE5VTEw7CiAJICBmaWxlID0gZGVidWdsaW5rX2ZpbGU7CisJICB0cnlfZmlsZV9iYXNlbmFtZSA9 IGZhbHNlOwogCSAgYnJlYWs7CiAJY2FzZSAnLyc6CiAJICAvKiBBbiBhYnNvbHV0ZSBwYXRoIHNh eXMgdG8gbG9vayB0aGVyZSBmb3IgYSBzdWJkaXJlY3RvcnkKQEAgLTI2OCw2ICsyNzcsNyBAQCBm aW5kX2RlYnVnaW5mb19pbl9wYXRoIChEd2ZsX01vZHVsZSAqbW9kLCBjb25zdCBjaGFyICpmaWxl X25hbWUsCiAJICAgICAgc3ViZGlyID0gTlVMTDsKIAkgICAgICBmaWxlID0gYmFzZW5hbWUgKGRl YnVnbGlua19maWxlKTsKIAkgICAgfQorCSAgdHJ5X2ZpbGVfYmFzZW5hbWUgPSBkZWJ1Z2xpbmtf bnVsbDsKIAkgIGJyZWFrOwogCWRlZmF1bHQ6CiAJICAvKiBBIHJlbGF0aXZlIHBhdGggc2F5cyB0 byB0cnkgYSBzdWJkaXJlY3Rvcnkgb2YgdGhhdCBuYW1lCkBAIC0yNzUsMTEgKzI4NSwxNCBAQCBm aW5kX2RlYnVnaW5mb19pbl9wYXRoIChEd2ZsX01vZHVsZSAqbW9kLCBjb25zdCBjaGFyICpmaWxl X25hbWUsCiAJICBkaXIgPSBmaWxlX2Rpcm5hbWU7CiAJICBzdWJkaXIgPSBwOwogCSAgZmlsZSA9 IGRlYnVnbGlua19maWxlOworCSAgdHJ5X2ZpbGVfYmFzZW5hbWUgPSBkZWJ1Z2xpbmtfbnVsbDsK IAkgIGJyZWFrOwogCX0KIAogICAgICAgY2hhciAqZm5hbWUgPSBOVUxMOwogICAgICAgaW50IGZk ID0gdHJ5X29wZW4gKCZtYWluX3N0YXQsIGRpciwgc3ViZGlyLCBmaWxlLCAmZm5hbWUpOworICAg ICAgaWYgKGZkIDwgMCAmJiB0cnlfZmlsZV9iYXNlbmFtZSkKKwlmZCA9IHRyeV9vcGVuICgmbWFp bl9zdGF0LCBkaXIsIHN1YmRpciwgZmlsZV9iYXNlbmFtZSwgJmZuYW1lKTsKICAgICAgIGlmIChm ZCA8IDApCiAJc3dpdGNoIChlcnJubykKIAkgIHsKZGlmZiAtLWdpdCBhL2xpYmR3ZmwvbGludXgt a2VybmVsLW1vZHVsZXMuYyBiL2xpYmR3ZmwvbGludXgta2VybmVsLW1vZHVsZXMuYwppbmRleCA3 OWZhZjk5Li41NGMwYjkwIDEwMDY0NAotLS0gYS9saWJkd2ZsL2xpbnV4LWtlcm5lbC1tb2R1bGVz LmMKKysrIGIvbGliZHdmbC9saW51eC1rZXJuZWwtbW9kdWxlcy5jCkBAIC05MiwxNyArOTIsMjEg QEAgdHJ5X2tlcm5lbF9uYW1lIChEd2ZsICpkd2ZsLCBjaGFyICoqZm5hbWUsIGJvb2wgdHJ5X2Rl YnVnKQogICBpZiAoZmQgPCAwKQogICAgIHsKICAgICAgIER3ZmxfTW9kdWxlIGZha2Vtb2QgPSB7 IC5kd2ZsID0gZHdmbCB9OwotICAgICAgLyogRmlyc3QgdHJ5IHRoZSBmaWxlJ3MgdW5hZG9ybmVk IGJhc2VuYW1lIGFzIERFQlVHTElOS19GSUxFLAotCSB0byBsb29rIGZvciAidm1saW51eCIgZmls ZXMuICAqLwotICAgICAgZmQgPSBJTlRVU0UoZHdmbF9zdGFuZGFyZF9maW5kX2RlYnVnaW5mbykg KCZmYWtlbW9kLCBOVUxMLCBOVUxMLCAwLAotCQkJCQkJICpmbmFtZSwgYmFzZW5hbWUgKCpmbmFt ZSksIDAsCi0JCQkJCQkgJmZha2Vtb2QuZGVidWcubmFtZSk7Ci0gICAgICBpZiAoZmQgPCAwICYm IHRyeV9kZWJ1ZykKLQkvKiBOZXh0LCBsZXQgdGhlIGNhbGwgdXNlIHRoZSBkZWZhdWx0IG9mIGJh c2VuYW1lICsgIi5kZWJ1ZyIsCi0JICAgdG8gbG9vayBmb3IgInZtbGludXguZGVidWciIGZpbGVz LiAgKi8KKworICAgICAgaWYgKHRyeV9kZWJ1ZykKKwkvKiBQYXNzaW5nIE5VTEwgZm9yIERFQlVH TElOS19GSUxFIHNlYXJjaGVzIGZvciBib3RoIHRoZSBiYXNlbmFtZXIKKwkgICAidm1saW51eCIg YW5kIHRoZSBkZWZhdWx0IG9mIGJhc2VuYW1lICsgIi5kZWJ1ZyIsIHRvIGxvb2sgZm9yCisJICAg InZtbGludXguZGVidWciIGZpbGVzLiAgKi8KIAlmZCA9IElOVFVTRShkd2ZsX3N0YW5kYXJkX2Zp bmRfZGVidWdpbmZvKSAoJmZha2Vtb2QsIE5VTEwsIE5VTEwsIDAsCiAJCQkJCQkgICAqZm5hbWUs IE5VTEwsIDAsCiAJCQkJCQkgICAmZmFrZW1vZC5kZWJ1Zy5uYW1lKTsKKyAgICAgIGVsc2UKKwkv KiBUcnkgdGhlIGZpbGUncyB1bmFkb3JuZWQgYmFzZW5hbWUgYXMgREVCVUdMSU5LX0ZJTEUsCisJ ICAgdG8gbG9vayBvbmx5IGZvciAidm1saW51eCIgZmlsZXMuICAqLworCWZkID0gSU5UVVNFKGR3 Zmxfc3RhbmRhcmRfZmluZF9kZWJ1Z2luZm8pICgmZmFrZW1vZCwgTlVMTCwgTlVMTCwgMCwKKwkJ CQkJCSAgICpmbmFtZSwgYmFzZW5hbWUgKCpmbmFtZSksCisJCQkJCQkgICAwLCAmZmFrZW1vZC5k ZWJ1Zy5uYW1lKTsKKwogICAgICAgaWYgKGZha2Vtb2QuZGVidWcubmFtZSAhPSBOVUxMKQogCXsK IAkgIGZyZWUgKCpmbmFtZSk7Ci0tIAoxLjguMy4xCgo= --===============3947293343622515879==--