Page MenuHomeFreeBSD

LSI HBA drivers report incorrect queue depth to CAM
ClosedPublic

Authored by mav on Feb 5 2018, 9:36 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mar 7 2024, 2:31 AM
Unknown Object (File)
Dec 20 2023, 3:39 AM
Unknown Object (File)
Jun 15 2023, 6:53 PM
Unknown Object (File)
Jun 3 2023, 1:42 AM
Subscribers

Details

Summary

Both mps(4) and mpr(4) drivers were found to report CAM bigger queue depth then they really can handle. It makes them later under high load with many disks return some of submitted requests back with CAM_REQUEUE_REQ status for later resubmission (can be seen with CAM error logging enabled with camcontrol debug -I all).

It may both reduce performance and potentially affect some third-party software trying to talks disks directly with SCSI commands.

Test Plan

Setting those loader tunables allows to trigger this issue much easier:
hw.mps.max_reqframes=128
hw.mpr.max_reqframes=128

Also incorrect queue depth after setting it can be seen with camcontrol tags daX -v command. Applying the patch both makes the proper depth reported and removes the errors.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 14799

Event Timeline

Good find on this. I've seen queue-full conditions in the past but hadn't tracked down the causes; I think this is it.

This revision is now accepted and ready to land.Feb 5 2018, 10:45 PM
This revision was automatically updated to reflect the committed changes.