[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20200107091130.GB2185@nanopsycho>
Date: Tue, 7 Jan 2020 10:11:30 +0100
From: Jiri Pirko <jiri@...nulli.us>
To: David Ahern <dsahern@...il.com>
Cc: netdev@...r.kernel.org, davem@...emloft.net,
jakub.kicinski@...ronome.com, saeedm@...lanox.com, leon@...nel.org,
tariqt@...lanox.com, ayal@...lanox.com, vladbu@...lanox.com,
michaelgur@...lanox.com, moshe@...lanox.com, mlxsw@...lanox.com
Subject: Re: [patch net-next 0/4] net: allow per-net notifier to follow
netdev into namespace
Mon, Jan 06, 2020 at 05:37:21PM CET, dsahern@...il.com wrote:
>On 1/6/20 2:15 AM, Jiri Pirko wrote:
>>
>> I do not follow. This patchset assures that driver does not get
>> notification of namespace it does not care about. I'm not sure what do
>> you mean by "half of the problem".
>
>originally, notifiers were only global. drivers registered for them, got
>the replay of existing data, and notifications across namespaces.
Not sure what do you mean by "replay of existing data".
>
>You added code to allow drivers to register for events in a specific
>namespace.
For some drivers, like "mlxsw" this is just enough as it does not
support move of netdevices to different namespaces and the namespace of
all netdevices is taken according to namespace of parent devlink
instance.
>
>Now you are saying that is not enough as devices can be moved from one
>namespace to another and you want core code to automagically register a
>driver for events as its devices are moved.
>
>My point is if a driver is trying to be efficient and not handle events
>in namespaces it does not care about (the argument for per-namespace
>notifiers) then something needs to track that a driver no longer cares
>about events in a given namespace once all devices are moved out of Only
>the driver knows that and IMHO the driver should be the one managing
>what namespaces it wants events.
Definitelly. This would be the case for per-driver notifiers.
However, the ones in mlx5 I'm taking care of are per-netdevice
notifiers. Each netdev registers a separate notifier.
>
>Example:
>driver A has 2 devices eth0, eth1. It registers for events ONLY in
>init_net. eth0 is moved to ns0. eth1 is moved to ns1. On the move, core
>code registers driver A for events in ns0 and ns1.
>
>Driver A now no longer cares about events in init_net, yet it still
>receives them. If this is not a big concern for driver A, then why the
>namespace only registration? ie., just use the global and move on. If it
>is a concern (your point in this thread), you have not solved the
>unregister problem.
Wait, why do you think that there is a "unregister problem"?
move_netdevice_notifiers_dev_net() unregisters from the original netns.
>
>ie., I don't like the automagic registration in the new namespace.
>drivers should be explicit about what it wants.
>
>>
>>
>>> driver cares for granularity, it can deal with namespace changes on its
>>> own. If that's too much, use the global registration.
>
Powered by blists - more mailing lists