From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14981 invoked by alias); 22 Mar 2004 21:45:07 -0000 Mailing-List: contact sid-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: sid-owner@sources.redhat.com Received: (qmail 14972 invoked from network); 22 Mar 2004 21:45:07 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sources.redhat.com with SMTP; 22 Mar 2004 21:45:07 -0000 Received: from int-mx2.corp.redhat.com (nat-pool-rdu-dmz.redhat.com [172.16.52.200] (may be forged)) by mx1.redhat.com (8.12.10/8.12.10) with ESMTP id i2MLj4WA021067 for ; Mon, 22 Mar 2004 16:45:05 -0500 Received: from potter.sfbay.redhat.com (potter.sfbay.redhat.com [172.16.27.15]) by int-mx2.corp.redhat.com (8.11.6/8.11.6) with ESMTP id i2MLj0M01830 for ; Mon, 22 Mar 2004 16:45:00 -0500 Received: from redhat.com (IDENT:v15iTmDqnTQgNXf+l5MgINB3+p1klRRi@vpn50-12.rdu.redhat.com [172.16.50.12]) by potter.sfbay.redhat.com (8.11.6/8.11.6) with ESMTP id i2MLivR10802; Mon, 22 Mar 2004 13:44:57 -0800 Message-ID: <405F5E40.2040600@redhat.com> Date: Mon, 22 Mar 2004 21:45:00 -0000 From: Dave Brolley User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.2) Gecko/20021216 MIME-Version: 1.0 To: Dave Brolley CC: sid@sources.redhat.com Subject: Re: [patch][rfa] Multi core debugging with GDB References: <405F4067.5020302@redhat.com> <405F5E0A.4000502@redhat.com> Content-Type: multipart/mixed; boundary="------------090700010606060900080700" X-RedHat-Spam-Score: -4.9 X-SW-Source: 2004-q1/txt/msg00049.txt.bz2 This is a multi-part message in MIME format. --------------090700010606060900080700 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-length: 1585 And here's the modified patch for socketio.cxx Dave Brolley wrote: > Approved by fche and committed with the attached modification to > ensure that all data gets flushed. > > Dave Brolley wrote: > >> Hi, >> >> Debugging multiple cores with multiple instances of GDB within a >> simulation is currently possible by specifying a separate --gdb >> option after each --board and specifying a different port for each >> GDB instance. The simulation ends (as it does without GDB) when the >> first core exits. However, the other GDB instances all report >> "Watchdog expired. Target disconnected". This was because of three >> problems: >> >> 1) The "enabled?", "enable-threshold", "yield-host-time?" and >> "yield-host-time-threshold" of the host scheduler were not being set. >> This caused the host scheduler to yield host time after the first GDB >> stub exited. >> >> 2) The other GDB stubs were not properly notifying their GDB clients >> that they were exiting >> >> 3) Even after proper notfication and yielding were implemented, the >> packets never reached their GDB clients because their socket >> components were never polled again which was because the host >> scheduler was never advanced again which was because the whole shut >> down process was initiated when the first GDB stub drove main's >> "stop!" pin. This problem is corrected by having the sockets do one >> final transmit when their "fini" pins are driven by shutdown-sequence. >> >> The result is an orderly shutdown of the GDB stubs and their clients. >> >> OK to commit? >> >> Dave > > > > --------------090700010606060900080700 Content-Type: text/plain; name="socket-flush.patch.txt" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="socket-flush.patch.txt" Content-length: 1244 Index: sid/component/consoles/socketio.cxx =================================================================== RCS file: /cvs/src/src/sid/component/consoles/socketio.cxx,v retrieving revision 1.5 retrieving revision 1.6 diff -c -p -r1.5 -r1.6 *** sid/component/consoles/socketio.cxx 4 Mar 2002 20:38:56 -0000 1.5 --- sid/component/consoles/socketio.cxx 22 Mar 2004 21:26:44 -0000 1.6 *************** *** 1,7 **** // socketio.cxx - A console that uses a socket to do its I/O. // -*- C++ -*- ! // Copyright (C) 1999, 2000, 2002 Red Hat. // This file is part of SID and is licensed under the GPL. // See the file COPYING.SID for conditions for redistribution. --- 1,7 ---- // socketio.cxx - A console that uses a socket to do its I/O. // -*- C++ -*- ! // Copyright (C) 1999-2002, 2004 Red Hat. // This file is part of SID and is licensed under the GPL. // See the file COPYING.SID for conditions for redistribution. *************** void *** 297,302 **** --- 297,306 ---- socketio::fini_handler (host_int_4) { this->poll_control.cancel (); + + // Flush out any remaining data + while (this->connected_p && this->out_buffer.length() != 0) + this->poll_transmit (); if (this->connected_p) { --------------090700010606060900080700--