Re: [net-next PATCH 1/3] net: frag, avoid several CPUs grabbing same frag queue during LRU evictor loop
From: Eric Dumazet <hidden>
Date: 2013-03-27 16:14:07
From: Eric Dumazet <hidden>
Date: 2013-03-27 16:14:07
On Wed, 2013-03-27 at 16:55 +0100, Jesper Dangaard Brouer wrote:
The LRU list is protected by its own lock, since commit 3ef0eb0db4 (net: frag, move LRU list maintenance outside of rwlock), and no-longer by a read_lock. This makes it possible, to remove the inet_frag_queue, which is about to be "evicted", from the LRU list head. This avoids the problem, of several CPUs grabbing the same frag queue. Note, cannot remove the inet_frag_lru_del() call in fq_unlink() called by inet_frag_kill(), because inet_frag_kill() is also used in other situations. Thus, we use list_del_init() to allow this double list_del to work. Signed-off-by: Jesper Dangaard Brouer <redacted> --- net/ipv4/inet_fragment.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)
Acked-by: Eric Dumazet <edumazet@google.com>