From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8335 invoked by alias); 6 May 2009 00:50:03 -0000 Received: (qmail 8279 invoked by uid 22791); 6 May 2009 00:50:01 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL,BAYES_00,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; Wed, 06 May 2009 00:49:56 +0000 Received: from wpaz21.hot.corp.google.com (wpaz21.hot.corp.google.com [172.24.198.85]) by smtp-out.google.com with ESMTP id n460nsaI008540 for ; Tue, 5 May 2009 17:49:54 -0700 Received: from qyk1 (qyk1.prod.google.com [10.241.83.129]) by wpaz21.hot.corp.google.com with ESMTP id n460nrqD028775 for ; Tue, 5 May 2009 17:49:53 -0700 Received: by qyk1 with SMTP id 1so9160116qyk.16 for ; Tue, 05 May 2009 17:49:53 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.110.21 with SMTP id l21mr638242qcp.26.1241570992934; Tue, 05 May 2009 17:49:52 -0700 (PDT) Date: Wed, 06 May 2009 00:50:00 -0000 Message-ID: <8ac60eac0905051749p3b5d14d9q8903b9de8e18137f@mail.gmail.com> Subject: Re: [patch] Eliminate quadratic slow-down on number of solibs (part 2). From: Paul Pluzhnikov To: gdb-patches@sourceware.org Cc: Tom Tromey Content-Type: multipart/mixed; boundary=0016361e8252ff5286046933c52f 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/msg00097.txt.bz2 --0016361e8252ff5286046933c52f Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 1022 On Fri, May 1, 2009 at 3:16 PM, Paul Pluzhnikov wr= ote: > This is the patch to eliminate repeated iteration over the same objfile > looking for Objective-C methods, as Tom suggested here: > =A0http://sourceware.org/ml/gdb-patches/2009-04/msg00551.html Even after the two patches above, there is still some repeated and unnecessary setting and resetting of the breakpoints as each solib is added :-( Attached is an alternative patch which subsumes the other two, and kills additional 15% of wasted CPU time. It feels like a hack, but I don't see how to achieve the same result in a cleaner way :-( Timing on my 2780-solib test (just running ldd on that takes 15s): time gdb -ex 'break main' -ex run -ex kill -ex quit request_test =3D=3D=3D current CVS Head =3D=3D=3D real 11m16.762s user 11m5.530s sys 0m9.697s =3D=3D=3D with attached patch =3D=3D=3D real 2m43.595s user 2m33.350s sys 0m9.353s Tested on Linux/x86_64 without regressions. Comments? -- Paul Pluzhnikov --0016361e8252ff5286046933c52f Content-Type: text/plain; charset=US-ASCII; name="gdb-breakpoint-20090505.txt" Content-Disposition: attachment; filename="gdb-breakpoint-20090505.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fudb90l00 Content-length: 3132 PyBmb29mLjEyNTgwCkluZGV4OiBicmVha3BvaW50LmMKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9icmVha3Bv aW50LmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzkzCmRpZmYgLXUgLXAg LXUgLXIxLjM5MyBicmVha3BvaW50LmMKLS0tIGJyZWFrcG9pbnQuYwk1IE1h eSAyMDA5IDEzOjI0OjQ4IC0wMDAwCTEuMzkzCisrKyBicmVha3BvaW50LmMJ NiBNYXkgMjAwOSAwMDo0Njo1OSAtMDAwMApAQCAtNzIsNiArNzIsOSBAQAog I2RlZmluZSBDQVRDSF9QRVJNQU5FTlQgKCh2b2lkICopICh1aW50cHRyX3Qp IDApCiAjZGVmaW5lIENBVENIX1RFTVBPUkFSWSAoKHZvaWQgKikgKHVpbnRw dHJfdCkgMSkKIAorLyogSWYgbm9uLXplcm8sIGJyZWFrcG9pbl9yZV9zZXQo KSBpcyBhIG5vLW9wLiAgKi8KK2ludCBzdXBwcmVzc19icmVha3BvaW50X3Jl c2V0OworCiAvKiBQcm90b3R5cGVzIGZvciBsb2NhbCBmdW5jdGlvbnMuICov CiAKIHN0YXRpYyB2b2lkIGVuYWJsZV9kZWxldGVfY29tbWFuZCAoY2hhciAq LCBpbnQpOwpAQCAtNzcyMyw2ICs3NzI2LDkgQEAgYnJlYWtwb2ludF9yZV9z ZXQgKHZvaWQpCiAgIGVudW0gbGFuZ3VhZ2Ugc2F2ZV9sYW5ndWFnZTsKICAg aW50IHNhdmVfaW5wdXRfcmFkaXg7CiAKKyAgaWYgKHN1cHByZXNzX2JyZWFr cG9pbnRfcmVzZXQpCisgICAgcmV0dXJuOworCiAgIHNhdmVfbGFuZ3VhZ2Ug PSBjdXJyZW50X2xhbmd1YWdlLT5sYV9sYW5ndWFnZTsKICAgc2F2ZV9pbnB1 dF9yYWRpeCA9IGlucHV0X3JhZGl4OwogICBBTExfQlJFQUtQT0lOVFNfU0FG RSAoYiwgdGVtcCkKSW5kZXg6IGJyZWFrcG9pbnQuaAo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL2JyZWFrcG9p bnQuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS45MApkaWZmIC11IC1wIC11 IC1yMS45MCBicmVha3BvaW50LmgKLS0tIGJyZWFrcG9pbnQuaAkzMSBNYXIg MjAwOSAxNjo0NDoxNyAtMDAwMAkxLjkwCisrKyBicmVha3BvaW50LmgJNiBN YXkgMjAwOSAwMDo0Njo1OSAtMDAwMApAQCAtNjY5LDYgKzY2OSw4IEBAIGVu dW0gYnJlYWtwb2ludF9oZXJlCiAgICAgcGVybWFuZW50X2JyZWFrcG9pbnRf aGVyZQogICB9OwogDAorLyogSWYgbm9uLXplcm8sIGJyZWFrcG9pbl9yZV9z ZXQoKSBpcyBhIG5vLW9wLiAgKi8KK2V4dGVybiBpbnQgc3VwcHJlc3NfYnJl YWtwb2ludF9yZXNldDsKIAogLyogUHJvdG90eXBlcyBmb3IgYnJlYWtwb2lu dC1yZWxhdGVkIGZ1bmN0aW9ucy4gICovCiAKSW5kZXg6IHNvbGliLmMKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dk Yi9zb2xpYi5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjExNQpkaWZmIC11 IC1wIC11IC1yMS4xMTUgc29saWIuYwotLS0gc29saWIuYwk5IE1hciAyMDA5 IDIyOjM4OjM3IC0wMDAwCTEuMTE1CisrKyBzb2xpYi5jCTYgTWF5IDIwMDkg MDA6NDY6NTkgLTAwMDAKQEAgLTczOCw2ICs3MzgsOSBAQCBzb2xpYl9hZGQg KGNoYXIgKnBhdHRlcm4sIGludCBmcm9tX3R0eSwgCiAgICAgaW50IGFueV9t YXRjaGVzID0gMDsKICAgICBpbnQgbG9hZGVkX2FueV9zeW1ib2xzID0gMDsK IAorICAgIC8qIERlbGF5IHJlc2V0dGluZyBicmVha3BvaW50cyB1bnRpbCBh ZnRlciB3ZSBhZGRlZCBhbGwgc29saWJzLiAgKi8KKyAgICBzdXBwcmVzc19i cmVha3BvaW50X3Jlc2V0ICs9IDE7CisKICAgICBmb3IgKGdkYiA9IHNvX2xp c3RfaGVhZDsgZ2RiOyBnZGIgPSBnZGItPm5leHQpCiAgICAgICBpZiAoISBw YXR0ZXJuIHx8IHJlX2V4ZWMgKGdkYi0+c29fbmFtZSkpCiAJewpAQCAtNzU0 LDYgKzc1NywxMCBAQCBzb2xpYl9hZGQgKGNoYXIgKnBhdHRlcm4sIGludCBm cm9tX3R0eSwgCiAJICAgIGxvYWRlZF9hbnlfc3ltYm9scyA9IDE7CiAJfQog CisgICAgc3VwcHJlc3NfYnJlYWtwb2ludF9yZXNldCAtPSAxOworICAgIGlm IChsb2FkZWRfYW55X3N5bWJvbHMpCisgICAgICBicmVha3BvaW50X3JlX3Nl dCAoKTsKKwogICAgIGlmIChmcm9tX3R0eSAmJiBwYXR0ZXJuICYmICEgYW55 X21hdGNoZXMpCiAgICAgICBwcmludGZfdW5maWx0ZXJlZAogCSgiTm8gbG9h ZGVkIHNoYXJlZCBsaWJyYXJpZXMgbWF0Y2ggdGhlIHBhdHRlcm4gYCVzJy5c biIsIHBhdHRlcm4pOwo= --0016361e8252ff5286046933c52f--