This is the mail archive of the ecos-devel@sources.redhat.com mailing list for the eCos 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]

redboot net_io stalls


Hello

I found a problem in redboot's net_io and have a workaround for it but a
proper fix would be better.
When redboot is sent a lot of TCP data its 4 pktbufs can get filled very
shortly: telnet to it and paste a big text to the prompt to see it hang.

The problem is that from time to time net_io calls net_io_flush which waits
until all queued outgoing data is sent.If flush happens when the 4 bufs are
occupied then communication will stall since redboot won't get the host's ACK
(the ACK packets are dropped not having a free pktbuf to stay in). And getc()
is not called to consume the pktbufs until the flush returns.

As a workaround I call __tcp_write instead of __tcp_write_block from flush
so it does not get stuck in __tcp_drain. But this means flush is not a real
flush...

This might be related to the HACK comment in tcp.c which says that sometimes
ACK's were lost.


Jani


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