[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <48661b51-1cbb-e3e0-a909-6d0a1532733a@huawei.com>
Date: Thu, 27 Apr 2023 08:57:58 +0800
From: Yunsheng Lin <linyunsheng@...wei.com>
To: Jesper Dangaard Brouer <brouer@...hat.com>,
Ilias Apalodimas <ilias.apalodimas@...aro.org>,
<netdev@...r.kernel.org>, Eric Dumazet <eric.dumazet@...il.com>,
<linux-mm@...ck.org>, Mel Gorman <mgorman@...hsingularity.net>
CC: <lorenzo@...nel.org>,
Toke Høiland-Jørgensen <toke@...hat.com>,
<bpf@...r.kernel.org>, "David S. Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>,
Andrew Morton <akpm@...ux-foundation.org>,
<willy@...radead.org>
Subject: Re: [PATCH RFC net-next/mm V1 1/3] page_pool: Remove workqueue in new
shutdown scheme
On 2023/4/26 1:15, Jesper Dangaard Brouer wrote:
> @@ -609,6 +609,8 @@ void page_pool_put_defragged_page(struct page_pool *pool, struct page *page,
> recycle_stat_inc(pool, ring_full);
> page_pool_return_page(pool, page);
> }
> + if (pool->p.flags & PP_FLAG_SHUTDOWN)
> + page_pool_shutdown_attempt(pool);
It seems we have allowed page_pool_shutdown_attempt() to be called
concurrently here, isn't there a time window between atomic_inc_return_relaxed()
and page_pool_inflight() for pool->pages_state_release_cnt, which may cause
double calling of page_pool_free()?
Powered by blists - more mailing lists