> -----Original Message----- > From: Jakub Kicinski <kuba@xxxxxxxxxx> > Sent: 2023年7月21日 0:13 > To: davem@xxxxxxxxxxxxx > Cc: netdev@xxxxxxxxxxxxxxx; edumazet@xxxxxxxxxx; pabeni@xxxxxxxxxx; > Jakub Kicinski <kuba@xxxxxxxxxx>; corbet@xxxxxxx; linux-doc@xxxxxxxxxxxxxxx > Subject: [PATCH net] docs: net: clarify the NAPI rules around XDP Tx > > page pool and XDP should not be accessed from IRQ context which may > happen if drivers try to clean up XDP TX with NAPI budget of 0. > > Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx> > --- > CC: corbet@xxxxxxx > CC: linux-doc@xxxxxxxxxxxxxxx > --- > Documentation/networking/napi.rst | 13 +++++++------ > 1 file changed, 7 insertions(+), 6 deletions(-) > > diff --git a/Documentation/networking/napi.rst > b/Documentation/networking/napi.rst > index a7a047742e93..7bf7b95c4f7a 100644 > --- a/Documentation/networking/napi.rst > +++ b/Documentation/networking/napi.rst > @@ -65,15 +65,16 @@ argument - drivers can process completions for any > number of Tx packets but should only process up to ``budget`` number of > Rx packets. Rx processing is usually much more expensive. > > -In other words, it is recommended to ignore the budget argument when > -performing TX buffer reclamation to ensure that the reclamation is not > -arbitrarily bounded; however, it is required to honor the budget argument -for > RX processing. > +In other words for Rx processing the ``budget`` argument limits how > +many packets driver can process in a single poll. Rx specific APIs like > +page pool or XDP cannot be used at all when ``budget`` is 0. > +skb Tx processing should happen regardless of the ``budget``, but if > +the argument is 0 driver cannot call any XDP (or page pool) APIs. > Can I ask a stupid question why tx processing cannot call any XDP (or page pool) APIs if the "budget" is 0?