From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 73598 invoked by alias); 22 Feb 2020 21:50:19 -0000 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 Received: (qmail 73582 invoked by uid 89); 22 Feb 2020 21:50:19 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-12.7 required=5.0 tests=AWL,BAYES_00,SPF_PASS autolearn=ham version=3.3.1 spammy=danger, HX-Languages-Length:2215, consult X-HELO: mx2.suse.de Received: from mx2.suse.de (HELO mx2.suse.de) (195.135.220.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 22 Feb 2020 21:50:18 +0000 Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id CB46BAB3D; Sat, 22 Feb 2020 21:50:15 +0000 (UTC) Subject: Re: [PATCH 00/14] Share DWARF partial symtabs between objfiles To: Tom Tromey , gdb-patches@sourceware.org References: <20200215165444.32653-1-tom@tromey.com> From: Tom de Vries Message-ID: <364adce2-d337-4851-84fb-adc125814228@suse.de> Date: Sat, 22 Feb 2020 21:50:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 MIME-Version: 1.0 In-Reply-To: <20200215165444.32653-1-tom@tromey.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2020-02/txt/msg00899.txt.bz2 On 15-02-2020 17:54, Tom Tromey wrote: > A long-term goal for multi-inferior debugging has been to "split" an > objfile, so that the bulk of the data can be shared across inferiors. > Although a lot of progress has been made on this front, it has turned > out to be surprisingly difficult to fully implement. > > "Recently" (a year or two ago) I realized that we could get most of > the benefits of this split by sharing partial symbol tables. This is > true because reading partial symbols is the slowest operation that > users see -- in most cases, expanding a full symtab is reasonably > quick. > > Implementing this also turned out to be tricky; but unlike the > situation with types and symbols, it was possible to do incrementally. > > This series implements this idea for DWARF. It separates > dwarf2_per_objfile into shareable and unshareable parts; then, when > possible, the object is attached to the BFD. > > You can see the difference when timing "add-inferior -exec ./gdb", > after "gdb ./gdb": > > Before: Command execution time: 1.667661 (cpu), 1.687607 (wall) > After : Command execution time: 0.150011 (cpu), 0.151292 (wall) > > In this series I did not rename dwarf2_per_objfile. I'd prefer to do > this after landing this series; it seemed like a large, mostly > cosmetic, and yet hard-to-rebase patch. Also, I wanted to consult > with everyone else about what we ought to call it. > > I also didn't attempt to implement this sharing for CTF. I don't > really know much about CTF; but it seems like it ought to be possible. > (Though I wonder if CTF wouldn't benefit more from simply bypassing > partial symbols entirely.) > > Regression tested on x86-64 Fedora 28. I also did various tests by > hand, and tested it by hand, under valgrind, on a gdb built with > -fdebug-types-section. > > Like I mentioned earlier, this is a tricky series, so it would benefit > from careful review. The main danger is that, if I missed a spot, we > could end up in a situation where gdb will crash in a multi-inferior > scenario. I would like to take a look at this. Is this tromey/t/reorganize-dwarf-code-sharing on your github? Thanks, - Tom