[RFC] Change socket checkpoint to retain DGRAM source addresses

Dan Smith danms at us.ibm.com
Mon Aug 24 10:11:55 PDT 2009


This is a proposed change to the way sockets are checkpointed.
It makes the socket itself a proper objhash object, which can be
checkpointed or restored as part of reading the stream (like many
of the other first-class objects).  Thus, we worry about
checkpointing and restoring the socket-typed file, and read the
related socket object(s) as a matter of course.

By doing this, we are able to checkpoint sockets we find that
aren't attached to descriptors.  This is used in the final patch
to make sure that a socket buffer's owner socket has been
checkpointed, allowing us to use that socket to re-send the
buffer on restore (thus retaining the source address).

I've got a unit test for this that sets up three sockets, and
loads some in-flight buffers before checkpoint, verifying that
after checkpoint, recvfrom() sees them from the appropriate
source socket.

Does this approach seem reasonable?  



More information about the Containers mailing list