[PATCH] scsi: pm8001: Increase request sg length to support 4MiB requests

Igor Pylypiv posted 1 patch 1 month ago
There is a newer version of this series
drivers/scsi/pm8001/pm8001_defs.h | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
[PATCH] scsi: pm8001: Increase request sg length to support 4MiB requests
Posted by Igor Pylypiv 1 month ago
Increasing the per-request size maximum (max_sectors_kb) to 4096 KiB
runs into the per-device DMA scatter gather list limit (max_segments)
for users of the io vector system calls (e.g. readv and writev).

This change increases the max scatter gather list length to 1024 to
enable kernel to send 4MiB (1024 * 4KiB page size) requests.

Signed-off-by: Igor Pylypiv <ipylypiv@google.com>
---
 drivers/scsi/pm8001/pm8001_defs.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/scsi/pm8001/pm8001_defs.h b/drivers/scsi/pm8001/pm8001_defs.h
index 501b574239e8..f6e6fe3f4cd6 100644
--- a/drivers/scsi/pm8001/pm8001_defs.h
+++ b/drivers/scsi/pm8001/pm8001_defs.h
@@ -92,8 +92,7 @@ enum port_type {
 #define	PM8001_MAX_MSIX_VEC	 64	/* max msi-x int for spcv/ve */
 #define	PM8001_RESERVE_SLOT	 8
 
-#define	CONFIG_SCSI_PM8001_MAX_DMA_SG	528
-#define PM8001_MAX_DMA_SG	CONFIG_SCSI_PM8001_MAX_DMA_SG
+#define PM8001_MAX_DMA_SG	1024
 
 enum memory_region_num {
 	AAP1 = 0x0, /* application acceleration processor */
-- 
2.47.0.105.g07ac214952-goog
Re: [PATCH] scsi: pm8001: Increase request sg length to support 4MiB requests
Posted by Igor Pylypiv 1 month ago
On Thu, Oct 24, 2024 at 12:10:26AM +0000, Igor Pylypiv wrote:
> Increasing the per-request size maximum (max_sectors_kb) to 4096 KiB
> runs into the per-device DMA scatter gather list limit (max_segments)
> for users of the io vector system calls (e.g. readv and writev).
> 
> This change increases the max scatter gather list length to 1024 to
> enable kernel to send 4MiB (1024 * 4KiB page size) requests.
> 
> Signed-off-by: Igor Pylypiv <ipylypiv@google.com>
> ---
>  drivers/scsi/pm8001/pm8001_defs.h | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/scsi/pm8001/pm8001_defs.h b/drivers/scsi/pm8001/pm8001_defs.h
> index 501b574239e8..f6e6fe3f4cd6 100644
> --- a/drivers/scsi/pm8001/pm8001_defs.h
> +++ b/drivers/scsi/pm8001/pm8001_defs.h
> @@ -92,8 +92,7 @@ enum port_type {
>  #define	PM8001_MAX_MSIX_VEC	 64	/* max msi-x int for spcv/ve */
>  #define	PM8001_RESERVE_SLOT	 8
>  
> -#define	CONFIG_SCSI_PM8001_MAX_DMA_SG	528
> -#define PM8001_MAX_DMA_SG	CONFIG_SCSI_PM8001_MAX_DMA_SG
> +#define PM8001_MAX_DMA_SG	1024

Just realized that I forgot to include setting .max_sectors to 8192
in pm8001_sht. I'll fix that in v2.

Thanks,
Igor

>  
>  enum memory_region_num {
>  	AAP1 = 0x0, /* application acceleration processor */
> -- 
> 2.47.0.105.g07ac214952-goog
>