Page MenuHomeFreeBSD

nvme: program the arbitration burst from Identify RAB
AcceptedPublic

Authored by seuros on Mon, Aug 24, 6:20 PM.
Tags
None
Referenced Files
F170089922: D59155.diff
Thu, Sep 3, 11:47 AM
F170073457: D59155.diff
Thu, Sep 3, 10:47 AM
F169911969: D59155.diff
Wed, Sep 2, 10:54 PM
F169875723: D59155.id184923.diff
Wed, Sep 2, 8:55 PM
F169838559: D59155.diff
Wed, Sep 2, 5:31 PM
F169791271: D59155.id.diff
Wed, Sep 2, 2:11 PM
F169787138: D59155.id.diff
Wed, Sep 2, 1:49 PM
F169776842: D59155.id184923.diff
Wed, Sep 2, 1:07 PM

Details

Summary

The controller's Recommended Arbitration Burst was ignored; the
specification advises matching the Arbitration feature's burst to it
even under plain round robin. Some controllers report unusable
values: programming the Apple S3X with its reported RAB wedged
sustained I/O, so quirked controllers keep their default
configuration. The hw.nvme.arb_burst tunable overrides the
recommendation.

Diff Detail

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

Event Timeline

Thanks for tagging me!

Oh no, the way this is manual is written is excluding the nvme tunables from the search database. Let me fix that real quick.

@ziaee sadly the date change in b863d38437af11c18a88de656404af8cefa35e63 makes this change stack difficult to apply, this should be rebased on top of the manpage change

@ziaee sadly the date change in b863d38437af11c18a88de656404af8cefa35e63 makes this change stack difficult to apply, this should be rebased on top of the manpage change

Yes, that's what I meant by "let me fix that real quick". It also has a followup that could use a quick look over for errors or omissions, I tagged you and everyone else in this thread except ngie because she's on vacation.

rebased. we can wait till ngie is back from their break for a second check.

This stack gives a 720% speed boost in the S3X driver.

The most important are the 2 first commit of this stack, those are latent bugs i discovered while benchmarking dozen of nvmes vendors.

Will look at this with the rest of the stack when I get back to my personal mini "lab" in a few days :).

sys/dev/nvme/nvme_ctrlr.c
896

(hope the formatted message fits in <80 columns)

908

Minor tweak for clarity.

sys/dev/nvme/nvme_private.h
400–403

Is this indentation correct per style(9)? This should be hard-tab indented, then indented by 4 (the existing style doesn't seem to match style(9), but it would be nice to have this be consistent).

This didn't apply cleanly on :main for me -- I think it needs to be rebased.

This revision is now accepted and ready to land.Tue, Sep 1, 7:47 PM