[CRIU] [PATCH] page-server: Fine grained corking control

Pavel Emelyanov xemul at parallels.com
Mon Nov 9 08:27:09 PST 2015


On 11/09/2015 04:07 PM, Andrew Vagin wrote:
> On Mon, Nov 09, 2015 at 02:24:01PM +0300, Pavel Emelyanov wrote:
>> When live migrating a container with large amount of processes
>> inside the time to do page-server-ed dump may be up to 10 times
>> slower than for the local dump.
>>
>> The delay is always introduced in the open_page_server_xfer()
>> when criu negotiates the has_parent bit on the 2nd task. This
>> likely happens because of the Nagel algo taking place -- after
>> the write() of the OPEN2 command happened kernel delays this
>> command sending waiting for more data.
>>
>> Fix this by turning NODELAY option on memory transfer sockets
>> on both sides, but CORK the socket before (and unCORK one after)
>> the actual memory transfer to let kernel merge pagemaps with
>> pages when possible.
> 
> Acked-by: Andrew Vagin <avagin at odin.com>
> 
> I think we need to handle errors of setsockopt()

I thought the same, but there are only 'API misuse' reasons for
failing on those two...

-- Pavel


More information about the CRIU mailing list