RE: Re: Subject: [PATCH v14 1/3] scsi: ufs: Introduce HPB feature

2020-12-17 Thread Daejun Park
Hi Daejun,
> 
> On Wed, 2020-12-16 at 11:45 +0900, Daejun Park wrote:
> > This is a patch for the HPB initialization and adds HPB function calls to
> > UFS core driver.
> > 
> > NAND flash-based storage devices, including UFS, have mechanisms to
> > translate logical addresses of IO requests to the corresponding physical
> > addresses of the flash storage.
> > In UFS, Logical-address-to-Physical-address (L2P) map data, which is
> > required to identify the physical address for the requested IOs, can only
> > be partially stored in SRAM from NAND flash. Due to this partial loading,
> > accessing the flash address area where the L2P information for that address
> > is not loaded in the SRAM can result in serious performance degradation.
> > 
> > The basic concept of HPB is to cache L2P mapping entries in host system
> > memory so that both physical block address (PBA) and logical block address
> > (LBA) can be delivered in HPB read command.
> > The HPB READ command allows to read data faster than a read command in UFS
> > since it provides the physical address (HPB Entry) of the desired logical
> > block in addition to its logical address. The UFS device can access the
> > physical block in NAND directly without searching and uploading L2P mapping
> > table. This improves read performance because the NAND read operation for
> > uploading L2P mapping table is removed.
> > 
> > In HPB initialization, the host checks if the UFS device supports HPB
> > feature and retrieves related device capabilities. Then, some HPB
> > parameters are configured in the device.
> > 
> > Reviewed-by: Bart Van Assche 
> > Reviewed-by: Can Guo 
> > Acked-by: Avri Altman 
> > Tested-by: Bean Huo 
> > Signed-off-by: Daejun Park 
> > ---
> >  Documentation/ABI/testing/sysfs-driver-ufs |  80 +++
> >  drivers/scsi/ufs/Kconfig   |   9 +
> >  drivers/scsi/ufs/Makefile  |   1 +
> >  drivers/scsi/ufs/ufs-sysfs.c   |  18 +
> >  drivers/scsi/ufs/ufs.h |  13 +
> >  drivers/scsi/ufs/ufshcd.c  |  48 ++
> >  drivers/scsi/ufs/ufshcd.h  |  23 +-
> >  drivers/scsi/ufs/ufshpb.c  | 562 +
> >  drivers/scsi/ufs/ufshpb.h  | 167 ++
> >  9 files changed, 920 insertions(+), 1 deletion(-)
> >  create mode 100644 drivers/scsi/ufs/ufshpb.c
> >  create mode 100644 drivers/scsi/ufs/ufshpb.h
> > 
> > diff --git a/Documentation/ABI/testing/sysfs-driver-ufs 
> > b/Documentation/ABI/testing/sysfs-driver-ufs
> > index d1a352194d2e..8b16a353392c 100644
> > --- a/Documentation/ABI/testing/sysfs-driver-ufs
> > +++ b/Documentation/ABI/testing/sysfs-driver-ufs
> > @@ -1019,3 +1019,83 @@ Contact: Asutosh Das 
> >  Description:   This entry shows the configured size of WriteBooster 
> > buffer.
> > 0400h corresponds to 4GB.
> > The file is read only.
> > +
> > +What:  
> > /sys/bus/platform/drivers/ufshcd/*/device_descriptor/hpb_version
> > +Date:  December 2020
> > +Contact:   Daejun Park 
> > +Description:   This entry shows the HPB specification version.
> > +   The full information about the descriptor could be found at UFS
> > +   HPB (Host Performance Booster) Extension specifications.
> > +   Example: version 1.2.3 = 0123h
> > +   The file is read only.
> > +
> > +What:  
> > /sys/bus/platform/drivers/ufshcd/*/device_descriptor/hpb_control
> > +Date:  December 2020
> > +Contact:   Daejun Park 
> > +Description:   This entry shows an indication of the HPB control mode.
> > +   00h: Host control mode
> > +   01h: Device control mode
> > +   The file is read only.
> > +
> > +What:  
> > /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_region_size
> > +Date:  December 2020
> > +Contact:   Daejun Park 
> > +Description:   This entry shows the bHPBRegionSize which can be 
> > calculated
> > +   as in the following (in bytes):
> > +   HPB Region size = 512B * 2^bHPBRegionSize
> > +   The file is read only.
> > +
> > +What:  
> > /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_number_lu
> > +Date:  December 2020
> > +Contact:   Daejun Park 
> > +Description:   This entry shows the maximum number of HPB LU supported 
> > by
> > +   the device.
> > +   00h: HPB is not supported by the device.
> > +   01h ~ 20h: Maximum number of HPB LU supported by the device
> > +   The file is read only.
> > +
> > +What:  
> > /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_number_lu
> > +Date:  December 2020
> > +Contact:   Daejun Park 
> > +Description:   This entry shows the maximum number of HPB LU supported 
> > by
> > +   the device.
> > +   00h: HPB is not supported by the device.
> > +   01h ~ 20h: 

