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 4C0ED3AA9902 for ; Mon, 13 Nov 2023 19:37:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4C0ED3AA9902 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 4C0ED3AA9902 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=195.135.220.29 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699904280; cv=none; b=sheTKSLKcX0duNBw5RZhposczIvTomkAAcy1L0BRsewjWqXtGEmdr+5KV7X/IHRfcAbc7FYsMA1AHkDqI59/W1gtcKHqVwPtILCPzNB7h/jjsRr55PcjD7VyMizqoZnAzJ2yB1B/mh0CErWBicrdQZR/PwYxU72lIz/HDS0Dasc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699904280; c=relaxed/simple; bh=oM/pCUyzf3xCpFkqua2khUwZPi6NOxr8uh+3U9/kpEU=; h=DKIM-Signature:DKIM-Signature:Message-ID:Date:MIME-Version: Subject:To:From; b=daoW/KkhHUOXsWPnGZ1A2mIbqAA5D8eRrjOPQzLMV0YPeJ2REaZqX6UIcOJ+2mWvJYrVC2x0WLFvthDRFjdZDVYIAAd0P3nD74EGGmkh/VBw7Naiha0Fp8dpgKuZHVkF0WDtG0MACuUIjQKveTXTuD2LwCgYAU6CvBf/Lkqst80= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (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 6F8A51F855; Mon, 13 Nov 2023 19:37:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1699904278; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6Z9dgrQlfLsnOuEWEESXol908ZYhLBQmJTIgtzP5DvA=; b=iC5Mx7nqAXzlXUPub12s6vTneEjgSVjjvyy/vSUO3nqvs6b7TwzPjkl5qfLvWUpzf5pfgE b1VyPUuJbuEr8hJNCl8rVRgeQ2uA1zhZRwJTrNaiGrrRvq5PKTjC21UOt9ARea/ypQZHwC wMP29vTCg24gnC2Yl/XZc45kHsoRgYQ= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1699904278; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6Z9dgrQlfLsnOuEWEESXol908ZYhLBQmJTIgtzP5DvA=; b=OOY3TKLCVVX8kHX/O9KzoA/6PafAtmlI/oYfQ39rDrMR6Alu/jr7lKZVJ/t/d9bGJHb26i JFZ3OfLqbpkxbsCw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (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 imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 26DCA1358C; Mon, 13 Nov 2023 19:37:58 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id sOBgBRZ7UmUQRAAAMHmgww (envelope-from ); Mon, 13 Nov 2023 19:37:58 +0000 Message-ID: <16a9ae74-af0d-41f7-86b9-8b9b55c45b9f@suse.de> Date: Mon, 13 Nov 2023 20:39:33 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 11/18] Do more DWARF reading in the background Content-Language: en-US To: John Baldwin , Tom Tromey , gdb-patches@sourceware.org References: <20231112-t-bg-dwarf-reading-v2-0-70fb170012ba@tromey.com> <20231112-t-bg-dwarf-reading-v2-11-70fb170012ba@tromey.com> <3c87a020-8921-4adf-8c9a-d0bd5af62b86@suse.de> <246a3715-4aeb-42f4-a977-c5ebd53e0240@FreeBSD.org> From: Tom de Vries In-Reply-To: <246a3715-4aeb-42f4-a977-c5ebd53e0240@FreeBSD.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-10.7 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 11/13/23 18:56, John Baldwin wrote: > On 11/12/23 11:15 PM, Tom de Vries wrote: >> On 11/12/23 21:25, Tom Tromey wrote: >>> + /* How much effort should be put into each worker. */ + const size_t >>> size_per_thread = total_size / n_worker_threads; >> >> I've tested the patch series on x86_64-linux, and ran into trouble in >> one test-case: >> ... >> (gdb) file >> /data/vries/gdb/leap-15-4/build/gdb/testsuite/outputs/gdb.dwarf2/dw2-dummy-cu/dw2-dummy-cu^M >> Reading symbols from >> /data/vries/gdb/leap-15-4/build/gdb/testsuite/outputs/gdb.dwarf2/dw2-dummy-cu/dw2-dummy-cu...^M >> /data/vries/gdb/src/gdb/dwarf2/read.c:5000: internal-error: do_reading: >> Assertion `iter != last' failed.^M >> A problem internal to GDB has been detected,^M >> further debugging may prove unreliable.^M >> ----- Backtrace -----^M >> ERROR: Couldn't load dw2-dummy-cu into GDB (GDB internal error). >> Resyncing due to internal error. >> (gdb) maint expand-symtab^M >> 0x5ac476 gdb_internal_backtrace_1^M >>           /data/vries/gdb/src/gdb/bt-utils.c:122^M >> 0x5ac519 _Z22gdb_internal_backtracev^M >>           /data/vries/gdb/src/gdb/bt-utils.c:168^M >> 0xd11a89 internal_vproblem^M >>           /data/vries/gdb/src/gdb/utils.c:396^M >> 0xd11e58 _Z15internal_verrorPKciS0_P13__va_list_tag^M >>           /data/vries/gdb/src/gdb/utils.c:476^M >> 0x14ca6f0 _Z18internal_error_locPKciS0_z^M >>           /data/vries/gdb/src/gdbsupport/errors.cc:58^M >> 0x72b01b _ZN19cooked_index_worker10do_readingEv^M >>           /data/vries/gdb/src/gdb/dwarf2/read.c:5000^M >> ... >> >> This fixes the test-case for me: >> ... >> diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c >> index 385160de0fd..191c2ad7f26 100644 >> --- a/gdb/dwarf2/read.c >> +++ b/gdb/dwarf2/read.c >> @@ -4974,7 +4974,8 @@ cooked_index_worker::do_reading () >>        = std::max (gdb::thread_pool::g_thread_pool->thread_count (), >> (size_t) 1); >> >>      /* How much effort should be put into each worker.  */ >> -  const size_t size_per_thread = total_size / n_worker_threads; >> +  const size_t size_per_thread >> +    = std::max (total_size / n_worker_threads, (size_t)1); > > Presumably total_size was zero in that case? No, it was 11. > Should there be a shortcut > to bother queueing a task in that case instead perhaps?  Or alternatively > is the issue that total_size is < n_worker_threads? Yes, n_worker_threads was 12. > If the latter, then > a min size of 1 does seem sensible. > Thanks for the review. - Tom