[remote protocol] support for disabling packet acknowledgement

Sandra Loosemore sandra@codesourcery.com
Thu Jul 10 18:59:00 GMT 2008

Paul Koning wrote:

> I'm not sure this is a good idea.
> For one thing, if you want to work on performance, there are much more
> dramatic changes to the protocol that could be done that would help
> much more.  I can't believe that the cost of acks is significant
> compared to all the other bottlenecks.

You'll note the documentation says turning off acks may be desirable to reduce 
communication overhead *or* "for other reasons".  In fact, it is the "other 
reasons" that motivated this patch.  We are working on designing the extensions 
to the remote protocol to support nonstop mode, and we realized that we simply 
cannot do it in combination with using +/- acks on the asynchronous responses. 
If we need a reliable transport layer to support nonstop mode, we might as well 
turn the acks off completely instead of dealing with the extra complexity of 
trying to design the nonstop protocol around them.

> Also, TCP is reliable delivery at the transport layer.  It doesn't do
> reliable delivery at the application layer -- that's what the gdb
> remote protocol ACKs do.  The fact that TCP delivered a packet to the
> stub doesn't mean the stub acted on it.

The +/- acks don't mean the stub acted on a packet, either; only that the stub 
received it and that its checksum passed.  The packet responses are what tell 
GDB that the stub has acted (or refused to act, as the case may be).


More information about the Gdb mailing list