On Tue, 2023-09-19 at 12:26 +0000, Hayes Wang wrote: > Andrew Lunn <andrew@xxxxxxx> > > Sent: Tuesday, September 19, 2023 8:08 PM > [...] > > > - return work_done; > > > + if (work_done > budget) > > > + return budget; > > > + else > > > + return work_done; > > > } > > > > I don't know NAPI too well. Are there implications of not telling it > > the truth? > > You could check the reply from Jakub Kicinski, as following link. > https://www.spinics.net/lists/netdev/msg933846.html > https://www.spinics.net/lists/netdev/msg933923.html > > If the work_done is more than budget, I should return budget. One of the key points in Jakub's reply is that the burst must exceed the budget by a limited number of packets: "Nothing will explode if we process a few more packets than budget (assuming budget > 0)" How many packets can contain at most a single URB? If that number can be significant greater then the napi budget, I think we are better off keeping the packet in the queue - otherwise the whole system latency/stability would be affected. Cheers, Paolo