This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [remote protocol] support for disabling packet acknowledgement


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]