[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20191217162023.16011-1-maximmi@mellanox.com>
Date: Tue, 17 Dec 2019 16:20:41 +0000
From: Maxim Mikityanskiy <maximmi@...lanox.com>
To: Björn Töpel <bjorn.topel@...el.com>,
Magnus Karlsson <magnus.karlsson@...el.com>,
Jeff Kirsher <jeffrey.t.kirsher@...el.com>
CC: "bpf@...r.kernel.org" <bpf@...r.kernel.org>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"intel-wired-lan@...ts.osuosl.org" <intel-wired-lan@...ts.osuosl.org>,
"David S. Miller" <davem@...emloft.net>,
Saeed Mahameed <saeedm@...lanox.com>,
Alexei Starovoitov <ast@...nel.org>,
Daniel Borkmann <daniel@...earbox.net>,
Jakub Kicinski <jakub.kicinski@...ronome.com>,
Jesper Dangaard Brouer <hawk@...nel.org>,
John Fastabend <john.fastabend@...il.com>,
Jonathan Lemon <jonathan.lemon@...il.com>,
Maxim Mikityanskiy <maximmi@...lanox.com>
Subject: [PATCH bpf v2 0/4] Fix concurrency issues between XSK wakeup and
control path using RCU
This series addresses the issue described in the commit message of the
first patch: lack of synchronization between XSK wakeup and destroying
the resources used by XSK wakeup. The idea is similar to
napi_synchronize. The series contains fixes for the drivers that
implement XSK. I haven't tested the changes to Intel's drivers, so,
Intel guys, please review them.
v2 changes:
Incorporated changes suggested by Björn:
1. Call synchronize_rcu in Intel drivers only if the XDP program is
being unloaded.
2. Don't forget rcu_read_lock when wakeup is called from xsk_poll.
3. Use xs->zc as the condition to call ndo_xsk_wakeup.
Maxim Mikityanskiy (4):
xsk: Add rcu_read_lock around the XSK wakeup
net/mlx5e: Fix concurrency issues between config flow and XSK
net/i40e: Fix concurrency issues between config flow and XSK
net/ixgbe: Fix concurrency issues between config flow and XSK
drivers/net/ethernet/intel/i40e/i40e.h | 2 +-
drivers/net/ethernet/intel/i40e/i40e_main.c | 10 ++++++---
drivers/net/ethernet/intel/i40e/i40e_xsk.c | 4 ++++
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 7 +++++-
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c | 8 +++++--
drivers/net/ethernet/mellanox/mlx5/core/en.h | 2 +-
.../net/ethernet/mellanox/mlx5/core/en/xdp.h | 22 ++++++++-----------
.../mellanox/mlx5/core/en/xsk/setup.c | 1 +
.../ethernet/mellanox/mlx5/core/en/xsk/tx.c | 2 +-
.../net/ethernet/mellanox/mlx5/core/en_main.c | 19 +---------------
net/xdp/xsk.c | 22 ++++++++++++-------
11 files changed, 51 insertions(+), 48 deletions(-)
--
2.20.1
Powered by blists - more mailing lists