From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gateway31.websitewelcome.com (gateway31.websitewelcome.com [192.185.144.94]) by sourceware.org (Postfix) with ESMTPS id 097E7385840B for ; Thu, 4 Nov 2021 18:11:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 097E7385840B Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=tromey.com Received: from cm16.websitewelcome.com (cm16.websitewelcome.com [100.42.49.19]) by gateway31.websitewelcome.com (Postfix) with ESMTP id 028A850FFE for ; Thu, 4 Nov 2021 13:11:18 -0500 (CDT) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with SMTP id ihArmjEBctL6eihArmwuRR; Thu, 04 Nov 2021 13:09:17 -0500 X-Authority-Reason: nr=8 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=JnX4xv+ak+tVDsTJW6yxRWO5uG6fngux+Spo6GO7hmI=; b=rlMVa0SSWH3cl2ekSZUgvIkvog 0F0ie+M93/omYawM7KajP28Tw4VRvoBHNxTv0xE7hnIbwPCVvjsjHpbqhQZo5PzxOpzvvDJSHSgsc szbfiIvyZRYx3fXDooAwPv3OQ; Received: from 75-166-134-234.hlrn.qwest.net ([75.166.134.234]:51962 helo=localhost.localdomain) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mihAq-003HEM-RQ; Thu, 04 Nov 2021 12:09:16 -0600 From: Tom Tromey To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [PATCH v2 30/32] Enable the new DWARF indexer Date: Thu, 4 Nov 2021 12:09:05 -0600 Message-Id: <20211104180907.2360627-31-tom@tromey.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211104180907.2360627-1-tom@tromey.com> References: <20211104180907.2360627-1-tom@tromey.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 75.166.134.234 X-Source-L: No X-Exim-ID: 1mihAq-003HEM-RQ X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 75-166-134-234.hlrn.qwest.net (localhost.localdomain) [75.166.134.234]:51962 X-Source-Auth: tom+tromey.com X-Email-Count: 35 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-Spam-Status: No, score=-3032.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NEUTRAL, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Nov 2021 18:11:21 -0000 This patch finally enables the new indexer. It is left until this point in the series to avoid any regressions; in particular, it has to come after the changes to the DWARF index writer to avoid this problem. However, if you experiment with the series, this patch can be moved anywhere from the patch to wire in the new reader to this point. Moving this patch around is how I got separate numbers for the parallelization and background finalization patches. In the ongoing performance example, this reduces the time from the baseline of 1.598869 to 0.903534. --- gdb/dwarf2/read.c | 3 ++- gdb/testsuite/gdb.base/maint.exp | 14 +++++++++++--- gdb/testsuite/gdb.dwarf2/dw2-missing-cu-tag.exp | 3 +-- gdb/testsuite/lib/gdb.exp | 2 +- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 01cfa42f45a..49288d72bb2 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -5679,7 +5679,8 @@ dwarf2_initialize_objfile (struct objfile *objfile) } global_index_cache.miss (); - objfile->qf.push_front (make_lazy_dwarf_reader ()); + per_bfd->using_index = true; + objfile->qf.push_front (make_cooked_index_funcs ()); } diff --git a/gdb/testsuite/gdb.base/maint.exp b/gdb/testsuite/gdb.base/maint.exp index 0a0cc0f813c..84f203438da 100644 --- a/gdb/testsuite/gdb.base/maint.exp +++ b/gdb/testsuite/gdb.base/maint.exp @@ -200,11 +200,11 @@ set re \ " Number of symbol tables: $decimal" \ " Number of symbol tables with line tables: $decimal" \ " Number of symbol tables with blockvectors: $decimal" \ - "( Number of read CUs: $decimal" \ - " Number of unread CUs: $decimal" \ - ")?( Number of \"partial\" symbols read: $decimal" \ + "( Number of \"partial\" symbols read: $decimal" \ ")?( Number of psym tables \\(not yet expanded\\): $decimal" \ ")?( Total memory used for psymbol cache: $decimal" \ + ")?( Number of read CUs: $decimal" \ + " Number of unread CUs: $decimal" \ ")? Total memory used for objfile obstack: $decimal" \ " Total memory used for BFD obstack: $decimal" \ " Total memory used for string cache: $decimal" \ @@ -224,12 +224,17 @@ gdb_test_no_output "maint print dummy-frames" set header 0 set psymtabs 0 +set cooked_index 0 set symtabs 0 gdb_test_multiple "maint print objfiles" "" -lbl { -re "\r\nObject file.*maint($EXEEXT)?: Objfile at ${hex}" { set header 1 exp_continue } + -re "\r\nCooked index" { + set cooked_index 1 + exp_continue + } -re "\r\nPsymtabs:\[\r\t \]+" { set psymtabs 1 exp_continue @@ -248,6 +253,9 @@ proc maint_pass_if {val name} { } maint_pass_if $header "maint print objfiles: header" +if {$cooked_index} { + set have_psyms 0 +} if { $have_psyms } { maint_pass_if $psymtabs "maint print objfiles: psymtabs" } diff --git a/gdb/testsuite/gdb.dwarf2/dw2-missing-cu-tag.exp b/gdb/testsuite/gdb.dwarf2/dw2-missing-cu-tag.exp index 8a11d1d5575..a9922322c38 100644 --- a/gdb/testsuite/gdb.dwarf2/dw2-missing-cu-tag.exp +++ b/gdb/testsuite/gdb.dwarf2/dw2-missing-cu-tag.exp @@ -54,8 +54,7 @@ clean_restart set pattern1 \ [multi_line \ "Reading symbols from \[^\r\n\]+" \ - "Dwarf Error: unexpected tag 'DW_TAG_subprogram' at offset $hex \\\[\[^\r\n\]+\\\]" \ - "\\(No debugging symbols \[^\r\n\]+\\)"] + "Dwarf Error: unexpected tag 'DW_TAG_subprogram' at offset $hex \\\[\[^\r\n\]+\\\]"] # This pattern is hit when GDB does use -readnow (e.g. running with # --target_board=readnow). diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 97bedd5cb58..3d95397f8e1 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -7939,7 +7939,7 @@ proc ensure_gdb_index { binfile {style ""} } { set has_index 1 gdb_test_lines "" $gdb_test_name ".*" } - -re "\r\nPsymtabs:(?=\r\n)" { + -re "\r\n(Cooked index in use|Psymtabs)(?=\r\n)" { gdb_test_lines "" $gdb_test_name ".*" } -re ".gdb_index: faked for \"readnow\"" { -- 2.31.1