From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24694 invoked by alias); 16 Nov 2009 10:23:41 -0000 Received: (qmail 24685 invoked by uid 22791); 16 Nov 2009 10:23:39 -0000 X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 tests=BAYES_00,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (38.113.113.100) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 16 Nov 2009 10:22:26 +0000 Received: (qmail 15014 invoked from network); 16 Nov 2009 10:22:25 -0000 Received: from unknown (HELO wind.localnet) (vladimir@127.0.0.2) by mail.codesourcery.com with ESMTPA; 16 Nov 2009 10:22:25 -0000 From: Vladimir Prus To: "'gdb@sources.redhat.com'" , Marc Khouzam Subject: Re: [MI] Extending -list-thread-groups --available to show cores Date: Tue, 17 Nov 2009 07:45:00 -0000 User-Agent: KMail/1.12.2 (Linux/2.6.31-14-generic-pae; KDE/4.3.2; i686; ; ) References: <200911081804.31988.vladimir@codesourcery.com> In-Reply-To: <200911081804.31988.vladimir@codesourcery.com> MIME-Version: 1.0 Content-Type: Multipart/Mixed; boundary="Boundary-00=_dfSALNN3Zr+oItm" Message-Id: <200911161322.21627.vladimir@codesourcery.com> Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2009-11/txt/msg00155.txt.bz2 --Boundary-00=_dfSALNN3Zr+oItm Content-Type: Text/Plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-length: 565 On Sunday 08 November 2009 18:04:31 you wrote: > > Current GDB has a MI command -list-thread-groups to nagivate > the hierarchy of the debugged thing. This command also the the > --available option that cause GDB to report the processes that > can be attached to, as opposed to processes currently being > debugged. ... > While those changes seem relatively minor and in line with previous MI developments, > I wanted to pass them here. If there are no objections, I'll work in implementation > during coming weeks. Here's the updated spec. Comments? - Volodya --Boundary-00=_dfSALNN3Zr+oItm Content-Type: text/plain; charset="UTF-8"; name="core-mi.txt" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="core-mi.txt" Content-length: 2531 Core awareness ============== This document specifies MI extensions to inform the client about cores on which threads are executed. While the mapping from thread to core is volatile for traditional Linux applications, it can be fixed for Linux application that specifically pin threads, and is often fixed for embedded systems, and for those cases, making frontend aware of the mapping would be nice. The proposed changes affect the 'thread groups' interface, and are as follows: 1. The output of the --list-thread-groups command will include a new field, 'cores'. For the 'process' thread group it will a list of all cores on which threads in that group are currently running. For leafs, that field should be a list with a single element. The new field will be output regardless of whether the --available option is specified. Example: -list-thread-groups --available ^done,groups=[{id="17",type="process",pid="yyy",num_children="2",cores=[1,2]}] 2. To cut down on the number of roundtrips, the --list-thread-groups without parameters may optionally recurse into the thread hierarchy. New option, '--recurse N' will be used to control that. Originally, N will be required to be 1. The --recurse option can be used independelty from the --available option. Example: -list-thread-groups --available --recurse 1 ^done,groups=[{id="17", types="process",pid="yyy",num_children="2",cores=[1,2], threads=[{id="1",target-id="Thread 0xb7e14b90",cores=[1]}, {id="2",target-id="Thread 0xb7e14b90",cores=[2]}]}] Note that in case of --available, recursing into thread groups may not be supported on a given target. In that case, the 'threads' field will be skipped. [CONSIDER: Shall -list-target-features report if --available + recurse works?] 3. It will be possible to pass several group ids to --list-thread-groups. In that case, the output will be identical to that of '-list-thread-groups' without parameters, except that thread groups that were not listed as parameters will not be output. Example: -list-thread-groups --available --recurse 1 17 18 ^done,groups=[{id="17", types="process",pid="yyy",num_children="2",cores=[1,2], threads=[{id="1",target-id="Thread 0xb7e14b90",cores=[1]}, {id="2",target-id="Thread 0xb7e14b90",cores=[2]}]}] 4. The *stopped notification will include a new field 'core', giving the core number on which the breakpoint is hit. This field will only be present if possible. --Boundary-00=_dfSALNN3Zr+oItm--