Messages in this thread | | | Subject | Re: [PATCH net-next] net: wwan: t7xx: fix GFP_KERNEL usage in spin_lock context | From | "Ziyang Xuan (William)" <> | Date | Tue, 17 May 2022 11:12:14 +0800 |
| |
> > On 5/16/2022 1:36 PM, Sergey Ryazanov wrote: >> Hello Ziyang, >> >> On Sat, May 14, 2022 at 11:57 AM Ziyang Xuan >> <william.xuanziyang@huawei.com> wrote: >>> t7xx_cldma_clear_rxq() call t7xx_cldma_alloc_and_map_skb() in spin_lock >>> context, But __dev_alloc_skb() in t7xx_cldma_alloc_and_map_skb() uses >>> GFP_KERNEL, that will introduce scheduling factor in spin_lock context. >>> >>> Replace GFP_KERNEL with GFP_ATOMIC to fix it. >> Would not it will be more reliable to just rework >> t7xx_cldma_clear_rxq() to avoid calling t7xx_cldma_alloc_and_map_skb() >> under the spin lock instead of doing each allocation with GFP_ATOMIC? >> E.g. t7xx_cldma_gpd_rx_from_q() calls t7xx_cldma_alloc_and_map_skb() >> avoiding any lock holding. > > t7xx_cldma_clear_rxq() is a helper for t7xx_cldma_clear_all_qs() which is only called by t7xx_cldma_exception() after stopping CLDMA, so it should be OK to remove the spin lock from t7xx_cldma_clear_rxq(). >
OK, I see. Thus we can remove spink_lock and annotate it.
> > .
| |