Re: Subject: [PATCH v14 1/3] scsi: ufs: Introduce HPB feature

2020-12-17 Thread Stanley Chu
Hi Daejun,

On Wed, 2020-12-16 at 11:45 +0900, Daejun Park wrote:
> This is a patch for the HPB initialization and adds HPB function calls to
> UFS core driver.
> 
> NAND flash-based storage devices, including UFS, have mechanisms to
> translate logical addresses of IO requests to the corresponding physical
> addresses of the flash storage.
> In UFS, Logical-address-to-Physical-address (L2P) map data, which is
> required to identify the physical address for the requested IOs, can only
> be partially stored in SRAM from NAND flash. Due to this partial loading,
> accessing the flash address area where the L2P information for that address
> is not loaded in the SRAM can result in serious performance degradation.
> 
> The basic concept of HPB is to cache L2P mapping entries in host system
> memory so that both physical block address (PBA) and logical block address
> (LBA) can be delivered in HPB read command.
> The HPB READ command allows to read data faster than a read command in UFS
> since it provides the physical address (HPB Entry) of the desired logical
> block in addition to its logical address. The UFS device can access the
> physical block in NAND directly without searching and uploading L2P mapping
> table. This improves read performance because the NAND read operation for
> uploading L2P mapping table is removed.
> 
> In HPB initialization, the host checks if the UFS device supports HPB
> feature and retrieves related device capabilities. Then, some HPB
> parameters are configured in the device.
> 
> Reviewed-by: Bart Van Assche 
> Reviewed-by: Can Guo 
> Acked-by: Avri Altman 
> Tested-by: Bean Huo 
> Signed-off-by: Daejun Park 
> ---
>  Documentation/ABI/testing/sysfs-driver-ufs |  80 +++
>  drivers/scsi/ufs/Kconfig   |   9 +
>  drivers/scsi/ufs/Makefile  |   1 +
>  drivers/scsi/ufs/ufs-sysfs.c   |  18 +
>  drivers/scsi/ufs/ufs.h |  13 +
>  drivers/scsi/ufs/ufshcd.c  |  48 ++
>  drivers/scsi/ufs/ufshcd.h  |  23 +-
>  drivers/scsi/ufs/ufshpb.c  | 562 +
>  drivers/scsi/ufs/ufshpb.h  | 167 ++
>  9 files changed, 920 insertions(+), 1 deletion(-)
>  create mode 100644 drivers/scsi/ufs/ufshpb.c
>  create mode 100644 drivers/scsi/ufs/ufshpb.h
> 
> diff --git a/Documentation/ABI/testing/sysfs-driver-ufs 
> b/Documentation/ABI/testing/sysfs-driver-ufs
> index d1a352194d2e..8b16a353392c 100644
> --- a/Documentation/ABI/testing/sysfs-driver-ufs
> +++ b/Documentation/ABI/testing/sysfs-driver-ufs
> @@ -1019,3 +1019,83 @@ Contact:   Asutosh Das 
>  Description: This entry shows the configured size of WriteBooster buffer.
>   0400h corresponds to 4GB.
>   The file is read only.
> +
> +What:
> /sys/bus/platform/drivers/ufshcd/*/device_descriptor/hpb_version
> +Date:December 2020
> +Contact: Daejun Park 
> +Description: This entry shows the HPB specification version.
> + The full information about the descriptor could be found at UFS
> + HPB (Host Performance Booster) Extension specifications.
> + Example: version 1.2.3 = 0123h
> + The file is read only.
> +
> +What:
> /sys/bus/platform/drivers/ufshcd/*/device_descriptor/hpb_control
> +Date:December 2020
> +Contact: Daejun Park 
> +Description: This entry shows an indication of the HPB control mode.
> + 00h: Host control mode
> + 01h: Device control mode
> + The file is read only.
> +
> +What:
> /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_region_size
> +Date:December 2020
> +Contact: Daejun Park 
> +Description: This entry shows the bHPBRegionSize which can be calculated
> + as in the following (in bytes):
> + HPB Region size = 512B * 2^bHPBRegionSize
> + The file is read only.
> +
> +What:
> /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_number_lu
> +Date:December 2020
> +Contact: Daejun Park 
> +Description: This entry shows the maximum number of HPB LU supported by
> + the device.
> + 00h: HPB is not supported by the device.
> + 01h ~ 20h: Maximum number of HPB LU supported by the device
> + The file is read only.
> +
> +What:
> /sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_number_lu
> +Date:December 2020
> +Contact: Daejun Park 
> +Description: This entry shows the maximum number of HPB LU supported by
> + the device.
> + 00h: HPB is not supported by the device.
> + 01h ~ 20h: Maximum number of HPB LU supported by the device
> + The file is read only.

