Page MenuHomeFreeBSD

bhyve: nvme set Abort Command Limit (ACL) and Asynchronous Event Request Limit (AERL) values as specfication suggested
Needs ReviewPublic

Authored by wanpengqian_gmail.com on Aug 25 2022, 5:04 AM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, Apr 6, 7:58 PM
Unknown Object (File)
Mar 7 2024, 2:00 AM
Unknown Object (File)
Mar 7 2024, 2:00 AM
Unknown Object (File)
Mar 7 2024, 12:53 AM
Unknown Object (File)
Mar 7 2024, 12:00 AM
Unknown Object (File)
Dec 22 2023, 11:12 PM
Unknown Object (File)
Dec 10 2023, 8:18 PM
Unknown Object (File)
Oct 30 2023, 4:45 PM
Subscribers

Details

Reviewers
imp
Group Reviewers
bhyve
Summary

Currently the acl and aerl are set to values 3 and 5. as specificaton's recommendation, these values are 4.

Test Plan

Do a nvmecontrol identify from guest. check the output result.

Diff Detail

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

Event Timeline

wanpengqian_gmail.com retitled this revision from Set Abort Command Limit (ACL) and Asynchronous Event Request Limit (AERL) values as specfica ton suggested. to bhyve: nvme set Abort Command Limit (ACL) and Asynchronous Event Request Limit (AERL) values as specfication suggested.Aug 25 2022, 5:06 AM
wanpengqian_gmail.com edited the summary of this revision. (Show Details)
usr.sbin/bhyve/pci_nvme.c
545

There isn't a limit on the number of concurrent aborts in the implementation. So one arbitrary value is as good as another, but I'd suggest removing the comment.

546

The wording in the specification is:

It is recommended that implementations support a minimum of four Asynchronous
Event Request Limit commands outstanding simultaneously.

Supporting 5 (aerl = 4) would meet their recommendation, wouldn't you agree?

usr.sbin/bhyve/pci_nvme.c
545

You are right, currently the Abort Command is not processed by the controller. I'd like the value to be more normal as real nvme controllers use the specification recommended value. I will remove the comment later.

546

Yes, a value higher than 4 is totally OK as specification says. but the value of 5 is a little un-normal. I don't know why we pick up this value at first. as 4 is the value that other controllers do as far as my observation.