From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gateway31.websitewelcome.com (gateway31.websitewelcome.com [192.185.144.80]) by sourceware.org (Postfix) with ESMTPS id C7CD13857C50 for ; Tue, 30 Mar 2021 16:13:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org C7CD13857C50 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=tom@tromey.com Received: from cm13.websitewelcome.com (cm13.websitewelcome.com [100.42.49.6]) by gateway31.websitewelcome.com (Postfix) with ESMTP id 55448D1C9 for ; Tue, 30 Mar 2021 11:13:43 -0500 (CDT) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with SMTP id RGzvlJDZQmJLsRGzvlw1Ok; Tue, 30 Mar 2021 11:13:43 -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-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: 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=+jmA/xW9p7EmtVKf7yym81jTY2F9UDiMq3s4RenERb4=; b=jj5Y9cTOltNlRX5j6X5qbPGaRo MnZwk6uaxcwkgNnH0DQuvU8cL7yYNZMGKVN38Sp+B37z6JiNj+y5CfPdJ0PXRIJeoZVVVvlqyn1vC vTDPf+qGdRhGBtA/d0PcfAnS7; Received: from 71-211-130-165.hlrn.qwest.net ([71.211.130.165]:48780 helo=murgatroyd) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1lRGzv-000GTI-02; Tue, 30 Mar 2021 10:13:43 -0600 From: Tom Tromey To: Simon Marchi via Gdb-patches Subject: Re: [PATCH v2] gdb/dwarf: disable per-BFD resource sharing for -readnow objfiles References: <20210315200340.2918476-1-simon.marchi@polymtl.ca> <20210330154336.1676067-1-simon.marchi@polymtl.ca> X-Attribution: Tom Date: Tue, 30 Mar 2021 10:13:42 -0600 In-Reply-To: <20210330154336.1676067-1-simon.marchi@polymtl.ca> (Simon Marchi via Gdb-patches's message of "Tue, 30 Mar 2021 11:43:36 -0400") Message-ID: <87a6qkvcuh.fsf@tromey.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain 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: 71.211.130.165 X-Source-L: No X-Exim-ID: 1lRGzv-000GTI-02 X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 71-211-130-165.hlrn.qwest.net (murgatroyd) [71.211.130.165]:48780 X-Source-Auth: tom+tromey.com X-Email-Count: 1 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-Spam-Status: No, score=-3024.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, JMQ_SPF_NEUTRAL, RCVD_IN_BL_SPAMCOP_NET, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NEUTRAL, TXREP autolearn=no autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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, 30 Mar 2021 16:13:46 -0000 Simon> I think the most sensible fix would be to not share a dwarf2_per_bfd Simon> between two objfiles loaded with different methods. That means that two Simon> objfiles sharing the same BFD and loaded the same way would share a Simon> dwarf2_per_bfd. Two objfiles sharing the same BFD but loaded with Simon> different methods would use two different dwarf2_per_bfd structures. It seems to me that -readnow is a funny situation, because it is intended to do something unusual. For all other kinds of possible sharing, I think that deferring to whatever was already done and recorded in the per-BFD object should work fine. The idea here is just to bypass the reading step when possible. So IMO it's fine to ignore the index cache if the psymtabs have already been scanned -- reading from the cache won't give any benefits relative to reusing the per-BFD object. This seems like it would mainly be an issue for the ordering of checks in dwarf2_initialize_objfile. When I look there, it seems correct already though -- the existing per-BFD is checked before trying to do any scan or reading from the index cache. Simon> * dwarf2/read.c (dwarf2_has_info): Don't share dwarf2_per_bfd Simon> with objfiles using READNOW. Thank you. This looks good to me. Thanks especially for the test case. I think the ChangeLog entry should probably mention the PR though. Tom