Please remove above duplicated item.

Thanks,
Stanley Chu



Re: Re: Subject: [PATCH v14 1/3] scsi: ufs: Introduce HPB feature

2020-12-16 Thread Greg KH
On Thu, Dec 17, 2020 at 02:21:36PM +0900, Daejun Park wrote:
> On Wed, Dec 16, 2020 at 11:45:32AM +0900, Daejun Park wrote:
> > > This is a patch for the HPB initialization and adds HPB function calls to
> > > UFS core driver.
> > 
> > 
> > 
> > Your "subject" is odd, it has "Subject:" in it twice, did git
> > format-patch create that?
> > 
> > thanks,
> > 
> > greg k-h
> > 
> 
> Sorry, It is my mistake.
> Should I resend this patch with proper subject?

Eventually yes.  Nothing anyone can do with this before 5.11-rc1 is out
anyway, so you might want to wait.

thanks,

greg k-h


RE: Re: Subject: [PATCH v14 1/3] scsi: ufs: Introduce HPB feature

2020-12-16 Thread Daejun Park
On Wed, Dec 16, 2020 at 11:45:32AM +0900, Daejun Park wrote:
> > This is a patch for the HPB initialization and adds HPB function calls to
> > UFS core driver.
> 
> 
> 
> Your "subject" is odd, it has "Subject:" in it twice, did git
> format-patch create that?
> 
> thanks,
> 
> greg k-h
> 

Sorry, It is my mistake.
Should I resend this patch with proper subject?

Thansk,
Daejun


Re: Subject: [PATCH v14 1/3] scsi: ufs: Introduce HPB feature

2020-12-16 Thread Greg KH
On Wed, Dec 16, 2020 at 11:45:32AM +0900, Daejun Park wrote:
> This is a patch for the HPB initialization and adds HPB function calls to
> UFS core driver.



Your "subject" is odd, it has "Subject:" in it twice, did git
format-patch create that?

thanks,

greg k-h


Subject: [PATCH v14 1/3] scsi: ufs: Introduce HPB feature

2020-12-15 Thread Daejun Park
This is a patch for the HPB initialization and adds HPB function calls to
UFS core driver.

NAND flash-based storage devices, including UFS, have mechanisms to
translate logical addresses of IO requests to the corresponding physical
addresses of the flash storage.
In UFS, Logical-address-to-Physical-address (L2P) map data, which is
required to identify the physical address for the requested IOs, can only
be partially stored in SRAM from NAND flash. Due to this partial loading,
accessing the flash address area where the L2P information for that address
is not loaded in the SRAM can result in serious performance degradation.

