|Subject:||[lwip-users] Race condition with lwIP-1.3.2 in PXELINUX-4.10-pre16+ on VMware/KVM platforms|
|Date:||Wed, 12 Oct 2011 23:51:04 -0400|
For the past several months, Syslinux has been trying to integrate lwIP into PXELINUX. At the moment, there appears to be a bug of some sort when using VMware platforms or some KVM platforms. Over the last few weeks, I've been working with hpa and trying to add additional debug checks to trace the program flow. I've noticed that it is able to send a TCP segment but then switches to receive the incoming segment before being added to unacked by the output thread. RTT from SYN to SYN/ACK is 0.023 ms per Wireshark on the host. The output thread does eventually return but doesn't do so in time before the socket is reset.
Examining top-of-git, I don't see anything that would change this behavior and I have attempted to integrate this version in my copy for now to hopefully make it easier to work with lwIP. I see at least three possible solutions:
1) Don't allow the interface driver to switch threads.
2) tcp_process() should handle the condition of the packet being in unsent.
3) Allow the output thread to wrap up a packet, queuing it into unacked, before tcp_process() searches unacked.
ps. I am subscibed to this list.
|[Prev in Thread]||Current Thread||[Next in Thread]|