Messages in this thread | | | Date | Fri, 21 Jul 2023 17:37:57 +0200 | Subject | Re: [PATCH RFC net-next v2 7/7] net: skbuff: always try to recycle PP pages directly when in softirq | From | Alexander Lobakin <> |
| |
From: Yunsheng Lin <linyunsheng@huawei.com> Date: Fri, 21 Jul 2023 19:53:33 +0800
> On 2023/7/21 3:46, Jakub Kicinski wrote: >> On Thu, 20 Jul 2023 21:33:40 +0200 Alexander Lobakin wrote: >>>> We can as well check >>>> (in_softirq() && !irqs_disabled() && !in_hardirq()) >>>> ? >>> >>> Yes, something like that. Messy, but I see no other options... >>> >>> So, I guess you want to add an assertion to make sure that we're *not* >>> in this: >>> >>> in_hardirq() || irqs_disabled() >>> >>> Does this mean that after it's added, my patch is sane? :p >> >> Well... it's acceptable. Make sure you add a good, informative >> but concise comment :) >> > > Does it mean ptr_ring_produce_any() is needed in > page_pool_recycle_in_ring() too? > > As it is assumed that page pool API can be called in the context with > irqs_disabled() || in_hardirq(), and force recylcling happens in the > prt_ring. > > Isn't it conflit with the below patch? as the below patch assume page > pool API can not be called in the context with irqs_disabled() || in_hardirq(): > [PATCH net-next] page_pool: add a lockdep check for recycling in hardirq > > Or am I missing something obvious here?
No, Page Pool is *not* intended to be called when IRQs are disabled, hence the fix Jakub's posted in the separate thread.
Thanks, Olek
| |