From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9247 invoked by alias); 24 Apr 2013 06:58:57 -0000 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 Received: (qmail 9206 invoked by uid 89); 24 Apr 2013 06:58:57 -0000 X-Spam-SWARE-Status: No, score=-2.8 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.1 Received: from ms9.webland.ch (HELO ms9smtp.webland.ch) (92.43.217.109) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Wed, 24 Apr 2013 06:58:56 +0000 Received: from ([84.74.172.50]) by ms9smtp.webland.ch (Webland Mail Server v. 10.4.1) with ASMTP id JKE32751; Wed, 24 Apr 2013 08:58:51 +0200 Received: from localhost (localhost [127.0.0.1]) by macserver.private (Postfix) with ESMTP id C13E017369FF; Wed, 24 Apr 2013 08:58:48 +0200 (CEST) Received: from macserver.private ([127.0.0.1]) by localhost (macserver.private [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vynn84f7g3TF; Wed, 24 Apr 2013 08:58:45 +0200 (CEST) Received: from [192.168.1.82] (unknown [192.168.1.82]) by macserver.private (Postfix) with ESMTP id 7B9A817369F3; Wed, 24 Apr 2013 08:58:45 +0200 (CEST) Message-ID: <517782A0.4060609@indel.ch> Date: Wed, 24 Apr 2013 06:58:00 -0000 From: Raphael Zulliger User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130329 Thunderbird/17.0.5 MIME-Version: 1.0 To: Tom Tromey CC: gdb@sourceware.org Subject: Re: Unneeded displaced single stepping causes issues: Performance drop and range stepping killer References: <517516D8.6010604@indel.ch> <87li88o7fd.fsf@fleche.redhat.com> In-Reply-To: <87li88o7fd.fsf@fleche.redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable X-SW-Source: 2013-04/txt/msg00073.txt.bz2 On 04/24/2013 06:53 AM, Tom Tromey wrote: >>>>>> "Raphael" =3D=3D Raphael Zulliger writes: > Raphael> versus: > > Raphael> (gdb) set displaced-stepping 1 > Raphael> (gdb) si > Raphael> Sending packet: $m1508,4#9b...Packet received: 3c000058 > Raphael> Sending packet: $m832d4,4#02...Packet received: 7c0802a6 > Raphael> Sending packet: $X1508,0:#bc...Packet received: > Raphael> binary downloading NOT supported by target > Raphael> Sending packet: $M1508,4:7c0802a6#b0...Packet received: = OK > Raphael> Sending packet: $g#67...Packet received: > [...] > > I guess this is copying the instruction and stepping it? Yes. > I wonder if we > could put more information about displaced stepping into the remote > protocol, to avoid the extra traffic. Good point! Something like: vCont;d:p1.dca118 Would perfectly work for our system. (For our system it'd be required=20 that GDB does the displaced step fixup, as we do not (yet) support this=20 on the target side - others systems may even avoid that step). Speaking in RSP, it could then look like this: (gdb) si Sending packet: $vCont;d:p1.dca118#83...Packet received: OK Notification received:=20 Stop:T05thread:p1.dca118;0:00049cd0;1:00dcde40;2:00dca118;3:00dcdea4;4:00dc= dea0;5:00000142;6:00dcde68;7:00000002;8:00000005;9:00dcdea4;a:00579e90;b:00= ed4b34;c:00000000;d:f7ffffff;e:00000357;f:f1010000;10:00000000;11:fff71658;= 12:0068e738;13:001dd964;14:00000000;15:00000000;16:0069c120;17:00000000;18:= 00000037;19:00000000;1a:00000032;1b:00e6b2c0;1c:00087e48;1d:00ed12a0;1e:00e= d1b68;1f:00dcde78;20:00000006347fd013;21:3ff199999999999a;22:3ff19999999999= 9a;23:0000000000000000;24:0000000000000000;25:0000000000000000;26:000000000= 0000000;27:0000000000000000;28:0000000000000000;29:0000000000000000;2a:0000= 000000000000;2b:0000000000000000;2c:401900a3d70a3d71;2d:3ff199999999999a;2e= :0000000000000000;2f:0000000000000000;30:0000000000000000;31:00000000000000= 00;32:0000000000000000;33:0000000000000000;34:0000000000000000;35:000000000= 0000000;36:0000000000000000;37:0000000000000000;38:0000000000000000;39:0000= 000000000000;3a:0000000000000000;3b:0000000000000000;3c:0000000000000000;3d= :0000000000000000;3e:0000000000000000;3f:0000000000000000;46:efbeadde;40:00= 00150c;41:0008a030;42:20000004;43:00049cd0;44:00000000;45:00000000; Sending packet: $vStopped#55...Packet received: OK Sending packet: $P40=3D000832d8#ba...Packet received: OK vs: (gdb) si Sending packet: $m1508,4#9b...Packet received: 3c000058 Sending packet: $m832d4,4#02...Packet received: 7c0802a6 Sending packet: $M1508,4:7c0802a6#b0...Packet received: OK Sending packet: $g#67...Packet received:=20 00dcdea000dcde4000dca11800dcdea400dcdea00000014200dcde68000000020000000500d= cdea400579e9000ed4b3400000000f7ffffff00000357f101000000000000fff716580068e7= 38001dd96400000000000000000069c1200000000000000037000000000000003200e6b2c00= 0087e4800ed12a000ed1b6800dcde7800000006347fd0133ff199999999999a3ff199999999= 999a00000000000000000000000000000000000000000000000000000000000000000000000= 000000000000000000000000000000000000000000000000000000000000000000000000040= 1900a3d70a3d713ff199999999999a000000000000000000000000000000000000000000000= 000000000000000000000000000000000000000000000000000000000000000000000000000= 000000000000000000000000000000000000000000000000000000000000000000000000000= 000000000000000000000000000000000000000000000000000000000000000000000000000= 000000000000000000000832d40008a0302000000400049cd00000000000000000efbeadde Sending packet: $P40=3D00001508#7f...Packet received: OK Sending packet: $vCont;s:p1.dca118#83...Packet received: OK Notification received:=20 Stop:T05thread:p1.dca118;0:00049cd0;1:00dcde40;2:00dca118;3:00dcdea4;4:00dc= dea0;5:00000142;6:00dcde68;7:00000002;8:00000005;9:00dcdea4;a:00579e90;b:00= ed4b34;c:00000000;d:f7ffffff;e:00000357;f:f1010000;10:00000000;11:fff71658;= 12:0068e738;13:001dd964;14:00000000;15:00000000;16:0069c120;17:00000000;18:= 00000037;19:00000000;1a:00000032;1b:00e6b2c0;1c:00087e48;1d:00ed12a0;1e:00e= d1b68;1f:00dcde78;20:00000006347fd013;21:3ff199999999999a;22:3ff19999999999= 9a;23:0000000000000000;24:0000000000000000;25:0000000000000000;26:000000000= 0000000;27:0000000000000000;28:0000000000000000;29:0000000000000000;2a:0000= 000000000000;2b:0000000000000000;2c:401900a3d70a3d71;2d:3ff199999999999a;2e= :0000000000000000;2f:0000000000000000;30:0000000000000000;31:00000000000000= 00;32:0000000000000000;33:0000000000000000;34:0000000000000000;35:000000000= 0000000;36:0000000000000000;37:0000000000000000;38:0000000000000000;39:0000= 000000000000;3a:0000000000000000;3b:0000000000000000;3c:0000000000000000;3d= :0000000000000000;3e:0000000000000000;3f:0000000000000000;46:efbeadde;40:00= 00150c;41:0008a030;42:20000004;43:00049cd0;44:00000000;45:00000000; Sending packet: $vStopped#55...Packet received: OK Sending packet: $M1508,4:3c000058#78...Packet received: OK Sending packet: $P40=3D000832d8#ba...Packet received: OK That would be quite an improvement! While we are at it... I've got another note related to single-stepping:=20 For our system, once a 'vCont;s:' returns with "OK", the single-step has=20 already been performed. Maybe this is also the case for the majority of=20 the systems out there? For systems like ours, we could get rid of the=20 stop notification, by returning the content of the stop reply (sig=20 number & registers) right in the vCont reply. (And, of course, the same=20 would be true for range stepping.) That would again reduce the=20 communication to something like: (gdb) si Sending packet: $vCont;d:p1.dca118#83...Packet received:=20 T05thread:p1.dca118;0:00049cd0;1:00dcde40;2:00dca118;3:00dcdea4;4:00dcdea0;= 5:00000142;6:00dcde68;7:00000002;8:00000005;9:00dcdea4;a:00579e90;b:00ed4b3= 4;c:00000000;d:f7ffffff;e:00000357;f:f1010000;10:00000000;11:fff71658;12:00= 68e738;13:001dd964;14:00000000;15:00000000;16:0069c120;17:00000000;18:00000= 037;19:00000000;1a:00000032;1b:00e6b2c0;1c:00087e48;1d:00ed12a0;1e:00ed1b68= ;1f:00dcde78;20:00000006347fd013;21:3ff199999999999a;22:3ff199999999999a;23= :0000000000000000;24:0000000000000000;25:0000000000000000;26:00000000000000= 00;27:0000000000000000;28:0000000000000000;29:0000000000000000;2a:000000000= 0000000;2b:0000000000000000;2c:401900a3d70a3d71;2d:3ff199999999999a;2e:0000= 000000000000;2f:0000000000000000;30:0000000000000000;31:0000000000000000;32= :0000000000000000;33:0000000000000000;34:0000000000000000;35:00000000000000= 00;36:0000000000000000;37:0000000000000000;38:0000000000000000;39:000000000= 0000000;3a:0000000000000000;3b:0000000000000000;3c:0000000000000000;3d:0000= 000000000000;3e:0000000000000000;3f:0000000000000000;46:efbeadde;40:0000150= c;41:0008a030;42:20000004;43:00049cd0;44:00000000;45:00000000; Sending packet: $P40=3D000832d8#ba...Packet received: OK > > Tom >