mbox series

[SRU,J,0/2] mpt3sas: Request to include latest bug fix patches

Message ID 20220929155308.16481-1-michael.reed@canonical.com
Headers show
Series mpt3sas: Request to include latest bug fix patches | expand

Message

Michael Reed Sept. 29, 2022, 3:53 p.m. UTC
From: Michael Reed <Michael.Reed@canonical.com>

BugLink: https://bugs.launchpad.net/bugs/1965927

SRU Justification:

[Impact]
Request to include below mpt3sas driver bug fix patches in Ubuntu 22.04 kernel. These patches got accepted by the upstream and please find the corresponding commit IDs as below,

5db207d66d mpt3sas: Fix incorrect 4gb boundary check
ca23ac823c mpt3sas: Remove scsi_dma_map errors messages
9211faa39a scsi: mpt3sas: Update persistent trigger pages from sysfs interface

[Fix]
Below is the summary of each of the above bug fix commits,

1. mpt3sas: Remove scsi_dma_map errors messages:

When driver set the DMA mask to 32bit then we observe that the SWIOTLB bounce buffers are getting exhausted quickly. For most of the IOs driver observe that scsi_dma_map() API returned with failure status and hence driver was printing below error message. Since this error message is getting printed per IO and if user issues heavy IOs then we observe that kernel overwhelmed with this error message. Also we will observe the kernel panic when the serial console is enabled. So to limit this issue, we removed this error message though this patch.
    "scsi_dma_map failed: request for 1310720 bytes!"

2. mpt3sas: Update persistent trigger pages from sysfs interface:

When user set's any diag buffer trigger conditions then driver has to save these trigger conditions in the controller Firmware's NVRAM region. So that when system reboots then driver can get these trigger conditions from Firmware's NVRAM region and set these trigger conditions automatically. so that user no need to set these conditions again. Without this patch driver was not not saving these user provided trigger conditions in the Firmware's NVRAM region.


[Test Plan]

1. All drives attached to the controller are Enumerated in OS
2. IO stress for 5Hrs
3. Created a filesystem and done some IO transitions
4. Controller reset and TMs and while IOs are running
5. driver load and unload
6. Reboot loop
7. Verified that the diag trigger settings are persistent across the reboots.

[Where problems could occur]


[Other Info]

https://code.launchpad.net/~mreed8855/ubuntu/+source/linux/+git/jammy/+ref/mpt3sas_lp_1965927

This patch was apart of the original request but was already in the kernel

1. mpt3sas: Fix incorrect 4gb boundary check:
Without this patch, driver was checking whether any of it's pool crosses the 4gb boundary or not using the pool's virtual address instead of using it's dma address. So some time driver may false positively assume that the pool as crossed the 4gb boundary region (as it observes that pool's virtual address is crossing the 4gb boundary) even though it is really not.

Sreekanth Reddy (1):
  scsi: mpt3sas: Remove scsi_dma_map() error messages

Suganath Prabu S (1):
  scsi: mpt3sas: Update persistent trigger pages from sysfs interface

 drivers/scsi/mpt3sas/mpt3sas_base.c | 18 +-----
 drivers/scsi/mpt3sas/mpt3sas_base.h |  4 +-
 drivers/scsi/mpt3sas/mpt3sas_ctl.c  | 87 +++++++++++++++++++++++++++--
 3 files changed, 88 insertions(+), 21 deletions(-)

Comments

