lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Fri,  9 Sep 2016 17:35:16 +0300
From:   Saeed Mahameed <saeedm@...lanox.com>
To:     "David S. Miller" <davem@...emloft.net>
Cc:     netdev@...r.kernel.org, Tariq Toukan <tariqt@...lanox.com>,
        Moahamd Haj Yahia <mohamad@...lanox.com>,
        Or Gerlitz <ogerlitz@...lanox.com>,
        Saeed Mahameed <saeedm@...lanox.com>
Subject: [PATCH net-next 00/11] Mellanox 100G mlx5 seamless error recovery

Hi Dave,

This series from Mohamad improves the driver load/unload flows
to seamlessly handle pci errors and device internal errors recovery
reset flows.

Current pci and internal error handling is too heavy and is done
with a full restart of the driver by unregistering mlx5 interfaces
(mlx5e netedevs and mlx5_ib) which will cause losing all the current
interfaces and mlx5 core configurations.

To improve this, we add new callback functions of mlx5 interface 
object (attach/detach) to be called upon reset flows when errors are
detected rather than calling register and unregister interfaces.

On their side, interfaces such as (mlx5e and mlx5_ib) can choose to implement
those callback, if not, the old heavy reset will be called for that interface.

For non-interface mlx5 modules such as sriov and eswitch, we refactored 
and reorganized the code in a way that the software state objects are created 
only once on driver load.  Those software state objects are kept upon reset recovery
flows and only freed once on driver unload. On seamless soft reset flows, only
hardware resources are released on stop and re-allocated on start according to the 
current soft state.

In this series only mlx5e interface implements attach/detach callbacks
so that the netdevice will be kept alive on reset. On detach only hardware resources 
are released and the netdevice will be marked as detached to the stack. Once
attached again it will re-allocate the hardware resources according to the current
netdevice state, and all the configurations and the software state will be kept or restored
after recovery.

Note: I will be out of office all next week, in case of any updates
or V2 is required, Tariq will post the new series, I hope it is ok.

Thanks,
Saeed.

Mohamad Haj Yahia (11):
  net/mlx5: Skip waiting for vf pages in internal error
  net/mlx5: SRIOV core code refactoring
  net/mlx5: Introduce attach/detach to interface API
  net/mlx5: Split the load/unload flow into hardware and software flows
  net/mlx5: Implement SRIOV attach/detach flows
  net/mlx5: Implement eswitch attach/detach flows
  net/mlx5: Align sriov/eswitch modules with the new load/unload flow.
  net/mlx5: Implement vports admin state backup/restore
  net/mlx5e: Implement mlx5e interface attach/detach callbacks
  net/mlx5e: Restore vlan filter after seamless reset
  net/mlx5: Organize device list API in one place

 drivers/net/ethernet/mellanox/mlx5/core/Makefile   |   2 +-
 drivers/net/ethernet/mellanox/mlx5/core/dev.c      | 345 +++++++++++++++++
 drivers/net/ethernet/mellanox/mlx5/core/en.h       |   7 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_fs.c    |  38 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c  | 200 +++++++---
 drivers/net/ethernet/mellanox/mlx5/core/en_rep.c   |  39 +-
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.c  | 271 +++++++-------
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.h  |  18 +-
 drivers/net/ethernet/mellanox/mlx5/core/lag.c      |  24 +-
 drivers/net/ethernet/mellanox/mlx5/core/main.c     | 416 ++++++++-------------
 .../net/ethernet/mellanox/mlx5/core/mlx5_core.h    |  21 +-
 .../net/ethernet/mellanox/mlx5/core/pagealloc.c    |  13 +-
 drivers/net/ethernet/mellanox/mlx5/core/sriov.c    | 217 +++++------
 include/linux/mlx5/driver.h                        |   4 +-
 14 files changed, 1000 insertions(+), 615 deletions(-)
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/dev.c

-- 
2.7.4

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