On Tue, Apr 25, 2017 at 8:43 PM, Ben Pfaff <[email protected]> wrote:
> On Tue, Apr 25, 2017 at 05:02:14PM -0700, Andy Zhou wrote:
>> vswitchd can gracefully shutdown after receiving the 'appctl exit'
>> command.  But the datapath resources vswitchd created can
>> linger on. This is not a problem, and in fact desireable when the
>> shutdown is transient in nature. Since restarted vswitchd usually
>> sees a similar configuration. By keeping the datapath resources
>> minimize the perturbation to the running data traffic.
>>
>> However, when vswitchd shutdown is permanent, there should be a
>> way to release the all datapath resources, so that they won't
>> be linger on forever.  Add 'appctl quit' command for such purpose.
>>
>> Signed-off-by: Andy Zhou <[email protected]>
>
> Thanks for working on this.
>
> I have two categories of comments here.  The first category is a general
> kind of unease over what problems this solves.  I think it's better if
> we don't have to make the distinction between two ways to exit, and so
> I'd like to hear more specifically about the problems that this solves.

The specific use case that triggered this patch was a user wanted to
shut down OVS in the
root name space, then restart OVS in a specific name space with the
same or very similar configuration.
They found that having the same bridge and ports existing in both the
root name space
and another name space to be confusing. They are also concerned about potential
kernel resource leak in the root name space.

They could have solved this by explicitly remove all bridges before
stopping OVS services, but they chose not to rely on this approach (I don't know
the details). They are mostly interested in having a whole sale way
of releasing all kernel resources. Ideally, they'd like this to be provided via
the the distribution scripts.

They worked around this issue by issuing the 'ovs-dpctl del-dp
ovs-system' command
after stopping OVS services. It solves their problem at hand.

While 'ovs-dpctl del-dp ovs-system' will remove all resources known to
OVS kernel module,
OVS userspace may create additional kernel resources outside the OVS
kernel module
down the road, For example:

- light weight tunnel devices created by rtnetlink messages.
- (future) reatlimiter created by NFT netlink messages.
- CT/NAT states
- TC Queues.

Given that, It seems a better model would be for vswitchd to manage DP
resource deletion,
although this patch does not address most, if at all, of the issues
listed above, this
command can be expanded down the road.

What do you think? I am definitely certainly open any comments and suggestions.

>
> The second category is just about naming.  The two names "quit" and
> "exit" don't suggest different operations and so I think that they are
> likely to lead to confusion.  I know that I, personally, will never
> remember which is which.  I'd suggest, instead, making the existing
> "exit" take an option to explain what kind of shutdown is desired.
>

That's a fair point. May be we can add an option to exit, e.g. 'appctl
exit  clean-dp'?
> Thanks,
>
> Ben.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to