Tim Gardner Oct. 5, 2022, 12:52 p.m. UTC | #1
On 9/29/22 09:53, Michael Reed wrote:
> From: Michael Reed <Michael.Reed@canonical.com>
> 
> BugLink: https://bugs.launchpad.net/bugs/1965927
> 
> SRU Justification:
> 
> [Impact]
> Request to include below mpt3sas driver bug fix patches in Ubuntu 22.04 kernel. These patches got accepted by the upstream and please find the corresponding commit IDs as below,
> 
> 5db207d66d mpt3sas: Fix incorrect 4gb boundary check
> ca23ac823c mpt3sas: Remove scsi_dma_map errors messages
> 9211faa39a scsi: mpt3sas: Update persistent trigger pages from sysfs interface
> 
> [Fix]
> Below is the summary of each of the above bug fix commits,
> 
> 1. mpt3sas: Remove scsi_dma_map errors messages:
> 
> When driver set the DMA mask to 32bit then we observe that the SWIOTLB bounce buffers are getting exhausted quickly. For most of the IOs driver observe that scsi_dma_map() API returned with failure status and hence driver was printing below error message. Since this error message is getting printed per IO and if user issues heavy IOs then we observe that kernel overwhelmed with this error message. Also we will observe the kernel panic when the serial console is enabled. So to limit this issue, we removed this error message though this patch.
>      "scsi_dma_map failed: request for 1310720 bytes!"
> 
> 2. mpt3sas: Update persistent trigger pages from sysfs interface:
> 
> When user set's any diag buffer trigger conditions then driver has to save these trigger conditions in the controller Firmware's NVRAM region. So that when system reboots then driver can get these trigger conditions from Firmware's NVRAM region and set these trigger conditions automatically. so that user no need to set these conditions again. Without this patch driver was not not saving these user provided trigger conditions in the Firmware's NVRAM region.
> 
> 
> [Test Plan]
> 
> 1. All drives attached to the controller are Enumerated in OS
> 2. IO stress for 5Hrs
> 3. Created a filesystem and done some IO transitions
> 4. Controller reset and TMs and while IOs are running
> 5. driver load and unload
> 6. Reboot loop
> 7. Verified that the diag trigger settings are persistent across the reboots.
> 
> [Where problems could occur]
> 
> 
> [Other Info]
> 
> https://code.launchpad.net/~mreed8855/ubuntu/+source/linux/+git/jammy/+ref/mpt3sas_lp_1965927
> 
> This patch was apart of the original request but was already in the kernel
> 
> 1. mpt3sas: Fix incorrect 4gb boundary check:
> Without this patch, driver was checking whether any of it's pool crosses the 4gb boundary or not using the pool's virtual address instead of using it's dma address. So some time driver may false positively assume that the pool as crossed the 4gb boundary region (as it observes that pool's virtual address is crossing the 4gb boundary) even though it is really not.
> 
> Sreekanth Reddy (1):
>    scsi: mpt3sas: Remove scsi_dma_map() error messages
> 
> Suganath Prabu S (1):
>    scsi: mpt3sas: Update persistent trigger pages from sysfs interface
> 
>   drivers/scsi/mpt3sas/mpt3sas_base.c | 18 +-----
>   drivers/scsi/mpt3sas/mpt3sas_base.h |  4 +-
>   drivers/scsi/mpt3sas/mpt3sas_ctl.c  | 87 +++++++++++++++++++++++++++--
>   3 files changed, 88 insertions(+), 21 deletions(-)
> 
Acked-by: Tim Gardner <tim.gardner@canonical.com>
Stefan Bader Oct. 7, 2022, 12:26 p.m. UTC | #2
On 29.09.22 17:53, Michael Reed wrote:
> From: Michael Reed <Michael.Reed@canonical.com>
> 
> BugLink: https://bugs.launchpad.net/bugs/1965927
> 
> SRU Justification:
> 
> [Impact]
> Request to include below mpt3sas driver bug fix patches in Ubuntu 22.04 kernel. These patches got accepted by the upstream and please find the corresponding commit IDs as below,
> 
> 5db207d66d mpt3sas: Fix incorrect 4gb boundary check
> ca23ac823c mpt3sas: Remove scsi_dma_map errors messages
> 9211faa39a scsi: mpt3sas: Update persistent trigger pages from sysfs interface
> 
> [Fix]
> Below is the summary of each of the above bug fix commits,
> 
> 1. mpt3sas: Remove scsi_dma_map errors messages:
> 
> When driver set the DMA mask to 32bit then we observe that the SWIOTLB bounce buffers are getting exhausted quickly. For most of the IOs driver observe that scsi_dma_map() API returned with failure status and hence driver was printing below error message. Since this error message is getting printed per IO and if user issues heavy IOs then we observe that kernel overwhelmed with this error message. Also we will observe the kernel panic when the serial console is enabled. So to limit this issue, we removed this error message though this patch.
>      "scsi_dma_map failed: request for 1310720 bytes!"
> 
> 2. mpt3sas: Update persistent trigger pages from sysfs interface:
> 
> When user set's any diag buffer trigger conditions then driver has to save these trigger conditions in the controller Firmware's NVRAM region. So that when system reboots then driver can get these trigger conditions from Firmware's NVRAM region and set these trigger conditions automatically. so that user no need to set these conditions again. Without this patch driver was not not saving these user provided trigger conditions in the Firmware's NVRAM region.
> 
> 
> [Test Plan]
> 
> 1. All drives attached to the controller are Enumerated in OS
> 2. IO stress for 5Hrs
> 3. Created a filesystem and done some IO transitions
> 4. Controller reset and TMs and while IOs are running
> 5. driver load and unload
> 6. Reboot loop
> 7. Verified that the diag trigger settings are persistent across the reboots.
> 
> [Where problems could occur]
> 
> 
> [Other Info]
> 
> https://code.launchpad.net/~mreed8855/ubuntu/+source/linux/+git/jammy/+ref/mpt3sas_lp_1965927
> 
> This patch was apart of the original request but was already in the kernel
> 
> 1. mpt3sas: Fix incorrect 4gb boundary check:
> Without this patch, driver was checking whether any of it's pool crosses the 4gb boundary or not using the pool's virtual address instead of using it's dma address. So some time driver may false positively assume that the pool as crossed the 4gb boundary region (as it observes that pool's virtual address is crossing the 4gb boundary) even though it is really not.
> 
> Sreekanth Reddy (1):
>    scsi: mpt3sas: Remove scsi_dma_map() error messages
> 
> Suganath Prabu S (1):
>    scsi: mpt3sas: Update persistent trigger pages from sysfs interface
> 
>   drivers/scsi/mpt3sas/mpt3sas_base.c | 18 +-----
>   drivers/scsi/mpt3sas/mpt3sas_base.h |  4 +-
>   drivers/scsi/mpt3sas/mpt3sas_ctl.c  | 87 +++++++++++++++++++++++++++--
>   3 files changed, 88 insertions(+), 21 deletions(-)
> 

