From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 89435 invoked by alias); 6 Nov 2019 08:04:54 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 89424 invoked by uid 89); 6 Nov 2019 08:04:54 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-5.8 required=5.0 tests=AWL,BAYES_00,SPF_PASS autolearn=ham version=3.3.1 spammy=thousand, collected, communication, HContent-Transfer-Encoding:8bit X-HELO: mx1.suse.de Received: from mx2.suse.de (HELO mx1.suse.de) (195.135.220.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 06 Nov 2019 08:04:53 +0000 Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id CADECAECB; Wed, 6 Nov 2019 08:04:50 +0000 (UTC) Subject: Re: GCC's instrumentation and the target environment To: David.Taylor@dell.com, gcc@gcc.gnu.org References: <25767.1572632020@usendtaylorx2l> <194f90a5-6a02-b8ee-d454-fe1338a2f542@suse.cz> <4005ef638f4a46ce9a99e5eee3531c3a@x13pwdurdag1005.AMER.DELL.COM> From: =?UTF-8?Q?Martin_Li=c5=a1ka?= Message-ID: Date: Wed, 06 Nov 2019 08:04:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.0 MIME-Version: 1.0 In-Reply-To: <4005ef638f4a46ce9a99e5eee3531c3a@x13pwdurdag1005.AMER.DELL.COM> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-IsSubscribed: yes X-SW-Source: 2019-11/txt/msg00054.txt.bz2 On 11/4/19 2:06 PM, David.Taylor@dell.com wrote: >> From: Martin Liška >> Sent: Monday, November 4, 2019 4:20 AM >> To: taylor, david; gcc@gcc.gnu.org >> Subject: Re: GCC's instrumentation and the target environment > >> On 11/1/19 7:13 PM, David Taylor wrote: > >> Hello. > > Hello. > >>> What I'd like is a stable API between the routines that 'collect' the >>> data and the routines that do the i/o. With the i/o routines being >>> non-static and in a separate file from the others that is not >>> #include'd. >>> >>> I want them to be replaceable by the application. Depending upon >>> circumstances I can imagine the routines doing network i/o, disk i/o, >>> or using a serial port. >> >> What's difference in between i/o and disk i/o? What about using a NFS file >> system into which you can save the data (via -fprofile-dir=/mnt/mynfs/...)? > > I/O encompasses more than just reading and writing a file in a file system. > Depending on the embedded target you might not have the ability to NFS mount. > You might not even have a file system accessible to instrumentation. > > By network I/O I'm thinking sockets. There's some code possibly run at 'boot' time or possibly run during the first __gcov_open that establishes a network connection with > a process running on another system. There's some protocol, agreed to by the > application and remote process, for communicating the data collected and which > file it belongs to. > > By serial I/O, I'm thinking of a serial port. Hello. I see your needs. I would recommend to come up with patches that will enable such a communication channel. I can review the patches or help you with obstacles. Martin > > Hopefully that is clearer. > >> I can imagine dump into stderr for example. That can be quite easily doable. > > I don't think that the current implementation would make that easy. For us there > are potentially over a thousand files being instrumented. You need to communicate > which file the data belongs to. Whether it is via stderr, a serial port, or a network > connection, the file name needs to be in the stream and there needs to be a way > of determining when one file ends and the next one begins. > > For us, stderr and stdout, when defined, are used for communicating > status and extraordinary events. And not well suited for transferring instrumentation > data. > >> Martin > > David >