The ixl_isc_txd_encap() iflib callback was not handling the IPI_TX_INTR flag properly.
When this flag is not set, the callback is not supposed to set the report flag in the EOP descriptor, and therefore do not ask the NIC for a descriptor writeback (and possibly a TX interrupt).
Details
Details
- Reviewers
krzysztof.galazka_intel.com - Group Reviewers
Intel Networking
Diff Detail
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Skipped - Unit
Tests Skipped - Build Status
Buildable 34310
Event Timeline
Comment Actions
Although the change seems legit, it has been reported to cause hangs with netmap pkt-gen.
See:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=248652 (from comment 29)
Any idea why this may be the case?
In stable/11, the same logic (two report flags set for every ring) does not cause hangs.
Comment Actions
@krzysztof.galazka_intel.com, do you have any update on an answer to @vmaffione's question ?