Sorry, this somehow slipped through the cracks and I just prepared the kernel 
for next cycle. If there is the need for a re-spin, maybe we can squeeze it in 
but I cannot promise anything.

Acked-by: Stefan Bader <stefan.bader@canonical.com>
Stefan Bader Oct. 7, 2022, 12:50 p.m. UTC | #3
On 29.09.22 17:53, Michael Reed wrote:
> From: Michael Reed <Michael.Reed@canonical.com>
> 
> BugLink: https://bugs.launchpad.net/bugs/1965927
> 
> SRU Justification:
> 
> [Impact]
> Request to include below mpt3sas driver bug fix patches in Ubuntu 22.04 kernel. These patches got accepted by the upstream and please find the corresponding commit IDs as below,
> 
> 5db207d66d mpt3sas: Fix incorrect 4gb boundary check
> ca23ac823c mpt3sas: Remove scsi_dma_map errors messages
> 9211faa39a scsi: mpt3sas: Update persistent trigger pages from sysfs interface
> 
> [Fix]
> Below is the summary of each of the above bug fix commits,
> 
> 1. mpt3sas: Remove scsi_dma_map errors messages:
> 
> When driver set the DMA mask to 32bit then we observe that the SWIOTLB bounce buffers are getting exhausted quickly. For most of the IOs driver observe that scsi_dma_map() API returned with failure status and hence driver was printing below error message. Since this error message is getting printed per IO and if user issues heavy IOs then we observe that kernel overwhelmed with this error message. Also we will observe the kernel panic when the serial console is enabled. So to limit this issue, we removed this error message though this patch.
>      "scsi_dma_map failed: request for 1310720 bytes!"
> 
> 2. mpt3sas: Update persistent trigger pages from sysfs interface:
> 
> When user set's any diag buffer trigger conditions then driver has to save these trigger conditions in the controller Firmware's NVRAM region. So that when system reboots then driver can get these trigger conditions from Firmware's NVRAM region and set these trigger conditions automatically. so that user no need to set these conditions again. Without this patch driver was not not saving these user provided trigger conditions in the Firmware's NVRAM region.
> 
> 
> [Test Plan]
> 
> 1. All drives attached to the controller are Enumerated in OS
> 2. IO stress for 5Hrs
> 3. Created a filesystem and done some IO transitions
> 4. Controller reset and TMs and while IOs are running
> 5. driver load and unload
> 6. Reboot loop
> 7. Verified that the diag trigger settings are persistent across the reboots.
> 
> [Where problems could occur]
> 
> 
> [Other Info]
> 
> https://code.launchpad.net/~mreed8855/ubuntu/+source/linux/+git/jammy/+ref/mpt3sas_lp_1965927
> 
> This patch was apart of the original request but was already in the kernel
> 
> 1. mpt3sas: Fix incorrect 4gb boundary check:
> Without this patch, driver was checking whether any of it's pool crosses the 4gb boundary or not using the pool's virtual address instead of using it's dma address. So some time driver may false positively assume that the pool as crossed the 4gb boundary region (as it observes that pool's virtual address is crossing the 4gb boundary) even though it is really not.
> 
> Sreekanth Reddy (1):
>    scsi: mpt3sas: Remove scsi_dma_map() error messages
> 
> Suganath Prabu S (1):
>    scsi: mpt3sas: Update persistent trigger pages from sysfs interface
> 
>   drivers/scsi/mpt3sas/mpt3sas_base.c | 18 +-----
>   drivers/scsi/mpt3sas/mpt3sas_base.h |  4 +-
>   drivers/scsi/mpt3sas/mpt3sas_ctl.c  | 87 +++++++++++++++++++++++++++--
>   3 files changed, 88 insertions(+), 21 deletions(-)
> 

Applied to jammy:linux/master-next. Since this was overlooked before preparing 
the 2022.10.10 cycle it is possible it will move to the next cycle but if there 
is any reason for a re-spin we could squeeze it into the current one.
Thanks.

-Stefan