[CRIU] [PATCH CRIU 08/14] restore/net/ipv6: net device and def/all configuration

Pavel Emelyanov xemul at virtuozzo.com
Mon Apr 4 08:51:55 PDT 2016


On 04/04/2016 06:38 PM, Pavel Tikhomirov wrote:
> On 04/04/2016 06:29 PM, Pavel Tikhomirov wrote:
>>
>>
>> On 04/04/2016 06:03 PM, Pavel Emelyanov wrote:
>>> On 04/04/2016 05:46 PM, Pavel Tikhomirov wrote:
>>>>
>>>>
>>>> On 04/04/2016 05:40 PM, Pavel Emelyanov wrote:
>>>>> On 04/04/2016 04:58 PM, Pavel Tikhomirov wrote:
>>>>>>
>>>>>>
>>>>>> On 04/04/2016 04:38 PM, Pavel Emelyanov wrote:
>>>>>>> On 04/04/2016 01:30 PM, Pavel Tikhomirov wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>> On 04/04/2016 01:16 PM, Pavel Emelyanov wrote:
>>>>>>>>>
>>>>>>>>>> @@ -163,9 +163,11 @@ static int net_conf_op(char *tgt, int
>>>>>>>>>> *conf, int n, int op, char *proto,
>>>>>>>>>>                  continue;
>>>>>>>>>>              }
>>>>>>>>>>              /*
>>>>>>>>>> -         * If dev conf value is the same as default skip
>>>>>>>>>> restoring it
>>>>>>>>>> +         * If dev conf value is the same as default skip
>>>>>>>>>> restoring it,
>>>>>>>>>> +         * mtu may be changed by disable_ipv6 so we can not skip
>>>>>>>>>> +         * it's restore
>>>>>>>>>>               */
>>>>>>>>>
>>>>>>>>> No, this means that we should restore mtu after disable_ipv6.
>>>>>>>>> And we still can check
>>>>>>>>> for it to match default value.
>>>>>>>>
>>>>>>>> Imagine situation:
>>>>>>>> 1)restore disable_ipv6 for default
>>>>>>>> 2)restore mtu for default
>>>>>>>> 3)create eth0
>>>>>>>> 4)restore disable_ipv6 for eth0
>>>>>>>> 5)restore mtu for eth0
>>>>>>>>
>>>>>>>> After step 3 both default and eth0 mtu are set to default value. But
>>>>>>>> after step 4 eth0's one can possibly change. So do you mean we
>>>>>>>> need to
>>>>>>>> first restore both default/disable_ipv6 and eth0/disable_ipv6 and
>>>>>>>> only
>>>>>>>> after that restore default/mtu ?
>>>>>>>
>>>>>>> No. By step 5 will eth0's mtu match the default mtu?
>>>>>>
>>>>>> By step 5 we will have eth0/mtu(in image) equal to default/mtu(in
>>>>>> image)
>>>>>> equal to default/mtu(sysctl) but not equal to eth0/mtu(sysctl).
>>>>>
>>>>> How can this happen? Anything in the image should match the same in
>>>>> sysctl-s
>>>>> on the dump side, so if eth0.mtu == default.mtu in image, then the
>>>>> same is
>>>>> true for sysctls on dump side. Why should it differ on restore?
>>>>
>>>>   From comment to 06/14 patch:
>>>>
>>>>   >In
>>>> addrconf_sysctl_disable->addrconf_disable_ipv6->dev_disable_change:
>>>>   >On addrconf_notify + NETDEV_UP if idev->cnf.mtu6 differs from
>>>> dev->mtu,
>>>>   >sysctl mtu6 is overwritten.
>>>>   >
>>>>   >So changing disable_ipv6 sysctl for some device may change mtu sysctl
>>>>   >for it...
>>>>
>>>> eth0.mtu sysctl changed on step 4.
>>>
>>> Argh... Let's come with examples. Would you show the combination of
>>> eth0/default
>>> mtu/disable_ipv6 -s _in_ _images_ that would be restored wrongly if we
>>> don't
>>> make the check you suggest?
>>
> 
> In images:
> 
> eth0.mtu = 1500
> 
> def_conf6.mtu=1280 def_conf.disable_ipv6=1
> eth0.conf6.mtu=1280 eth0.conf6.disable_ipv6=0

OK. So you mean that when we create eth0, it will inherit mtu from default
and will have it be 1280, but when we'll set eth0.disable_ipv6 to 0 the
eth0.mtu will change to 1500. Right?

-- Pavel



More information about the CRIU mailing list