From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by sourceware.org (Postfix) with ESMTPS id 666A83858415 for ; Tue, 7 Sep 2021 10:58:44 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 666A83858415 Received: from imap1.suse-dmz.suse.de (imap1.suse-dmz.suse.de [192.168.254.73]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 88B941FF55; Tue, 7 Sep 2021 10:58:43 +0000 (UTC) Received: from imap1.suse-dmz.suse.de (imap1.suse-dmz.suse.de [192.168.254.73]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap1.suse-dmz.suse.de (Postfix) with ESMTPS id 7118013732; Tue, 7 Sep 2021 10:58:43 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap1.suse-dmz.suse.de with ESMTPSA id JbRvGuNFN2G7SgAAGKfGzw (envelope-from ); Tue, 07 Sep 2021 10:58:43 +0000 Subject: Re: [PATCH 00/30] Rewrite the DWARF "partial" reader To: Tom Tromey Cc: gdb-patches@sourceware.org References: <20210826021937.1490292-1-tom@tromey.com> <554345a9-ad2c-845e-9179-320a6967b07d@suse.de> <87lf4nlws2.fsf@tromey.com> <87r1ebj7nt.fsf@tromey.com> <875yvdjxmi.fsf@tromey.com> From: Tom de Vries Message-ID: Date: Tue, 7 Sep 2021 12:58:43 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.12.0 MIME-Version: 1.0 In-Reply-To: <875yvdjxmi.fsf@tromey.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-13.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, NICE_REPLY_A, SPF_HELO_NONE, SPF_PASS, 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: Tue, 07 Sep 2021 10:58:45 -0000 On 9/6/21 9:46 PM, Tom Tromey wrote: > Tom> $ total=100; worker_threads=unlimited; pass=0; for n in $(seq 1 $total); > Tom> do gdb -q -batch -iex "maint set worker-threads $worker_threads" > Tom> ./outputs/gdb.cp/cpexprs-debug-types/cpexprs-debug-types >LOG 2>ERR; if > Tom> [ $? -eq 0 ]; then pass=$(($pass + 1)); fi; done; echo "PASS: $pass/$total" > Tom> PASS: 62/100 > > Me> Thanks. I was able to reproduce it this way. I'm looking into it. > > This one turned out to be a data race due to how type units are handled. > However, the racy parts are actually unused, and I think can just be > deleted. The next version of the series will do that, combining a > couple of patches at the end to make it a bit simpler. > > Tom> Dwarf Error: DW_FORM_strp used without required section^M > Tom> Dwarf Error: DW_FORM_strp used without required section^M > > Me> In this case I think one idea is to de-duplicate the errors before > Me> printing them. > > I am going to implement this soon. > > I also realized that 'complaint' is not thread-safe, but can be run in > the worker threads. I have a patch for this now as well. > I pulled the series from github once more and did a build and test run. After fixing a segfault like this: ... diff --git a/gdb/complaints.c b/gdb/complaints.c index 095fa3710cd..7b8f865f134 100644 --- a/gdb/complaints.c +++ b/gdb/complaints.c @@ -115,6 +115,7 @@ complaint_interceptor::~complaint_interceptor () } g_complaint_interceptor = nullptr; + deprecated_warning_hook = m_saved_warning_hook; } /* See complaints.h. */ ... I did a regular test run and ran only into the usual suspects, so, no regressions. FTR, this did trigger: ... ERROR: internal buffer is full. ... in gdb.base/info_sources_2.exp, but that's a known issue with high cpu load and glibc debug info package. I then redid the run-in-a-loop experiments that I mentioned earlier in this thread. The gdb.cp/cpexprs-debug-types one indeed now passes, the gdb.dwarf2/fission-multi-cu still fails. > I hope to send an updated series soon, but I'm not sure exactly when > yet. Ack. Thanks, - Tom