Page MenuHomeFreeBSD

nvme: Apple S3X controller support
Needs ReviewPublic

Authored by guest-seuros on Thu, Aug 13, 10:11 AM.
Tags
None
Referenced Files
F166515442: D58821.diff
Thu, Aug 13, 10:14 PM
F166515416: D58821.diff
Thu, Aug 13, 10:14 PM
F166515381: D58821.diff
Thu, Aug 13, 10:13 PM
Subscribers

Details

Reviewers
ngie
adrian
imp
Summary

Serialize S3X I/O and cap dtransfers while keeping namespace handling.
Select 64/128-byte submission queue entries explicitly and set
CC.IOSQES from the same value used for the software queue stride.

When fatal status is set, wait for pending PCIe transactions and then
force FLR so a wedged controller doesn't panic or timeout.

MFC: 1 week
PR: 296946
Fixes: 5e0ba47aa00e

Test Plan

Should boot into T1/T2 Apple hardware and other brands without hicup.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 75558
Build 72441: arc lint + arc unit

Event Timeline

I made a few edits to the description to help polish up the description.
Will confirm that this no longer results in panics on my MacBookPro 13,2 later on today.
Do you have any references or links to specs you can provide to help confirm that this fix is correct?

Do you have any references or links to specs you can provide to help confirm that this fix is correct?

No spec. Linux boot this machine, and we used to have it working.

So this was more a bisect work to understand and find a way to keep T1/T2 and non Apple NVME working. (I bought 3 T1 laptops to try, including the 13.2)

T1 nvme is using half of its capability , and T2 drive are operating in degraded throughput. (this is the same behaviorr in linux).

But i believe if we implement the MQS (Multi Queue Support) , we could gain speed.