[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).
-Sandra
More information about the Gdb
mailing list