Thread (13 messages) 13 messages, 4 authors, 2016-09-02

Re: [PATCH] net/mlx4_en: protect ring->xdp_prog with rcu_read_lock

From: Tom Herbert <hidden>
Date: 2016-09-02 19:14:22

On Fri, Sep 2, 2016 at 11:13 AM, Brenden Blanco [off-list ref] wrote:
On Mon, Aug 29, 2016 at 10:46:38AM -0700, Tom Herbert wrote:
[...]
quoted
Brenden, tracking down how the structure is freed needed a few steps,
please make sure the RCU requirements are well documented. Also, I'm
Really? It's just bpf_prog_put->call_rcu(__bpf_prog_put_rcu). I suppose
what's missing is a general guideline for which functions new consumers
of bpf should use, but I wouldn't trust myself to write such holistic
documentation accurately (e.g. interacting with nmi probes and such).
quoted
still not a fan of using xchg to set the program, seems that a lock
could be used in that path.
Where would such a lock go? Everything in mlx4/en_netdev.c relies on
rtnl, which seems sufficient and obvious...adding some new field
specific lock would be distracting and unneeded.
Just use the same mutex_lock that is already being taken in case when
priv->xdp_ring_num != xdp_ring_num. Then use normal rcu functions to
dereference and assign pointers.

Tom
quoted
Thanks,
Tom
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help