David S. Miller 0c88eda9f5 mlx5-updates-2021-03-16
mlx5 uplink representor netdev persistence.
 
 Before this patchset we used to have separate netdevs for Native NIC mode
 and Switchdev mode (uplink representor netdev), meaning that if user
 switches modes between Native to Switchdev and vice versa, the driver
 would cleanup the current netdev representor and create a new one for the
 new mode, such behavior created an administrative nightmare for users,
 where users need to be aware of such loss of both data path and control
 path configurations, e.g. netdev attributes and arp/route tables,
 where the later is more painful.
 
 A simple solution for this is not to replace the netdev in first place
 and use a single netdev to serve the uplink/physical port whether it is
 in switchdev mode or native mode.
 
 We already have different HW profiles for each netdev mode, in this series
 we just replace the HW profile on the fly and we keep the same netdev
 attached.
 
 Refactoring: Some refactoring has been made to overcome some technical
 difficulties
 1) The netdev is created with the maximum amount of tx/rx queues to serve
 the two profiles.
 
 2) Some ndos are not supported in some modes, so we added a mode check for
    such cases, e.g legacy sriov ndos must be blocked in switchdev mode.
 
 3) Some mlx5 netdev private attributes need to be moved out of profiles
    and kept in a persistent place, where the netdev is created
    e.g devlink port and other global HW resources
 
 4) The netdev devlink port is now always registered with the switch id
 
 Implementation: the last three patches implement the mechanism now as the
 netdev can be shared.
 
 5) Don't recreate the netdev on switchdev mode changes
 6) Prevent changing switchdev mode when some netdev operations
 are active, mostly when TC rules are being processed.
 This is required since the netdev is kept registered while switchdev mode
 can be changed.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCAAdFiEEGhZs6bAKwk/OTgTpSD+KveBX+j4FAmBRQ9sACgkQSD+KveBX
 +j7mLQf/SyOuP+Hu2TKss79JhQCJb0FJ3bmwaXqenSbgRGQYi6dZN70/ywlR2ajQ
 0gRococ+y4OUJQQi0cDwMZ7AWo6bYc8rMUKRgjxqIsfYhyG+FAX9BoLi0jApplKK
 MkdPbzotrsAiOomF2cQJjYFpMDU3NpTKIv/eUlMowLhLdx7oK4XGohUkh2eICUhG
 5PPuZstYR5OvgOaQLHpXtkDAw7I/IWPOp6Y2sqDqmgESkpS7jaKhqvmtIi8F5u+L
 0FyLsyHP2keudOtfG05rpDq0n+56Z/lRFbWpFNReF1oQOizCGXM11QdHtsl4EZtQ
 LqPinLYbeGOWhXo+8gRipG7eLSKkYg==
 =k64c
 -----END PGP SIGNATURE-----

Merge tag 'mlx5-updates-2021-03-16' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux

Saeed Mahameed says:

====================
mlx5-updates-2021-03-16

mlx5 uplink representor netdev persistence.

Before this patchset we used to have separate netdevs for Native NIC mode
and Switchdev mode (uplink representor netdev), meaning that if user
switches modes between Native to Switchdev and vice versa, the driver
would cleanup the current netdev representor and create a new one for the
new mode, such behavior created an administrative nightmare for users,
where users need to be aware of such loss of both data path and control
path configurations, e.g. netdev attributes and arp/route tables,
where the later is more painful.

A simple solution for this is not to replace the netdev in first place
and use a single netdev to serve the uplink/physical port whether it is
in switchdev mode or native mode.

We already have different HW profiles for each netdev mode, in this series
we just replace the HW profile on the fly and we keep the same netdev
attached.

Refactoring: Some refactoring has been made to overcome some technical
difficulties
1) The netdev is created with the maximum amount of tx/rx queues to serve
the two profiles.

2) Some ndos are not supported in some modes, so we added a mode check for
   such cases, e.g legacy sriov ndos must be blocked in switchdev mode.

3) Some mlx5 netdev private attributes need to be moved out of profiles
   and kept in a persistent place, where the netdev is created
   e.g devlink port and other global HW resources

4) The netdev devlink port is now always registered with the switch id

Implementation: the last three patches implement the mechanism now as the
netdev can be shared.

5) Don't recreate the netdev on switchdev mode changes
6) Prevent changing switchdev mode when some netdev operations
are active, mostly when TC rules are being processed.
This is required since the netdev is kept registered while switchdev mode
can be changed.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
2021-03-17 11:22:39 -07:00
2021-03-17 11:22:39 -07:00
2021-03-05 17:21:25 -08:00
2021-03-17 11:22:39 -07:00
2021-01-24 14:27:20 +01:00
2021-03-02 17:25:46 -07:00
2021-03-14 14:22:38 -07:00
2021-02-25 10:17:31 -08:00
2021-02-24 09:38:36 -08:00
2021-02-23 09:28:51 -08:00
2021-02-26 09:41:03 -08:00
2021-02-26 09:41:03 -08:00
2021-03-05 17:33:41 -08:00

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.
Description
No description provided
Readme 5.7 GiB
Languages
C 97.6%
Assembly 1%
Shell 0.5%
Python 0.3%
Makefile 0.3%