HomeFreeBSD

ioat(4): Use memory completion rather than device register

Description

ioat(4): Use memory completion rather than device register

The CHANSTS register is a split 64-bit register on CBDMA units before
hardware v3.3. If a torn read happens during ioat_process_events(),
software cannot know when to stop completing descriptors correctly.

So, just use the device-pushed main memory channel status instead.

Remove the ioat_get_active() seatbelt as well. It does nothing if the
completion address is valid.

Sponsored by: Dell EMC Isilon

Details

Provenance
cemAuthored on
Parents
rS308069: ioat(4): Add failpoint for delay() in ioat_release
Branches
Unknown
Tags
Unknown