From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15433 invoked by alias); 12 May 2009 21:21:02 -0000 Received: (qmail 15412 invoked by uid 22791); 12 May 2009 21:20:59 -0000 X-SWARE-Spam-Status: No, hits=-0.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_32,J_CHICKENPOX_37,KAM_STOCKGEN,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.45.13) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 12 May 2009 21:20:54 +0000 Received: from zps77.corp.google.com (zps77.corp.google.com [172.25.146.77]) by smtp-out.google.com with ESMTP id n4CLKp3b018864 for ; Tue, 12 May 2009 14:20:51 -0700 Received: from qw-out-1920.google.com (qwk4.prod.google.com [10.241.195.132]) by zps77.corp.google.com with ESMTP id n4CLKUiK017963 for ; Tue, 12 May 2009 14:20:50 -0700 Received: by qw-out-1920.google.com with SMTP id 4so184521qwk.6 for ; Tue, 12 May 2009 14:20:49 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.82.75 with SMTP id a11mr232566qcl.40.1242163249697; Tue, 12 May 2009 14:20:49 -0700 (PDT) In-Reply-To: <20090512084801.GA25263@adacore.com> References: <20090420232900.2456B19C4F6@localhost> <8ac60eac0904291411o4666b3eha30d95cc88811dd5@mail.gmail.com> <20090512084801.GA25263@adacore.com> Date: Tue, 12 May 2009 21:21:00 -0000 Message-ID: <8ac60eac0905121420t3954685v4b5328d05e072f92@mail.gmail.com> Subject: Re: [rfc][patch] Eliminate quadratic slow-down on number of solibs. From: Paul Pluzhnikov To: Joel Brobecker Cc: tromey@redhat.com, gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=0016364272b940576e0469bdab01 X-System-Of-Record: true X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-05/txt/msg00255.txt.bz2 --0016364272b940576e0469bdab01 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-length: 1362 On Tue, May 12, 2009 at 1:48 AM, Joel Brobecker wrote: > Perhaps we could get rid of create_overlay_event_breakpoint entirely > by inlining it at the only location where it remains in use, There were two locations ... > and then > we can rename create_overlay_event_breakpoint_1 back to > create_overlay_event_breakpoint. Just thinking out loud, not that > it matters very much; it's just that, if it is potentially expensive > to call create_overlay_event_breakpoint because it iterates over > all objfiles, it might be beneficial to make this apparent by forcing > the caller to do the iteration (one line of code). Sounds like a good idea. Revised patch attached (there is a bit of code movement to eliminate the need for forward prototypes). Tested on Linux/x86_64 with no regressions. Thanks, -- Paul Pluzhnikov 2009-05-12 Paul Pluzhnikov * breakpoint.h: Add breakpoint_re_set_objfile prototype. * breakpoint.c (create_overlay_event_breakpoint): Renamed from create_overlay_event_breakpoint_1, old create_overlay_event_breakpoint deleted. (breakpoint_re_set_objfile): Don't rescan all objfiles unnecessarily. (breakpoint_re_set): New function. * symfile.c (new_symfile_objfile): Call breakpoint_re_set_objfile instead of breakpoint_re_set. * objfiles.c (objfile_relocate): Likewise. --0016364272b940576e0469bdab01 Content-Type: text/plain; charset=US-ASCII; name="gdb-breakpoint-20090512.txt" Content-Disposition: attachment; filename="gdb-breakpoint-20090512.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fun3wbi20 Content-length: 8260 ZGlmZiAtLWdpdCBhL2dkYi9icmVha3BvaW50LmMgYi9nZGIvYnJlYWtwb2lu dC5jCmluZGV4IGQ0MDNmMzYuLjM0NjE4MjQgMTAwNjQ0Ci0tLSBhL2dkYi9i cmVha3BvaW50LmMKKysrIGIvZ2RiL2JyZWFrcG9pbnQuYwpAQCAtMTUwLDgg KzE1MCw2IEBAIHN0YXRpYyBpbnQgd2F0Y2hwb2ludF9jaGVjayAodm9pZCAq KTsKIAogc3RhdGljIHZvaWQgbWFpbnRlbmFuY2VfaW5mb19icmVha3BvaW50 cyAoY2hhciAqLCBpbnQpOwogCi1zdGF0aWMgdm9pZCBjcmVhdGVfb3Zlcmxh eV9ldmVudF9icmVha3BvaW50IChjaGFyICopOwotCiBzdGF0aWMgaW50IGh3 X2JyZWFrcG9pbnRfdXNlZF9jb3VudCAodm9pZCk7CiAKIHN0YXRpYyBpbnQg aHdfd2F0Y2hwb2ludF91c2VkX2NvdW50IChlbnVtIGJwdHlwZSwgaW50ICop OwpAQCAtMTQ1OSwxMiArMTQ1Nyw1OCBAQCByZWF0dGFjaF9icmVha3BvaW50 cyAoaW50IHBpZCkKICAgcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBzdHJ1Y3Qg YnJlYWtwb2ludCAqCitjcmVhdGVfaW50ZXJuYWxfYnJlYWtwb2ludCAoQ09S RV9BRERSIGFkZHJlc3MsIGVudW0gYnB0eXBlIHR5cGUpCit7CisgIHN0YXRp YyBpbnQgaW50ZXJuYWxfYnJlYWtwb2ludF9udW1iZXIgPSAtMTsKKyAgc3Ry dWN0IHN5bXRhYl9hbmRfbGluZSBzYWw7CisgIHN0cnVjdCBicmVha3BvaW50 ICpiOworCisgIGluaXRfc2FsICgmc2FsKTsJCS8qIGluaXRpYWxpemUgdG8g emVyb2VzICovCisKKyAgc2FsLnBjID0gYWRkcmVzczsKKyAgc2FsLnNlY3Rp b24gPSBmaW5kX3BjX292ZXJsYXkgKHNhbC5wYyk7CisKKyAgYiA9IHNldF9y YXdfYnJlYWtwb2ludCAoc2FsLCB0eXBlKTsKKyAgYi0+bnVtYmVyID0gaW50 ZXJuYWxfYnJlYWtwb2ludF9udW1iZXItLTsKKyAgYi0+ZGlzcG9zaXRpb24g PSBkaXNwX2RvbnR0b3VjaDsKKworICByZXR1cm4gYjsKK30KKworc3RhdGlj IHZvaWQKK2NyZWF0ZV9vdmVybGF5X2V2ZW50X2JyZWFrcG9pbnQgKGNoYXIg KmZ1bmNfbmFtZSwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCit7CisgIHN0 cnVjdCBicmVha3BvaW50ICpiOworICBzdHJ1Y3QgbWluaW1hbF9zeW1ib2wg Km07CisKKyAgaWYgKChtID0gbG9va3VwX21pbmltYWxfc3ltYm9sX3RleHQg KGZ1bmNfbmFtZSwgb2JqZmlsZSkpID09IE5VTEwpCisgICAgcmV0dXJuOwor CisgIGIgPSBjcmVhdGVfaW50ZXJuYWxfYnJlYWtwb2ludCAoU1lNQk9MX1ZB TFVFX0FERFJFU1MgKG0pLAorCQkJCSAgYnBfb3ZlcmxheV9ldmVudCk7Cisg IGItPmFkZHJfc3RyaW5nID0geHN0cmR1cCAoZnVuY19uYW1lKTsKKworICBp ZiAob3ZlcmxheV9kZWJ1Z2dpbmcgPT0gb3ZseV9hdXRvKQorICAgIHsKKyAg ICAgIGItPmVuYWJsZV9zdGF0ZSA9IGJwX2VuYWJsZWQ7CisgICAgICBvdmVy bGF5X2V2ZW50c19lbmFibGVkID0gMTsKKyAgICB9CisgIGVsc2UKKyAgICB7 CisgICAgICBiLT5lbmFibGVfc3RhdGUgPSBicF9kaXNhYmxlZDsKKyAgICAg IG92ZXJsYXlfZXZlbnRzX2VuYWJsZWQgPSAwOworICAgIH0KKyAgdXBkYXRl X2dsb2JhbF9sb2NhdGlvbl9saXN0ICgxKTsKK30KKwogdm9pZAogdXBkYXRl X2JyZWFrcG9pbnRzX2FmdGVyX2V4ZWMgKHZvaWQpCiB7CiAgIHN0cnVjdCBi cmVha3BvaW50ICpiOwogICBzdHJ1Y3QgYnJlYWtwb2ludCAqdGVtcDsKICAg c3RydWN0IGJwX2xvY2F0aW9uICpicGxvYzsKKyAgc3RydWN0IG9iamZpbGUg Km9iamZpbGU7CiAKICAgLyogV2UncmUgYWJvdXQgdG8gZGVsZXRlIGJyZWFr cG9pbnRzIGZyb20gR0RCJ3MgbGlzdHMuICBJZiB0aGUKICAgICAgSU5TRVJU RUQgZmxhZyBpcyB0cnVlLCBHREIgd2lsbCB0cnkgdG8gbGlmdCB0aGUgYnJl YWtwb2ludHMgYnkKQEAgLTE1NTksNyArMTYwMyw4IEBAIHVwZGF0ZV9icmVh a3BvaW50c19hZnRlcl9leGVjICh2b2lkKQogICAgICAgfQogICB9CiAgIC8q IEZJWE1FIHdoYXQgYWJvdXQgbG9uZ2ptcCBicmVha3BvaW50cz8gIFJlLWNy ZWF0ZSB0aGVtIGhlcmU/ICAqLwotICBjcmVhdGVfb3ZlcmxheV9ldmVudF9i cmVha3BvaW50ICgiX292bHlfZGVidWdfZXZlbnQiKTsKKyAgQUxMX09CSkZJ TEVTIChvYmpmaWxlKQorICAgIGNyZWF0ZV9vdmVybGF5X2V2ZW50X2JyZWFr cG9pbnQgKCJfb3ZseV9kZWJ1Z19ldmVudCIsIG9iamZpbGUpOwogfQogCiBp bnQKQEAgLTQzODAsMjYgKzQ0MjUsNiBAQCBtYWtlX2JyZWFrcG9pbnRfcGVy bWFuZW50IChzdHJ1Y3QgYnJlYWtwb2ludCAqYikKICAgICBibC0+aW5zZXJ0 ZWQgPSAxOwogfQogCi1zdGF0aWMgc3RydWN0IGJyZWFrcG9pbnQgKgotY3Jl YXRlX2ludGVybmFsX2JyZWFrcG9pbnQgKENPUkVfQUREUiBhZGRyZXNzLCBl bnVtIGJwdHlwZSB0eXBlKQotewotICBzdGF0aWMgaW50IGludGVybmFsX2Jy ZWFrcG9pbnRfbnVtYmVyID0gLTE7Ci0gIHN0cnVjdCBzeW10YWJfYW5kX2xp bmUgc2FsOwotICBzdHJ1Y3QgYnJlYWtwb2ludCAqYjsKLQotICBpbml0X3Nh bCAoJnNhbCk7CQkvKiBpbml0aWFsaXplIHRvIHplcm9lcyAqLwotCi0gIHNh bC5wYyA9IGFkZHJlc3M7Ci0gIHNhbC5zZWN0aW9uID0gZmluZF9wY19vdmVy bGF5IChzYWwucGMpOwotCi0gIGIgPSBzZXRfcmF3X2JyZWFrcG9pbnQgKHNh bCwgdHlwZSk7Ci0gIGItPm51bWJlciA9IGludGVybmFsX2JyZWFrcG9pbnRf bnVtYmVyLS07Ci0gIGItPmRpc3Bvc2l0aW9uID0gZGlzcF9kb250dG91Y2g7 Ci0KLSAgcmV0dXJuIGI7Ci19Ci0KLQogc3RhdGljIHZvaWQKIGNyZWF0ZV9s b25nam1wX2JyZWFrcG9pbnQgKGNoYXIgKmZ1bmNfbmFtZSkKIHsKQEAgLTQ0 NDEsNDAgKzQ0NjYsNiBAQCBkZWxldGVfbG9uZ2ptcF9icmVha3BvaW50IChp bnQgdGhyZWFkKQogICAgICAgfQogfQogCi1zdGF0aWMgdm9pZAotY3JlYXRl X292ZXJsYXlfZXZlbnRfYnJlYWtwb2ludF8xIChjaGFyICpmdW5jX25hbWUs IHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQotewotICBzdHJ1Y3QgYnJlYWtw b2ludCAqYjsKLSAgc3RydWN0IG1pbmltYWxfc3ltYm9sICptOwotCi0gIGlm ICgobSA9IGxvb2t1cF9taW5pbWFsX3N5bWJvbF90ZXh0IChmdW5jX25hbWUs IG9iamZpbGUpKSA9PSBOVUxMKQotICAgIHJldHVybjsKLSAKLSAgYiA9IGNy ZWF0ZV9pbnRlcm5hbF9icmVha3BvaW50IChTWU1CT0xfVkFMVUVfQUREUkVT UyAobSksIAotCQkJCSAgYnBfb3ZlcmxheV9ldmVudCk7Ci0gIGItPmFkZHJf c3RyaW5nID0geHN0cmR1cCAoZnVuY19uYW1lKTsKLQotICBpZiAob3Zlcmxh eV9kZWJ1Z2dpbmcgPT0gb3ZseV9hdXRvKQotICAgIHsKLSAgICAgIGItPmVu YWJsZV9zdGF0ZSA9IGJwX2VuYWJsZWQ7Ci0gICAgICBvdmVybGF5X2V2ZW50 c19lbmFibGVkID0gMTsKLSAgICB9Ci0gIGVsc2UgCi0gICAgewotICAgICAg Yi0+ZW5hYmxlX3N0YXRlID0gYnBfZGlzYWJsZWQ7Ci0gICAgICBvdmVybGF5 X2V2ZW50c19lbmFibGVkID0gMDsKLSAgICB9Ci0gIHVwZGF0ZV9nbG9iYWxf bG9jYXRpb25fbGlzdCAoMSk7Ci19Ci0KLXN0YXRpYyB2b2lkCi1jcmVhdGVf b3ZlcmxheV9ldmVudF9icmVha3BvaW50IChjaGFyICpmdW5jX25hbWUpCi17 Ci0gIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlOwotICBBTExfT0JKRklMRVMg KG9iamZpbGUpCi0gICAgY3JlYXRlX292ZXJsYXlfZXZlbnRfYnJlYWtwb2lu dF8xIChmdW5jX25hbWUsIG9iamZpbGUpOwotfQotCiB2b2lkCiBlbmFibGVf b3ZlcmxheV9icmVha3BvaW50cyAodm9pZCkKIHsKQEAgLTc3MjMsOSArNzcx NCwxMyBAQCBicmVha3BvaW50X3JlX3NldF9vbmUgKHZvaWQgKmJpbnQpCiAg IHJldHVybiAwOwogfQogCi0vKiBSZS1zZXQgYWxsIGJyZWFrcG9pbnRzIGFm dGVyIHN5bWJvbHMgaGF2ZSBiZWVuIHJlLWxvYWRlZC4gICovCisvKiBSZS1z ZXQgYWxsIGJyZWFrcG9pbnRzIGFmdGVyIHN5bWJvbHMgaGF2ZSBiZWVuIHJl LWxvYWRlZC4KKworICAgSWYgT0JKRklMRSBpcyBub24tbnVsbCwgY3JlYXRl IG92ZXJsYXkgYnJlYWsgcG9pbnQgb25seSBpbiBPQkpGSUxFCisgICAoc3Bl ZWQgb3B0aW1pemF0aW9uKS4gIE90aGVyd2lzZSByZXNjYW4gYWxsIGxvYWRl ZCBvYmpmaWxlcy4gICovCisKIHZvaWQKLWJyZWFrcG9pbnRfcmVfc2V0ICh2 b2lkKQorYnJlYWtwb2ludF9yZV9zZXRfb2JqZmlsZSAoc3RydWN0IG9iamZp bGUgKm9iamZpbGUpCiB7CiAgIHN0cnVjdCBicmVha3BvaW50ICpiLCAqdGVt cDsKICAgZW51bSBsYW5ndWFnZSBzYXZlX2xhbmd1YWdlOwpAQCAtNzc0NCw4 ICs3NzM5LDIwIEBAIGJyZWFrcG9pbnRfcmVfc2V0ICh2b2lkKQogICB9CiAg IHNldF9sYW5ndWFnZSAoc2F2ZV9sYW5ndWFnZSk7CiAgIGlucHV0X3JhZGl4 ID0gc2F2ZV9pbnB1dF9yYWRpeDsKLSAgCi0gIGNyZWF0ZV9vdmVybGF5X2V2 ZW50X2JyZWFrcG9pbnQgKCJfb3ZseV9kZWJ1Z19ldmVudCIpOworCisgIGlm IChvYmpmaWxlID09IE5VTEwpCisgICAgQUxMX09CSkZJTEVTIChvYmpmaWxl KQorICAgICAgY3JlYXRlX292ZXJsYXlfZXZlbnRfYnJlYWtwb2ludCAoIl9v dmx5X2RlYnVnX2V2ZW50Iiwgb2JqZmlsZSk7CisgIGVsc2UKKyAgICBjcmVh dGVfb3ZlcmxheV9ldmVudF9icmVha3BvaW50ICgiX292bHlfZGVidWdfZXZl bnQiLCBvYmpmaWxlKTsKK30KKworLyogUmUtc2V0IGFsbCBicmVha3BvaW50 cyBhZnRlciBzeW1ib2xzIGhhdmUgYmVlbiByZS1sb2FkZWQuICAqLworCit2 b2lkCiticmVha3BvaW50X3JlX3NldCAodm9pZCkKK3sKKyAgYnJlYWtwb2lu dF9yZV9zZXRfb2JqZmlsZSAoTlVMTCk7CiB9CiAMCiAvKiBSZXNldCB0aGUg dGhyZWFkIG51bWJlciBvZiB0aGlzIGJyZWFrcG9pbnQ6CmRpZmYgLS1naXQg YS9nZGIvYnJlYWtwb2ludC5oIGIvZ2RiL2JyZWFrcG9pbnQuaAppbmRleCAx N2IyNzYxLi40M2MyZjNmIDEwMDY0NAotLS0gYS9nZGIvYnJlYWtwb2ludC5o CisrKyBiL2dkYi9icmVha3BvaW50LmgKQEAgLTY4Nyw3ICs2ODcsNyBAQCBl eHRlcm4gaW50IGJyZWFrcG9pbnRfdGhyZWFkX21hdGNoIChDT1JFX0FERFIs IHB0aWRfdCk7CiBleHRlcm4gdm9pZCB1bnRpbF9icmVha19jb21tYW5kIChj aGFyICosIGludCwgaW50KTsKIAogZXh0ZXJuIHZvaWQgYnJlYWtwb2ludF9y ZV9zZXQgKHZvaWQpOwotCitleHRlcm4gdm9pZCBicmVha3BvaW50X3JlX3Nl dF9vYmpmaWxlIChzdHJ1Y3Qgb2JqZmlsZSAqKTsKIGV4dGVybiB2b2lkIGJy ZWFrcG9pbnRfcmVfc2V0X3RocmVhZCAoc3RydWN0IGJyZWFrcG9pbnQgKik7 CiAKIGV4dGVybiBzdHJ1Y3QgYnJlYWtwb2ludCAqc2V0X21vbWVudGFyeV9i cmVha3BvaW50CmRpZmYgLS1naXQgYS9nZGIvb2JqZmlsZXMuYyBiL2dkYi9v YmpmaWxlcy5jCmluZGV4IDc5NWQ1M2IuLjMwYTQzMTMgMTAwNjQ0Ci0tLSBh L2dkYi9vYmpmaWxlcy5jCisrKyBiL2dkYi9vYmpmaWxlcy5jCkBAIC02NzQs NyArNjc0LDcgQEAgb2JqZmlsZV9yZWxvY2F0ZSAoc3RydWN0IG9iamZpbGUg Km9iamZpbGUsIHN0cnVjdCBzZWN0aW9uX29mZnNldHMgKm5ld19vZmZzZXRz KQogICAgIH0KIAogICAvKiBSZWxvY2F0ZSBicmVha3BvaW50cyBhcyBuZWNl c3NhcnksIGFmdGVyIHRoaW5ncyBhcmUgcmVsb2NhdGVkLiAqLwotICBicmVh a3BvaW50X3JlX3NldCAoKTsKKyAgYnJlYWtwb2ludF9yZV9zZXRfb2JqZmls ZSAob2JqZmlsZSk7CiB9CiAMCiAvKiBNYW55IHBsYWNlcyBpbiBnZGIgd2Fu dCB0byB0ZXN0IGp1c3QgdG8gc2VlIGlmIHdlIGhhdmUgYW55IHBhcnRpYWwK ZGlmZiAtLWdpdCBhL2dkYi9zeW1maWxlLmMgYi9nZGIvc3ltZmlsZS5jCmlu ZGV4IDUyN2IwZDUuLjc3NDEwMWQgMTAwNjQ0Ci0tLSBhL2dkYi9zeW1maWxl LmMKKysrIGIvZ2RiL3N5bWZpbGUuYwpAQCAtOTIzLDcgKzkyMyw3IEBAIG5l d19zeW1maWxlX29iamZpbGUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBp bnQgbWFpbmxpbmUsIGludCB2ZXJibykKICAgICB9CiAgIGVsc2UKICAgICB7 Ci0gICAgICBicmVha3BvaW50X3JlX3NldCAoKTsKKyAgICAgIGJyZWFrcG9p bnRfcmVfc2V0X29iamZpbGUgKG9iamZpbGUpOwogICAgIH0KIAogICAvKiBX ZSdyZSBkb25lIHJlYWRpbmcgdGhlIHN5bWJvbCBmaWxlOyBmaW5pc2ggb2Zm IGNvbXBsYWludHMuICAqLwo= --0016364272b940576e0469bdab01--