On 9/16/2026 3:58 PM, Zhang Tengfei wrote:
Enabling Flow Director reduces RXPBSIZE to reserve SRAM for the
filter table. Clearing the last FDIR rule set the mode back to
none without restoring that buffer, so the next flow create ran
configure again and subtracted the same amount a second time.

Keep the FDIR mode after rules are removed, and subtract RXPBSIZE
only once until the next hardware reset.

Fixes: 301abd26b118 ("net/ixgbe: reset flow state on clear paths")
Cc: [email protected]
Signed-off-by: Zhang Tengfei <[email protected]>
---

A general comment: instead of reducing/bringing things back and storing a flag noting whether we did, I would rather do the following:

0) store default rx pb size at init
1) on enabling FDIR, recalculate using that value minus FDIR table size
2) on disabling FDIR[*], restore the default
3) similarly, on enable/disable VMDq, recalculate and/or reset

[*] there is no "disable FDIR" call, only fdir flush which just flushes the FDIR tables but does not actually disable FDIR. arguably, we should convert it to "disable FDIR" by flushing FDIR *and* writing 0 to FDIRCTRL *and* restoring rx pb size to defaults. naturally, after running fdir disable function, FDIR will need to be reconfigured for next FDIR flow and get rx pb size recalculated again.

So, a bit of a refactor, but I think that would make way more sense.

--
Thanks,
Anatoly

Reply via email to