The basic concept of HPB is to cache L2P mapping entries in host system
memory so that both physical block address (PBA) and logical block address
(LBA) can be delivered in HPB read command.
The HPB READ command allows to read data faster than a read command in UFS
since it provides the physical address (HPB Entry) of the desired logical
block in addition to its logical address. The UFS device can access the
physical block in NAND directly without searching and uploading L2P mapping
table. This improves read performance because the NAND read operation for
uploading L2P mapping table is removed.

In HPB initialization, the host checks if the UFS device supports HPB
feature and retrieves related device capabilities. Then, some HPB
parameters are configured in the device.

Reviewed-by: Bart Van Assche 
Reviewed-by: Can Guo 
Acked-by: Avri Altman 
Tested-by: Bean Huo 
Signed-off-by: Daejun Park 
---
 Documentation/ABI/testing/sysfs-driver-ufs |  80 +++
 drivers/scsi/ufs/Kconfig   |   9 +
 drivers/scsi/ufs/Makefile  |   1 +
 drivers/scsi/ufs/ufs-sysfs.c   |  18 +
 drivers/scsi/ufs/ufs.h |  13 +
 drivers/scsi/ufs/ufshcd.c  |  48 ++
 drivers/scsi/ufs/ufshcd.h  |  23 +-
 drivers/scsi/ufs/ufshpb.c  | 562 +
 drivers/scsi/ufs/ufshpb.h  | 167 ++
 9 files changed, 920 insertions(+), 1 deletion(-)
 create mode 100644 drivers/scsi/ufs/ufshpb.c
 create mode 100644 drivers/scsi/ufs/ufshpb.h

diff --git a/Documentation/ABI/testing/sysfs-driver-ufs 
b/Documentation/ABI/testing/sysfs-driver-ufs
index d1a352194d2e..8b16a353392c 100644
--- a/Documentation/ABI/testing/sysfs-driver-ufs
+++ b/Documentation/ABI/testing/sysfs-driver-ufs
@@ -1019,3 +1019,83 @@ Contact: Asutosh Das 
 Description:   This entry shows the configured size of WriteBooster buffer.
0400h corresponds to 4GB.
The file is read only.
+
+What:  /sys/bus/platform/drivers/ufshcd/*/device_descriptor/hpb_version
+Date:  December 2020
+Contact:   Daejun Park 
+Description:   This entry shows the HPB specification version.
+   The full information about the descriptor could be found at UFS
+   HPB (Host Performance Booster) Extension specifications.
+   Example: version 1.2.3 = 0123h
+   The file is read only.
+
+What:  /sys/bus/platform/drivers/ufshcd/*/device_descriptor/hpb_control
+Date:  December 2020
+Contact:   Daejun Park 
+Description:   This entry shows an indication of the HPB control mode.
+   00h: Host control mode
+   01h: Device control mode
+   The file is read only.
+
+What:  
/sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_region_size
+Date:  December 2020
+Contact:   Daejun Park 
+Description:   This entry shows the bHPBRegionSize which can be calculated
+   as in the following (in bytes):
+   HPB Region size = 512B * 2^bHPBRegionSize
+   The file is read only.
+
+What:  
/sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_number_lu
+Date:  December 2020
+Contact:   Daejun Park 
+Description:   This entry shows the maximum number of HPB LU supported by
+   the device.
+   00h: HPB is not supported by the device.
+   01h ~ 20h: Maximum number of HPB LU supported by the device
+   The file is read only.
+
+What:  
/sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_number_lu
+Date:  December 2020
+Contact:   Daejun Park 
+Description:   This entry shows the maximum number of HPB LU supported by
+   the device.
+   00h: HPB is not supported by the device.
+   01h ~ 20h: Maximum number of HPB LU supported by the device
+   The file is read only.
+
+What:  
/sys/bus/platform/drivers/ufshcd/*/geometry_descriptor/hpb_subregion_size
+Date:  December 2020
+Contact:   Daejun Park 
+Description:   This entry shows the bHPBSubRegionSize, which can be
+   calculated as in the following (in bytes) and shall be a 
multiple of
+   logical block size:
+   HPB Sub-Region size =