mainlining shenanigans
Go to file
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
arch Merge git://git.kernel.org:/pub/scm/linux/kernel/git/netdev/net 2021-03-09 17:15:56 -08:00
block block/bfq: update comments and default value in docs for fifo_expire 2021-03-02 11:25:38 -07:00
certs certs: Replace K{U,G}IDT_INIT() with GLOBAL_ROOT_{U,G}ID 2021-01-21 16:16:10 +00:00
crypto crypto: mips/poly1305 - enable for all MIPS processors 2021-03-08 11:52:17 +01:00
Documentation Documentation: networking: switchdev: fix command for static FDB entries 2021-03-16 15:13:45 -07:00
drivers mlx5-updates-2021-03-16 2021-03-17 11:22:39 -07:00
fs pstore fixes for v5.12-rc2 2021-03-05 17:21:25 -08:00
include mlx5-updates-2021-03-16 2021-03-17 11:22:39 -07:00
init Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2021-03-09 18:07:05 -08:00
ipc fs: make helpers idmap mount aware 2021-01-24 14:27:20 +01:00
kernel Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2021-03-09 18:07:05 -08:00
lib Merge git://git.kernel.org:/pub/scm/linux/kernel/git/davem/sparc 2021-03-08 22:01:58 -08:00
LICENSES LICENSES: Add the CC-BY-4.0 license 2020-12-08 10:33:27 -07:00
mm swap: fix swapfile read/write offset 2021-03-02 17:25:46 -07:00
net openvswitch: Warn over-mtu packets only if iface is UP. 2021-03-16 16:28:30 -07:00
samples samples: pktgen: new append mode 2021-03-14 14:22:38 -07:00
scripts Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2021-03-09 18:07:05 -08:00
security nexthop: Add netlink defines and enumerators for resilient NH groups 2021-03-11 16:12:59 -08:00
sound ALSA: hda/realtek: Apply dual codec quirks for MSI Godlike X570 board 2021-03-03 15:25:03 +01:00
tools selftests: mlxsw: Test egress sampling limitation on Spectrum-1 only 2021-03-16 15:32:23 -07:00
usr Kbuild updates for v5.12 2021-02-25 10:17:31 -08:00
virt KVM: x86/mmu: Consider the hva in mmu_notifier retry 2021-02-22 13:16:53 -05:00
.clang-format cxl for 5.12 2021-02-24 09:38:36 -08:00
.cocciconfig
.get_maintainer.ignore Opt out of scripts/get_maintainer.pl 2019-05-16 10:53:40 -07:00
.gitattributes .gitattributes: use 'dts' diff driver for dts files 2019-12-04 19:44:11 -08:00
.gitignore clang-lto series for v5.12-rc1 2021-02-23 09:28:51 -08:00
.mailmap treewide: Miguel has moved 2021-02-26 09:41:03 -08:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS treewide: Miguel has moved 2021-02-26 09:41:03 -08:00
Kbuild kbuild: rename hostprogs-y/always to hostprogs/always-y 2020-02-04 01:53:07 +09:00
Kconfig kbuild: ensure full rebuild when the compiler is updated 2020-05-12 13:28:33 +09:00
MAINTAINERS staging: dpaa2-switch: move the driver out of staging 2021-03-10 13:30:36 -08:00
Makefile Linux 5.12-rc2 2021-03-05 17:33:41 -08:00
README Drop all 00-INDEX files from Documentation/ 2018-09-09 15:08:58 -06: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.