> -----Original Message----- > From: Jakub Kicinski <kuba@xxxxxxxxxx> > Sent: 2023年7月20日 23:25 > To: Wei Fang <wei.fang@xxxxxxx> > Cc: davem@xxxxxxxxxxxxx; edumazet@xxxxxxxxxx; pabeni@xxxxxxxxxx; > ast@xxxxxxxxxx; daniel@xxxxxxxxxxxxx; hawk@xxxxxxxxxx; > john.fastabend@xxxxxxxxx; Clark Wang <xiaoning.wang@xxxxxxx>; Shenwei > Wang <shenwei.wang@xxxxxxx>; netdev@xxxxxxxxxxxxxxx; dl-linux-imx > <linux-imx@xxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx; bpf@xxxxxxxxxxxxxxx > Subject: Re: [PATCH net-next] net: fec: add XDP_TX feature support > > On Thu, 20 Jul 2023 07:06:05 +0000 Wei Fang wrote: > > > Are you taking budget into account? When NAPI is called with budget > > > of 0 we are *not* in napi / softirq context. You can't be processing > > > any XDP tx under such conditions (it may be a netpoll call from IRQ > context). > > > > Actually, the fec driver never takes the budget into account for > > cleaning up tx BD ring. The budget is only valid for rx. > > I know, that's what I'm complaining about. XDP can only run in normal NAPI > context, i.e. when NAPI is called with budget != 0. That works out without any > changes on Rx, if budget is zero drivers already don't process Rx. But similar > change must be done on Tx when adding XDP support. You can still process all > normal skb packets on Tx when budget is 0 (in fact you should), but you > _can't_ process any XDP Tx frame. Sorry, I did not realize that we can not process any tx XDP packet if the "budget" is 0. I noticed your latest clarification [1] in napi.rst, I believe it will help many people avoid this problem like me. Thank you very much. [1]: https://lore.kernel.org/netdev/20230720161323.2025379-1-kuba@xxxxxxxxxx/T/