From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS17314 8.43.84.0/22 X-Spam-Status: No, score=-4.2 required=3.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,SPF_HELO_PASS,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id 09DB81F8C8 for ; Sat, 31 Jul 2021 17:44:54 +0000 (UTC) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0F777386103B for ; Sat, 31 Jul 2021 17:44:53 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0F777386103B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1627753493; bh=/UnlzPzi5UtEo5uKmGGctfsrtF6pYWLSQD1f+iXeTbU=; h=References:In-Reply-To:Date:Subject:To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=kmmn4fP3h43b+G7BeoeAzDaw0LTaYJLbPCVsB2vgNuI7k0fES2LctYKvLn0m8QUxy Wght2UlffhzcFfTOWMdxVsYeLgYxp623ZxA3t48tpWnuwAfUR/QKO86jcAPpWvmKbA wiaEOR7PZQjdFdy5cA/cN6KFL+BuvCvnXanpqXHM= Received: from mail-pj1-x102d.google.com (mail-pj1-x102d.google.com [IPv6:2607:f8b0:4864:20::102d]) by sourceware.org (Postfix) with ESMTPS id C111C388C010 for ; Sat, 31 Jul 2021 17:44:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C111C388C010 Received: by mail-pj1-x102d.google.com with SMTP id ca5so19692281pjb.5 for ; Sat, 31 Jul 2021 10:44:17 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=/UnlzPzi5UtEo5uKmGGctfsrtF6pYWLSQD1f+iXeTbU=; b=RIAjwYNBLs7RjOt47S+R9bV0Ss4FSrE/ouacgUdltR8BNMwV95Y/hTxgY89Du28iYJ tQHk+YXGM9GRQM2UETdXTe3AD4hjGb1G9eqoEby3nIcabQPCQ50SrzV4FhmYgDjYadRt EOBsQtiYyHpBmSMI71NE4v60jD7dqLUn6+6SJPGf+BAlpOZKF3Kc1HJjn8/S7OOCS8FS 9wniDdgbkJVSiB1B257sWf3vUt5rHXSG3l9n/M0Q7fCiNj2bGM6CfyD2iX6KI8AjSewZ guRGkAr3ji+aMYpZGHnutciUL8Kv9E4lHUgUiiJu8cxdIU5eDsr2m8U8SGKwASsTruUP 0uKw== X-Gm-Message-State: AOAM531NI9IWd05JC7qGGfFkvJtaC8y8Xb0JXcHGGk56XV/FYxUlbUIk V2h/3tRLb+X+q6eP+kVD3Sd2/iSQ6FhoGovT+4Q= X-Google-Smtp-Source: ABdhPJyxzpzGZmyn9Eld29KDJbduvo+fR76RSUTT3SuN/kcyf4cuhieQe2HtriB5WcEmY5/U24inLr57IdGAZ6bNfdU= X-Received: by 2002:a63:114d:: with SMTP id 13mr3553851pgr.180.1627753456853; Sat, 31 Jul 2021 10:44:16 -0700 (PDT) MIME-Version: 1.0 References: <20210731151316.1659316-1-hjl.tools@gmail.com> <87o8aiv3sl.fsf@oldenburg.str.redhat.com> <87k0l6v26y.fsf@oldenburg.str.redhat.com> In-Reply-To: <87k0l6v26y.fsf@oldenburg.str.redhat.com> Date: Sat, 31 Jul 2021 10:43:40 -0700 Message-ID: Subject: [PATCH v3] Use __executable_start as the lowest address for profiling [BZ #28153] To: Florian Weimer Content-Type: multipart/mixed; boundary="00000000000094067d05c86ee236" X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: "H.J. Lu via Libc-alpha" Reply-To: "H.J. Lu" Cc: "H.J. Lu via Libc-alpha" Errors-To: libc-alpha-bounces+e=80x24.org@sourceware.org Sender: "Libc-alpha" --00000000000094067d05c86ee236 Content-Type: text/plain; charset="UTF-8" On Sat, Jul 31, 2021 at 10:11 AM Florian Weimer wrote: > > * H. J. Lu: > > > On Sat, Jul 31, 2021 at 9:36 AM Florian Weimer wrote: > >> > >> * H. J. Lu via Libc-alpha: > >> > >> > diff --git a/sysdeps/aarch64/start.S b/sysdeps/aarch64/start.S > >> > index 417da8802b..e46e01ed0b 100644 > >> > --- a/sysdeps/aarch64/start.S > >> > +++ b/sysdeps/aarch64/start.S > >> > @@ -42,7 +42,7 @@ > >> > NULL > >> > */ > >> > > >> > - .text > >> > + .section .text.unlikely,"ax",%progbits > >> > ENTRY(_start) > >> > /* Create an initial frame with 0 LR and FP */ > >> > cfi_undefined (x30) > >> > >> I don't think it's correct to place code that runs during every process > >> start into .text.unlikely. Surely we can avoid that page fault. > >> > >> Can we fix the ENTRY_POINT assumption in profiling instead? > > > > We can do > > > > diff --git a/csu/gmon-start.c b/csu/gmon-start.c > > index b3432885b3..83322fd586 100644 > > --- a/csu/gmon-start.c > > +++ b/csu/gmon-start.c > > @@ -48,7 +48,7 @@ > > #ifdef ENTRY_POINT_DECL > > ENTRY_POINT_DECL(extern) > > #else > > -extern char ENTRY_POINT[]; > > +extern char entry_point[] asm (__SYMBOL_PREFIX "main"); > > #endif > > extern char etext[]; > > > > @@ -56,7 +56,7 @@ extern char etext[]; > > # ifdef ENTRY_POINT_DECL > > # define TEXT_START ENTRY_POINT > > # else > > -# define TEXT_START &ENTRY_POINT > > +# define TEXT_START &entry_point > > # endif > > #endif > > > > But this may only work with BFD linker which places .text.startup > > section before .text section. > > Can we get the linker to emit a symbol at the start of the text section? We already have __executable_start which is pretty close to what we need. Like this. > Like it does for orphan sections? > > Then we can use a weak symbol reference in gmon-start.c and use the new > symbol if it is available. > > Thanks, > Florian > -- H.J. --00000000000094067d05c86ee236 Content-Type: application/x-patch; name="v3-0001-Use-__executable_start-as-the-lowest-address-for-.patch" Content-Disposition: attachment; filename="v3-0001-Use-__executable_start-as-the-lowest-address-for-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_krs2c3nj0 RnJvbSAxZWViYjlhMmI3MDFkMDE3NTY3NTViMjc4YjhhMjEwNWQxYmEyNzkwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6 IEZyaSwgMzAgSnVsIDIwMjEgMTk6MDc6MzAgLTA3MDAKU3ViamVjdDogW1BBVENIIHYzXSBVc2Ug X19leGVjdXRhYmxlX3N0YXJ0IGFzIHRoZSBsb3dlc3QgYWRkcmVzcyBmb3IgcHJvZmlsaW5nCiBb QlogIzI4MTUzXQoKR2xpYmMgYXNzdW1lcyB0aGF0IEVOVFJZX1BPSU5UIGlzIHRoZSBsb3dlc3Qg YWRkcmVzcyBmb3Igd2hpY2ggd2UgbmVlZAp0byBrZWVwIHByb2ZpbGluZyByZWNvcmRzIGFuZCBC RkQgbGlua2VyIHVzZXMgYSBsaW5rZXIgc2NyaXB0IHRvIHBsYWNlCnRoZSBpbnB1dCBzZWN0aW9u cy4KClN0YXJ0aW5nIGZyb20gR0NDIDQuNiwgdGhlIG1haW4gZnVuY3Rpb24gaXMgcGxhY2VkIGlu IC50ZXh0LnN0YXJ0dXAKc2VjdGlvbiBhbmQgc3RhcnRpbmcgZnJvbSBiaW51dGlscyAyLjIyLCBC RkQgbGlua2VyIHdpdGgKCmNvbW1pdCBhZGQ0NGY4ZDVjNWMwNWUwOGIxMWUwMzMxMjdhNzQ0ZDYx YzI2YWVlCkF1dGhvcjogQWxhbiBNb2RyYSA8YW1vZHJhQGdtYWlsLmNvbT4KRGF0ZTogICBUaHUg Tm92IDI1IDAzOjAzOjAyIDIwMTAgKzAwMDAKCiAgICAgICAgICAgICogc2NyaXB0dGVtcGwvZWxm LnNjOiBHcm91cCAudGV4dC5leGl0LCB0ZXh0LnN0YXJ0dXAgYW5kIC50ZXh0LmhvdAogICAgICAg ICAgICBzZWN0aW9ucy4KCnBsYWNlcyAudGV4dC5zdGFydHVwIHNlY3Rpb24gYmVmb3JlIC50ZXh0 IHNlY3Rpb24sIHdoaWNoIGxlYXZlIHRoZSBtYWluCmZ1bmN0aW9uIG91dCBvZiBwcm9maWxpbmcg cmVjb3Jkcy4KClN0YXJ0aW5nIGZyb20gYmludXRpbHMgMi4xNSwgbGlua2VyIHByb3ZpZGVzIF9f ZXhlY3V0YWJsZV9zdGFydCB0byBtYXJrCnRoZSBsb3dlc3QgYWRkcmVzcyBvZiB0aGUgZXhlY3V0 YWJsZS4gIFVzZSBfX2V4ZWN1dGFibGVfc3RhcnQgYXMgdGhlCmxvd2VzdCBhZGRyZXNzIHRvIGtl ZXAgdGhlIG1haW4gZnVuY3Rpb24gaW4gcHJvZmlsaW5nIHJlY29yZHMuIFRoaXMgZml4ZXMKW0Ja ICMyODE1M10uCgotLS0KIGNzdS9nbW9uLXN0YXJ0LmMgICAgICAgICAgICAgIHwgMTAgKysrKysr KysrLQogZ21vbi90c3QtZ21vbi1ncHJvZi5zaCAgICAgICAgfCAgMiArKwogZ21vbi90c3QtZ21v bi1zdGF0aWMtZ3Byb2Yuc2ggfCAgMiArKwogMyBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvY3N1L2dtb24tc3RhcnQuYyBiL2NzdS9n bW9uLXN0YXJ0LmMKaW5kZXggYjM0MzI4ODViMy4uMzQ0NjA2YTY3NiAxMDA2NDQKLS0tIGEvY3N1 L2dtb24tc3RhcnQuYworKysgYi9jc3UvZ21vbi1zdGFydC5jCkBAIC01Miw2ICs1MiwxMSBAQCBl eHRlcm4gY2hhciBFTlRSWV9QT0lOVFtdOwogI2VuZGlmCiBleHRlcm4gY2hhciBldGV4dFtdOwog CisvKiBVc2UgX19leGVjdXRhYmxlX3N0YXJ0IGFzIHRoZSBsb3dlc3QgYWRkcmVzcyB0byBrZWVw IHByb2ZpbGluZyByZWNvcmRzCisgICBpZiBpdCBwcm92aWRlZCBieSB0aGUgbGlua2VyLiAgKi8K K2V4dGVybiBjb25zdCBjaGFyIGV4ZWN1dGFibGVfc3RhcnRbXSBhc20gKCJfX2V4ZWN1dGFibGVf c3RhcnQiKQorICBfX2F0dHJpYnV0ZV9fICgod2VhaywgdmlzaWJpbGl0eSAoImhpZGRlbiIpKSk7 CisKICNpZm5kZWYgVEVYVF9TVEFSVAogIyBpZmRlZiBFTlRSWV9QT0lOVF9ERUNMCiAjICBkZWZp bmUgVEVYVF9TVEFSVCBFTlRSWV9QT0lOVApAQCAtOTIsNyArOTcsMTAgQEAgX19nbW9uX3N0YXJ0 X18gKHZvaWQpCiAgIGNhbGxlZCA9IDE7CiAKICAgLyogU3RhcnQga2VlcGluZyBwcm9maWxpbmcg cmVjb3Jkcy4gICovCi0gIF9fbW9uc3RhcnR1cCAoKHVfbG9uZykgVEVYVF9TVEFSVCwgKHVfbG9u ZykgJmV0ZXh0KTsKKyAgaWYgKCZleGVjdXRhYmxlX3N0YXJ0ICE9IE5VTEwpCisgICAgX19tb25z dGFydHVwICgodV9sb25nKSAmZXhlY3V0YWJsZV9zdGFydCwgKHVfbG9uZykgJmV0ZXh0KTsKKyAg ZWxzZQorICAgIF9fbW9uc3RhcnR1cCAoKHVfbG9uZykgVEVYVF9TVEFSVCwgKHVfbG9uZykgJmV0 ZXh0KTsKIAogICAvKiBDYWxsIF9tY2xlYW51cCBiZWZvcmUgZXhpdGluZzsgaXQgd2lsbCB3cml0 ZSBvdXQgZ21vbi5vdXQgZnJvbSB0aGUKICAgICAgY29sbGVjdGVkIGRhdGEuICAqLwpkaWZmIC0t Z2l0IGEvZ21vbi90c3QtZ21vbi1ncHJvZi5zaCBiL2dtb24vdHN0LWdtb24tZ3Byb2Yuc2gKaW5k ZXggOWQzNzE1ODJiOS4uZGMwYmUwMjExMCAxMDA2NDQKLS0tIGEvZ21vbi90c3QtZ21vbi1ncHJv Zi5zaAorKysgYi9nbW9uL3RzdC1nbW9uLWdwcm9mLnNoCkBAIC0zOSwxMiArMzksMTQgQEAgdHJh cCBjbGVhbnVwIDAKIGNhdCA+ICIkZXhwZWN0ZWQiIDw8RU9GCiBmMSAyMDAwCiBmMiAxMDAwCitm MyAxCiBFT0YKIAogIyBTcGVjaWFsIHZlcnNpb24gZm9yIHBvd2VycGMgd2l0aCBmdW5jdGlvbiBk ZXNjcmlwdG9ycy4KIGNhdCA+ICIkZXhwZWN0ZWRfZG90IiA8PEVPRgogLmYxIDIwMDAKIC5mMiAx MDAwCisuZjMgMQogRU9GCiAKICIkR1BST0YiIC1DICIkcHJvZ3JhbSIgIiRkYXRhIiBcCmRpZmYg LS1naXQgYS9nbW9uL3RzdC1nbW9uLXN0YXRpYy1ncHJvZi5zaCBiL2dtb24vdHN0LWdtb24tc3Rh dGljLWdwcm9mLnNoCmluZGV4IDc5MjE4ZGY5NjcuLjRjYzk5YzgwZDAgMTAwNjQ0Ci0tLSBhL2dt b24vdHN0LWdtb24tc3RhdGljLWdwcm9mLnNoCisrKyBiL2dtb24vdHN0LWdtb24tc3RhdGljLWdw cm9mLnNoCkBAIC0zOSw2ICszOSw3IEBAIHRyYXAgY2xlYW51cCAwCiBjYXQgPiAiJGV4cGVjdGVk IiA8PEVPRgogZjEgMjAwMAogZjIgMTAwMAorZjMgMQogbWFpbiAxCiBFT0YKIApAQCAtNDYsNiAr NDcsNyBAQCBFT0YKIGNhdCA+ICIkZXhwZWN0ZWRfZG90IiA8PEVPRgogLmYxIDIwMDAKIC5mMiAx MDAwCisuZjMgMQogLm1haW4gMQogRU9GCiAKLS0gCjIuMzEuMQoK --00000000000094067d05c86ee236--