Resetting some generations of the I/OAT hardware (just BDXDE for now)
resets the corresponding MSI-X registers. So, teardown and
re-initialize interrupts after resetting the hardware.
Details
Details
ioatcontrol 0 100 completes a lot faster when interrupts fire correctly.
Diff Detail
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Comment Actions
I would rather see the full patch here instead of just this workaround to get BDX-DE initialized. Otherwise recovering from channel hangs after initialization will not be possible.
Comment Actions
I'd rather not make more extensive changes here until I have serial / debugging set up on my test machine. For now it's recompile, reboot, and pray — the machine is in a lab 10 miles away :).
I'll change the patch to correctly teardown/re-setup interrupts after a hardware reset. We still only call it in one place (ioat3_attach).
Comment Actions
Detect broken-ish devices (BDXDE) and teardown/re-initialize interrupts after
device reset on those devices.