Thread (8 messages) flat view 8 messages, 2 authors, 2018-10-24

Re: Kernel oops with mlx5 and dual XDP redirect programs

From: Saeed Mahameed <hidden>
Date: 2018-10-24 02:26:25

On Tue, 2018-10-23 at 12:10 +0200, Toke Høiland-Jørgensen wrote:
Saeed Mahameed [off-list ref] writes:
quoted
On Thu, 2018-10-18 at 23:53 +0200, Toke Høiland-Jørgensen wrote:
quoted
Saeed Mahameed [off-list ref] writes:
quoted
I think that the mlx5 driver doesn't know how to tell the other
device
to stop transmitting to it while it is resetting.. Maybe tariq
or
Jesper know more about this ?
I will look at this tomorrow after noon and will try to
repro...
Hi Saeed

Did you have a chance to poke at this? :)
HI Toke, yes i have been planing to respond but also i wanted to
dig
more,

so the root cause is very clear.

1. core 1 is doing tx_dev->ndo_xdp_xmit()
2. core 2 is doing tx_dev->xdp_set() //remove xdp program.
Right, it was also my guess that it was related to this interaction.
Thanks for looking into it!
quoted
and the problem is beyond mlx5, since we don't have a way to tell a
different core/different netdev to stop xmitting, or at least
synchronize with it.
Hmm, ideally there should be some way for the higher level XDP API to
notice this and abort the call before it even reaches the driver on
the
TX side, shouldn't there? At LPC, Jesper and I will be talking about
a
proposal for decoupling the ndo_xdp_xmit() resource allocation from
loading and unloading XDP programs, which I guess could be a way to
deal
with this as well.

In the meantime...
Yes totally agree, this is why my fix is temporary. 
Good Idea about LPC, let's discuss this there.
quoted
I will be waiting for your confirmation that the fix did work.
I tested your patch, and it does indeed fix the crash. However, it
also
seems to have the effect that the XDP redirect continues to function
even after removing the XDP program on the target device.

I.e., after the call to ./xdp_fwd -d $TX_IF, I still see packets
being
redirected out $TX_IF. Is this intentional?
Interesting, shouldn't happen, unless there is something weird going on
when running xpd_fwd -d together with xdp_redirect_map, i just checked
the code and if ndo_xdp_set was called with null program we will remove
xdp tx resources, nothing suspicious in the driver.

I will look at this later this week.
-Toke
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help