MPS (Max Payload Size) is not correctly programmed upon Hot Insertion NVMe PCIe SSD

Bug #1794110 reported by Sujith Pandel on 2018-09-24
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
The Dell-poweredge project
Undecided
Unassigned
linux (Ubuntu)
Medium
Joseph Salisbury
Bionic
Medium
Unassigned
Cosmic
Medium
Joseph Salisbury

Bug Description

Max Payload Size for the NVMe device is not getting programmed correctly.
The OS is trying to set the device MPS to match Root Port which is greater than Capability of Device, instead of looking for lowest common denominator.

This is fixed in upstream kernel version 4.19. Below are the commits that fix the issue.
Please help include them in Ubuntu releases.

PCI: Skip MPS logic for Virtual Functions (VFs)
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/pci/probe.c?h=v4.19-rc2&id=3dbe97efe8bf450b183d6dee2305cbc032e6b8a4

PCI: Match Root Port's MPS to endpoint's MPSS as necessary
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/pci/probe.c?h=v4.19-rc2&id=9f0e89359775ee21fe1ea732e34edb52aef5addf

This bug is missing log files that will aid in diagnosing the problem. While running an Ubuntu kernel (not a mainline or third-party kernel) please enter the following command in a terminal window:

apport-collect 1794110

and then change the status of the bug to 'Confirmed'.

If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: New → Incomplete
Changed in linux (Ubuntu):
importance: Undecided → Medium
status: Incomplete → Triaged
Changed in linux (Ubuntu Bionic):
status: New → Triaged
importance: Undecided → Medium
tags: added: bionic cosmic kernel-da-key
Changed in linux (Ubuntu Cosmic):
status: Triaged → Fix Released
status: Fix Released → In Progress
assignee: nobody → Joseph Salisbury (jsalisbury)
Changed in linux (Ubuntu Bionic):
status: Triaged → In Progress
assignee: nobody → Joseph Salisbury (jsalisbury)
Joseph Salisbury (jsalisbury) wrote :

I built a test kernel with the two requested commits. The test kernel can be downloaded from:
http://kernel.ubuntu.com/~jsalisbury/lp1794110/cosmic

Can you test this kernel and see if it resolves this bug?

Note about installing test kernels:
• If the test kernel is prior to 4.15(Bionic) you need to install the linux-image and linux-image-extra .deb packages.
• If the test kernel is 4.15(Bionic) or newer, you need to install the linux-modules, linux-modules-extra and linux-image-unsigned .deb packages.

Thanks in advance!

Joseph Salisbury (jsalisbury) wrote :

The test kernel posted in comment #2 is for cosmic. Bionic needs some backporting, so I'll post that test kernel shortly.

Joseph Salisbury (jsalisbury) wrote :

Also, cosmic already has commit 3dbe97efe8bf applied, so the test kernel just needed commit 9f0e89359775.

Joseph Salisbury (jsalisbury) wrote :

A bionic test kernel is also available with commits 3dbe97efe8bf and 9f0e89359775 applied.

The test kernel can be downloaded from:
http://kernel.ubuntu.com/~jsalisbury/lp1794110/bionic

Can you test this kernel and see if it resolves this bug?

Sujith Pandel (sujithpandel) wrote :

Thank you for sharing a test-kernel.
We will test it and revert back here with test-results.

Thanks,
Sujith

Sujith Pandel (sujithpandel) wrote :

The cosmic test-kernel based on v4.18 is a Pass.
Please include them in planned HWE kernels of 18.04.2 that is based on v4.18.

The bionic test-kernel based on v4.15 is a Fail.
This requires a few more patches to be included.

Joseph Salisbury (jsalisbury) wrote :

Do you happen to know which commits are also needed in Bionic?

Sujith Pandel (sujithpandel) wrote :

@jsalisbury -
Unfortunately we do not have that info in hand. I'll check if we can try getting it.

I see the patches in HWE 4.18 kernel of 18.04.2.
Thanks for including them in it.

Joseph Salisbury (jsalisbury) wrote :

Thanks for the feedback. If you can get a list of additional commits that are needed in Bionic, that would be great. An alternative would be for us to perform a reverse bisect, but that would require a lot of testing and be time consuming.

Changed in linux (Ubuntu Cosmic):
status: In Progress → Fix Committed
Changed in linux (Ubuntu Bionic):
assignee: Joseph Salisbury (jsalisbury) → nobody
status: In Progress → Confirmed
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers