From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31806 invoked by alias); 21 Jul 2009 20:18:40 -0000 Received: (qmail 31798 invoked by uid 22791); 21 Jul 2009 20:18:39 -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.33.17) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 21 Jul 2009 20:18:33 +0000 Received: from zps38.corp.google.com (zps38.corp.google.com [172.25.146.38]) by smtp-out.google.com with ESMTP id n6LKIS9P006347 for ; Tue, 21 Jul 2009 21:18:29 +0100 Received: from qyk17 (qyk17.prod.google.com [10.241.83.145]) by zps38.corp.google.com with ESMTP id n6LKIFFa012460 for ; Tue, 21 Jul 2009 13:18:26 -0700 Received: by qyk17 with SMTP id 17so3085651qyk.9 for ; Tue, 21 Jul 2009 13:18:26 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.96.149 with SMTP id h21mr14687qcn.53.1248207506057; Tue, 21 Jul 2009 13:18:26 -0700 (PDT) In-Reply-To: References: <8ac60eac0907161724v40e5bd8bg7877d8901b8d7b6e@mail.gmail.com> <8ac60eac0907170927x6314e81djc7f37e8a383dff2b@mail.gmail.com> Date: Tue, 21 Jul 2009 20:51:00 -0000 Message-ID: <8ac60eac0907211318j11706eb3u2339901a832e2360@mail.gmail.com> Subject: Re: [patch] Speed up find_pc_section From: Paul Pluzhnikov To: Tom Tromey Cc: gdb-patches ml Content-Type: multipart/mixed; boundary=0016363ba620012b2c046f3cf531 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-07/txt/msg00525.txt.bz2 --0016363ba620012b2c046f3cf531 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 1356 On Tue, Jul 21, 2009 at 9:06 AM, Tom Tromey wrote: > Paul> I moved the 'objfiles_updated_p +=3D 1' from free_objfile() into > Paul> clear_objfile_data() -- that's called from reread_symbols() as well. > > I don't like this so much. clear_objfile_data is a clear, > single-purpose function. I'm reluctant to add unrelated code to it. > > Perhaps a new function would be better. Or, maybe there is a way to do > this by registering some observers. Good call. I added observers and removed all other places where the flag was set. > Paul> 2009-07-17 =A0Paul Pluzhnikov =A0 ... > This should mention the modified functions: add_to_objfile_sections, > objfile_relocate, and clear_objfile_data. No longer applicable. > + objfiles_updated_p +=3D 1; /* Rebuild section map next time we need i= t. */ > > Since this is just a boolean flag I think a plain assignment is clearer. Done. Re-tested on Linux/x86_64 with no new failures. Thanks, --=20 Paul Pluzhnikov 2009-07-21 Paul Pluzhnikov * objfiles.c (objfiles_updated_p): New variable. (qsort_cmp, bsearch_cmp, update_section_map): New function. (find_pc_section): Use bsearch. (set_objfiles_updated_on_exe_change): New function. (set_objfiles_updated_on_solib_activity): New function. (_initialize_objfiles): New function. --0016363ba620012b2c046f3cf531 Content-Type: text/plain; charset=US-ASCII; name="gdb-find_pc_section-20090721.txt" Content-Disposition: attachment; filename="gdb-find_pc_section-20090721.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fxf2eb1y0 Content-length: 6584 SW5kZXg6IG9iamZpbGVzLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg ZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9vYmpmaWxlcy5jLHYKcmV0cmlldmlu ZyByZXZpc2lvbiAxLjg1CmRpZmYgLXUgLXAgLXUgLXIxLjg1IG9iamZpbGVz LmMKLS0tIG9iamZpbGVzLmMJMTQgSnVsIDIwMDkgMTQ6NTU6MDYgLTAwMDAJ MS44NQorKysgb2JqZmlsZXMuYwkyMSBKdWwgMjAwOSAyMDoxMjoxOCAtMDAw MApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgImFkZHJtYXAuaCIKICNp bmNsdWRlICJhcmNoLXV0aWxzLmgiCiAjaW5jbHVkZSAiZXhlYy5oIgorI2lu Y2x1ZGUgIm9ic2VydmVyLmgiCiAKIC8qIFByb3RvdHlwZXMgZm9yIGxvY2Fs IGZ1bmN0aW9ucyAqLwogCkBAIC02NCw2ICs2NSwxMSBAQCBzdHJ1Y3Qgb2Jq ZmlsZSAqY3VycmVudF9vYmpmaWxlOwkvKiBGb3IgCiBzdHJ1Y3Qgb2JqZmls ZSAqc3ltZmlsZV9vYmpmaWxlOwkvKiBNYWluIHN5bWJvbCB0YWJsZSBsb2Fk ZWQgZnJvbSAqLwogc3RydWN0IG9iamZpbGUgKnJ0X2NvbW1vbl9vYmpmaWxl OwkvKiBGb3IgcnVudGltZSBjb21tb24gc3ltYm9scyAqLwogCisvKiBSZWNv cmRzIHdoZXRoZXIgYW55IG9iamZpbGVzIGFwcGVhcmVkIG9yIGRpc2FwcGVh cmVkIHNpbmNlIHdlIGxhc3QgdXBkYXRlZAorICAgYWRkcmVzcyB0byBvYmog c2VjdGlvbiBtYXAuICAqLworCitzdGF0aWMgaW50IG9iamZpbGVzX3VwZGF0 ZWRfcDsKKwogLyogTG9jYXRlIGFsbCBtYXBwYWJsZSBzZWN0aW9ucyBvZiBh IEJGRCBmaWxlLiAKICAgIG9iamZpbGVfcF9jaGFyIGlzIGEgY2hhciAqIHRv IGdldCBpdCB0aHJvdWdoCiAgICBiZmRfbWFwX292ZXJfc2VjdGlvbnM7IHdl IGNhc3QgaXQgYmFjayB0byBpdHMgcHJvcGVyIHR5cGUuICAqLwpAQCAtNzU3 LDIzICs3NjMsMTEzIEBAIGhhdmVfbWluaW1hbF9zeW1ib2xzICh2b2lkKQog ICByZXR1cm4gMDsKIH0KIAorLyogUXNvcnQgY29tcGFyaXNvbiBmdW5jdGlv bi4gICovCisKK3N0YXRpYyBpbnQKK3Fzb3J0X2NtcCAoY29uc3Qgdm9pZCAq YSwgY29uc3Qgdm9pZCAqYikKK3sKKyAgY29uc3Qgc3RydWN0IG9ial9zZWN0 aW9uICpzZWN0MSA9ICooY29uc3Qgc3RydWN0IG9ial9zZWN0aW9uICoqKSBh OworICBjb25zdCBzdHJ1Y3Qgb2JqX3NlY3Rpb24gKnNlY3QyID0gKihjb25z dCBzdHJ1Y3Qgb2JqX3NlY3Rpb24gKiopIGI7CisgIGNvbnN0IENPUkVfQURE UiBzZWN0MV9hZGRyID0gb2JqX3NlY3Rpb25fYWRkciAoc2VjdDEpOworICBj b25zdCBDT1JFX0FERFIgc2VjdDJfYWRkciA9IG9ial9zZWN0aW9uX2FkZHIg KHNlY3QyKTsKKworICBpZiAoc2VjdDFfYWRkciA8IHNlY3QyX2FkZHIpCisg ICAgeworICAgICAgZ2RiX2Fzc2VydCAob2JqX3NlY3Rpb25fZW5kYWRkciAo c2VjdDEpIDw9IHNlY3QyX2FkZHIpOworICAgICAgcmV0dXJuIC0xOworICAg IH0KKyAgZWxzZSBpZiAoc2VjdDFfYWRkciA+IHNlY3QyX2FkZHIpCisgICAg eworICAgICAgZ2RiX2Fzc2VydCAoc2VjdDFfYWRkciA+PSBvYmpfc2VjdGlv bl9lbmRhZGRyIChzZWN0MikpOworICAgICAgcmV0dXJuIDE7CisgICAgfQor ICAvKiBUaGlzIGNhbiBoYXBwZW4gZm9yIHNlcGFyYXRlIGRlYnVnLWluZm8g ZmlsZXMuICAqLworICBnZGJfYXNzZXJ0IChvYmpfc2VjdGlvbl9lbmRhZGRy IChzZWN0MSkgPT0gb2JqX3NlY3Rpb25fZW5kYWRkciAoc2VjdDIpKTsKKwor ICByZXR1cm4gMDsKK30KKworLyogVXBkYXRlIFBNQVAsIFBNQVBfU0laRSB3 aXRoIG5vbi1UTFMgc2VjdGlvbnMgZnJvbSBhbGwgb2JqZmlsZXMuICAqLwor CitzdGF0aWMgdm9pZAordXBkYXRlX3NlY3Rpb25fbWFwIChzdHJ1Y3Qgb2Jq X3NlY3Rpb24gKioqcG1hcCwgaW50ICpwbWFwX3NpemUpCit7CisgIGludCBt YXBfc2l6ZSwgaWR4OworICBzdHJ1Y3Qgb2JqX3NlY3Rpb24gKnMsICoqbWFw OworICBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZTsKKworICBnZGJfYXNzZXJ0 IChvYmpmaWxlc191cGRhdGVkX3AgIT0gMCk7CisKKyAgbWFwID0gKnBtYXA7 CisgIHhmcmVlIChtYXApOworCisjZGVmaW5lIGluc2VydF9wKG9iamYsIHNl YykgXAorICAoKGJmZF9nZXRfc2VjdGlvbl9mbGFncyAoKG9iamYpLT5vYmZk LCAoc2VjKS0+dGhlX2JmZF9zZWN0aW9uKSBcCisgICAgJiBTRUNfVEhSRUFE X0xPQ0FMKSA9PSAwKQorCisgIG1hcF9zaXplID0gMDsKKyAgQUxMX09CSlNF Q1RJT05TIChvYmpmaWxlLCBzKQorICAgIGlmIChpbnNlcnRfcCAob2JqZmls ZSwgcykpCisgICAgICBtYXBfc2l6ZSArPSAxOworCisgIG1hcCA9IHhtYWxs b2MgKG1hcF9zaXplICogc2l6ZW9mICgqbWFwKSk7CisKKyAgaWR4ID0gMDsK KyAgQUxMX09CSlNFQ1RJT05TIChvYmpmaWxlLCBzKQorICAgIGlmIChpbnNl cnRfcCAob2JqZmlsZSwgcykpCisgICAgICBtYXBbaWR4KytdID0gczsKKwor I3VuZGVmIGluc2VydF9wCisKKyAgcXNvcnQgKG1hcCwgbWFwX3NpemUsIHNp emVvZiAoKm1hcCksIHFzb3J0X2NtcCk7CisKKyAgKnBtYXAgPSBtYXA7Cisg ICpwbWFwX3NpemUgPSBtYXBfc2l6ZTsKK30KKworLyogQnNlYXJjaCBjb21w YXJpc29uIGZ1bmN0aW9uLiAqLworCitzdGF0aWMgaW50Citic2VhcmNoX2Nt cCAoY29uc3Qgdm9pZCAqa2V5LCBjb25zdCB2b2lkICplbHQpCit7CisgIGNv bnN0IENPUkVfQUREUiBwYyA9ICooQ09SRV9BRERSICopIGtleTsKKyAgY29u c3Qgc3RydWN0IG9ial9zZWN0aW9uICpzZWN0aW9uID0gKihjb25zdCBzdHJ1 Y3Qgb2JqX3NlY3Rpb24gKiopIGVsdDsKKworICBpZiAocGMgPCBvYmpfc2Vj dGlvbl9hZGRyIChzZWN0aW9uKSkKKyAgICByZXR1cm4gLTE7CisgIGlmIChw YyA8IG9ial9zZWN0aW9uX2VuZGFkZHIgKHNlY3Rpb24pKQorICAgIHJldHVy biAwOworICByZXR1cm4gMTsKK30KKwogLyogUmV0dXJucyBhIHNlY3Rpb24g d2hvc2UgcmFuZ2UgaW5jbHVkZXMgUEMgb3IgTlVMTCBpZiBub25lIGZvdW5k LiAgICovCiAKIHN0cnVjdCBvYmpfc2VjdGlvbiAqCiBmaW5kX3BjX3NlY3Rp b24gKENPUkVfQUREUiBwYykKIHsKLSAgc3RydWN0IG9ial9zZWN0aW9uICpz OwotICBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZTsKKyAgc3RhdGljIHN0cnVj dCBvYmpfc2VjdGlvbiAqKnNlY3Rpb25zOworICBzdGF0aWMgaW50IG51bV9z ZWN0aW9uczsKKworICBzdHJ1Y3Qgb2JqX3NlY3Rpb24gKnMsICoqc3A7CiAK ICAgLyogQ2hlY2sgZm9yIG1hcHBlZCBvdmVybGF5IHNlY3Rpb24gZmlyc3Qu ICAqLwogICBzID0gZmluZF9wY19tYXBwZWRfc2VjdGlvbiAocGMpOwogICBp ZiAocykKICAgICByZXR1cm4gczsKIAotICBBTExfT0JKU0VDVElPTlMgKG9i amZpbGUsIHMpCi0gICAgaWYgKG9ial9zZWN0aW9uX2FkZHIgKHMpIDw9IHBj ICYmIHBjIDwgb2JqX3NlY3Rpb25fZW5kYWRkciAocykpCi0gICAgICByZXR1 cm4gczsKKyAgaWYgKG9iamZpbGVzX3VwZGF0ZWRfcCAhPSAwKQorICAgIHsK KyAgICAgIHVwZGF0ZV9zZWN0aW9uX21hcCAoJnNlY3Rpb25zLCAmbnVtX3Nl Y3Rpb25zKTsKKworICAgICAgLyogRG9uJ3QgbmVlZCB1cGRhdGVzIHRvIHNl Y3Rpb24gbWFwIHVudGlsIG9iamZpbGVzIGFyZSBhZGRlZAorICAgICAgICAg b3IgcmVtb3ZlZC4gICovCisgICAgICBvYmpmaWxlc191cGRhdGVkX3AgPSAw OworICAgIH0KIAorICBzcCA9IChzdHJ1Y3Qgb2JqX3NlY3Rpb24gKiopIGJz ZWFyY2ggKCZwYywgc2VjdGlvbnMsIG51bV9zZWN0aW9ucywKKwkJCQkJc2l6 ZW9mICgqc2VjdGlvbnMpLCBic2VhcmNoX2NtcCk7CisgIGlmIChzcCAhPSBO VUxMKQorICAgIHJldHVybiAqc3A7CiAgIHJldHVybiBOVUxMOwogfQogCkBA IC04OTIsMyArOTg4LDI5IEBAIG9iamZpbGVfZGF0YSAoc3RydWN0IG9iamZp bGUgKm9iamZpbGUsIGMKICAgZ2RiX2Fzc2VydCAoZGF0YS0+aW5kZXggPCBv YmpmaWxlLT5udW1fZGF0YSk7CiAgIHJldHVybiBvYmpmaWxlLT5kYXRhW2Rh dGEtPmluZGV4XTsKIH0KKworLyogU2V0IG9iamZpbGVzX3VwZGF0ZWRfcCBz byBzZWN0aW9uIG1hcCB3aWxsIGJlIHJlYnVpbHQgbmV4dCB0aW1lIGl0Cisg ICBpcyB1c2VkLiAgQ2FsbGVkIGJ5IGV4ZWN1dGFibGVfY2hhbmdlZCBvYnNl cnZlci4gICovCisKK3N0YXRpYyB2b2lkCitzZXRfb2JqZmlsZXNfdXBkYXRl ZF9vbl9leGVfY2hhbmdlICh2b2lkKQoreworICBvYmpmaWxlc191cGRhdGVk X3AgPSAxOyAgLyogUmVidWlsZCBzZWN0aW9uIG1hcCBuZXh0IHRpbWUgd2Ug bmVlZCBpdC4gICovCit9CisKKy8qIFNldCBvYmpmaWxlc191cGRhdGVkX3Ag c28gc2VjdGlvbiBtYXAgd2lsbCBiZSByZWJ1aWx0IG5leHQgdGltZSBpdAor ICAgaXMgdXNlZC4gIENhbGxlZCBieSBzb2xpYl9sb2FkZWQvdW5sb2FkZWQg b2JzZXJ2ZXIuICAqLworCitzdGF0aWMgdm9pZAorc2V0X29iamZpbGVzX3Vw ZGF0ZWRfb25fc29saWJfYWN0aXZpdHkgKHN0cnVjdCBzb19saXN0ICpzb19s aXN0KQoreworICBvYmpmaWxlc191cGRhdGVkX3AgPSAxOyAgLyogUmVidWls ZCBzZWN0aW9uIG1hcCBuZXh0IHRpbWUgd2UgbmVlZCBpdC4gICovCit9CisK K3ZvaWQKK19pbml0aWFsaXplX29iamZpbGVzICh2b2lkKQoreworICBvYnNl cnZlcl9hdHRhY2hfZXhlY3V0YWJsZV9jaGFuZ2VkIChzZXRfb2JqZmlsZXNf dXBkYXRlZF9vbl9leGVfY2hhbmdlKTsKKyAgb2JzZXJ2ZXJfYXR0YWNoX3Nv bGliX2xvYWRlZCAoc2V0X29iamZpbGVzX3VwZGF0ZWRfb25fc29saWJfYWN0 aXZpdHkpOworICBvYnNlcnZlcl9hdHRhY2hfc29saWJfdW5sb2FkZWQgKHNl dF9vYmpmaWxlc191cGRhdGVkX29uX3NvbGliX2FjdGl2aXR5KTsKK30K --0016363ba620012b2c046f3cf531--