> > In the fast commit, it adds REQ_FUA and REQ_PREFLUSH on each fast commit
> > block when barrier is enabled. However, in recovery phase, ext4 compares
> > CRC value in the tail. So it is sufficient adds REQ_FUA and REQ_PREFLUSH
> > on the block that has tail.
>
> Does the tail block *always*
Hi Can Guo,
> > +static void
> > +ufshpb_set_hpb_read_to_upiu(struct ufshpb_lu *hpb, struct ufshcd_lrb
> > *lrbp,
> > + u32 lpn, u64 ppn, unsigned int transfer_len)
> > +{
> > + unsigned char *cdb = lrbp->ucd_req_ptr->sc.cdb;
> > +
> > + cdb[0] = UFSHPB_READ;
>
Hi Can Guo,
>
> On 2021-01-13 09:36, Daejun Park wrote:
> > Hi Can Guo,
> >
> >> > +static void
> >> > +ufshpb_set_hpb_read_to_upiu(struct ufshpb_lu *hpb, struct ufshcd_lrb
> >> > *lrbp,
> >> > +
Hi Bart,
> Any idea how much time this work will take and when a new version will be
> posted?
I have plan to patch new version in this week.
Thanks,
Daejun
mprovement of 58 - 67% for random read
workload. [1]
This series patches are based on the 5.9/scsi-queue branch.
[1]:
https://www.usenix.org/conference/hotstorage17/program/presentation/jeong
Daejun park (4):
scsi: ufs: Add UFS feature related parameter
scsi: ufs: Introduce HPB feature
scsi: ufs: L2P m
This is a patch for parameters to be used for UFS features layer and HPB
module.
Reviewed-by: Can Guo
Tested-by: Bean Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/ufs.h | 12
1 file changed, 12 insertions(+)
diff --git a/drivers/scsi/ufs/ufs.h b/drivers/scsi/ufs/ufs.h
-by: Daejun Park
---
drivers/scsi/ufs/Kconfig | 18 +
drivers/scsi/ufs/Makefile | 1 +
drivers/scsi/ufs/ufshcd.c | 42 +++
drivers/scsi/ufs/ufshcd.h | 9 +
drivers/scsi/ufs/ufshpb.c | 738 ++
drivers/scsi/ufs/ufshpb.h | 169 +
6 files changed, 977
ion.
Reviewed-by: Can Guo
Tested-by: Bean Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/ufshpb.c | 973 +-
drivers/scsi/ufs/ufshpb.h | 72 +++
2 files changed, 1039 insertions(+), 6 deletions(-)
diff --git a/drivers/scsi/ufs/ufshpb.c b/drive
, the maximum read I/O size that can be converted to
HPB read is 4KB.
The dirty map of the active sub-region prevents an incorrect HPB read that
has stale physical page number which is updated by previous write I/O.
Tested-by: Bean Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/ufshpb.c | 227
> > Hi All,
> >
> > I want to know how to improve this patch.
>
> Drop it and fix the actual UFS feature to not be so horrible?
>
Hello Christoph,
Thanks for the comment.
The HPB is essential feature for mobile devices.
NAND-based storage needs logical to physical mapping, which is cached
is series patches are based on the 5.9/scsi-queue branch.
[1]:
https://www.usenix.org/conference/hotstorage17/program/presentation/jeong
Daejun park (4):
scsi: ufs: Add HPB feature related parameters
scsi: ufs: Introduce HPB feature
scsi: ufs: L2P map management for HPB read
scsi: ufs: Prepare HPB
This is a patch for parameters to be used for HPB feature.
Acked-by: Avri Altman
Reviewed-by: Can Guo
Tested-by: Bean Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/ufs.h | 13 +
1 file changed, 13 insertions(+)
diff --git a/drivers/scsi/ufs/ufs.h b/drivers/scsi/ufs/ufs.h
, the maximum read I/O size that can be converted to
HPB read is 4KB.
The dirty map of the active sub-region prevents an incorrect HPB read that
has stale physical page number which is updated by previous write I/O.
Acked-by: Avri Altman
Tested-by: Bean Huo
Signed-off-by: Daejun Park
---
drivers/scsi
=4096
Acked-by: Avri Altman
Tested-by: Bean Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/Kconfig | 9 +
drivers/scsi/ufs/Makefile | 1 +
drivers/scsi/ufs/ufshcd.c | 58
drivers/scsi/ufs/ufshcd.h | 22 +-
drivers/scsi/ufs/ufshpb.c | 596
ompletion.
Acked-by: Avri Altman
Tested-by: Bean Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/ufs.h| 34 ++
drivers/scsi/ufs/ufshpb.c | 996 +-
drivers/scsi/ufs/ufshpb.h | 55 +++
3 files changed, 1082 insertions(+), 3 deletions(-)
diff --git a/driver
Hi Bart,
On 2020-08-06 02:11, Daejun Park wrote:
> > +static void ufshpb_issue_hpb_reset_query(struct ufs_hba *hba)
> > +{
> > +int err;
> > +int retries;
> > +
> > +for (retries = 0; retries < HPB_RESET_REQ_RETRIES; retries++) {
&
Hi Bart,
> On 2020-08-06 02:02, Daejun Park wrote:
> > @@ -537,6 +548,7 @@ struct ufs_dev_info {
> > u8 *model;
> > u16 wspecversion;
> > u32 clk_gating_wait_us;
> > +u8 b_ufs_feature_sup;
> > u32 d_ext_ufs_feature_sup;
>
Hi Bart,
On 2020-08-06 02:11, Daejun Park wrote:
> > This is a patch for the HPB feature.
> > This patch adds HPB function calls to UFS core driver.
> >
> > The mininum size of the memory pool used in the HPB is implemented as a
> ^^^
> minimum
On 2020-08-06 02:15, Daejun Park wrote:
> > +req->end_io_data = (void *)map_req;
>
> Please leave the (void *) cast out since explicit casts from a non-void
> to a void pointer are not necessary in C.
OK, I will fix it.
> > +static inline struct
> > +ufshpb
On 2020-08-06 02:18, Daejun Park wrote:
> > +static inline u32 ufshpb_get_lpn(struct scsi_cmnd *cmnd)
> > +{
> > +return blk_rq_pos(cmnd->request) >>
> > +(ilog2(cmnd->device->sector_size) - 9);
> > +}
>
> Please use sectors_to_logi
Hi Bart,
> > +static unsigned int ufshpb_host_map_kbytes = 1024;
>
> A comment that explains where this value comes from would be welcome.
I will add a follows comment and change defalut value 1024 to 2048.
"A cache size of 2MB can cache ppn in the 1GB range."
> > +static struct ufshpb_req
Hi, Bart
> > diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h
> > index 618b253e5ec8..df30622a2b67 100644
> > --- a/drivers/scsi/ufs/ufshcd.h
> > +++ b/drivers/scsi/ufs/ufshcd.h
> > @@ -588,6 +588,24 @@ struct ufs_hba_variant_params {
> > u16 hba_enable_delay_us;
> > u32
is shown to have a performance improvement of 58 - 67% for random read
workload. [1]
This series patches are based on the 5.9/scsi-queue branch.
[1]:
https://www.usenix.org/conference/hotstorage17/program/presentation/jeong
Daejun park (4):
scsi: ufs: Add HPB feature related parameters
scsi: ufs: In
This is a patch for parameters to be used for HPB feature.
Reviewed-by: Bart Van Assche
Reviewed-by: Can Guo
Acked-by: Avri Altman
Tested-by: Bean Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/ufs.h | 13 +
1 file changed, 13 insertions(+)
diff --git a/drivers/scsi/ufs
-by: Daejun Park
---
drivers/scsi/ufs/ufshpb.c | 231 ++
1 file changed, 231 insertions(+)
diff --git a/drivers/scsi/ufs/ufshpb.c b/drivers/scsi/ufs/ufshpb.c
index 2ac4cd6e4aa4..8ad2a711dd16 100644
--- a/drivers/scsi/ufs/ufshpb.c
+++ b/drivers/scsi/ufs/ufshpb.c
This is a patch for the HPB feature.
This patch adds HPB function calls to UFS core driver.
Acked-by: Bart Van Assche
Acked-by: Avri Altman
Tested-by: Bean Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/Kconfig | 9 +
drivers/scsi/ufs/Makefile | 1 +
drivers/scsi/ufs/ufshcd.c | 60
to-do" lists.
Each hpb lun maintains 2 "to-do" lists:
hpb->lh_inact_rgn - regions to be inactivated, and
hpb->lh_act_srgn - subregions to be activated
Those lists are maintained on IO completion.
Acked-by: Avri Altman
Tested-by: Bean Huo
Signed-off-by: Daejun Park
---
drive
heck whether
> the device transport protocol is ready or not. This issue is resolved by
> releasing NOP_OUT_TIMEOUT value.
>
> NOP_OUT_TIMEOUT: 30ms -> 50ms
>
> Signed-off-by: Daejun Park
> ---
> drivers/scsi/ufs/ufshcd.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 delet
>> On Wed, Sep 16, 2020 at 08:05:17AM +0900, Daejun Park wrote:
>>> Hi All,
>>>
>>> I want to know how to improve this patch.
>>
>> Drop it and fix the actual UFS feature to not be so horrible?
>
> A new UFS specification could be defined and
ed during initialization to check whether
> > the device transport protocol is ready or not. This issue is resolved by
> > releasing NOP_OUT_TIMEOUT value.
> >
> > NOP_OUT_TIMEOUT: 30ms -> 50ms
> >
> > Signed-off-by: Daejun Park
> Acked-by: Avri Altman
Thanks f
e. For active sub-region, the HPB caches through ufshpb_map
> request. For the in-active region, the HPB discards the L2P map.
> When a write I/O occurs in an active sub-region area, associated dirty
> bitmap checked as dirty for preventing stale read.
>
> HPB is shown to have a perform
For the in-active region, the HPB discards the L2P map.
When a write I/O occurs in an active sub-region area, associated dirty
bitmap checked as dirty for preventing stale read.
HPB is shown to have a performance improvement of 58 - 67% for random read
workload. [1]
[1]:
https://www.usenix.org/conf
-by: kernel test robot
Signed-off-by: Daejun Park
---
Documentation/ABI/testing/sysfs-driver-ufs | 71 +++
drivers/scsi/ufs/Kconfig | 9 +
drivers/scsi/ufs/Makefile | 1 +
drivers/scsi/ufs/ufs-sysfs.c | 18 +
drivers/scsi/ufs/ufs.h
Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/ufshcd.c | 2 +
drivers/scsi/ufs/ufshpb.c | 232 ++
drivers/scsi/ufs/ufshpb.h | 2 +
3 files changed, 236 insertions(+)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 0ec0ed237140
d-by: Bean Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/ufs.h| 36 ++
drivers/scsi/ufs/ufshcd.c | 4 +
drivers/scsi/ufs/ufshpb.c | 993 +-
drivers/scsi/ufs/ufshpb.h | 65 +++
4 files changed, 1083 insertions(+), 15 deletions(-)
diff --git a/driver
Hi, Greg
> > NAND flash memory-based storage devices use Flash Translation Layer (FTL)
> > to translate logical addresses of I/O requests to corresponding flash
> > memory addresses. Mobile storage devices typically have RAM with
> > constrained size, thus lack in memory to keep the whole mapping
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
> > transl
On 12/17/20 5:05 PM, Daejun Park wrote:
> > Here is my iozone script:
> > iozone -r 4k -+n -i2 -ecI -t 16 -l 16 -u 16
> > -s $IO_RANGE/16 -F mnt/tmp_1 mnt/tmp_2 mnt/tmp_3 mnt/tmp_4
> > mnt/tmp_5 mnt/tmp_6 mnt/tmp_7 mnt/tmp_8 mnt/tmp_9 mnt/tmp_10 mnt/tmp_11
> > mn
67% for random read
workload. [1]
[1]:
https://www.usenix.org/conference/hotstorage17/program/presentation/jeong
Daejun Park (3):
scsi: ufs: Introduce HPB feature
scsi: ufs: L2P map management for HPB read
scsi: ufs: Prepare HPB read for cached sub-region
drivers/scsi/ufs/Kconfig |9 +
driver
Huo
Signed-off-by: Daejun Park
---
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
Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/ufshcd.c | 2 +
drivers/scsi/ufs/ufshpb.c | 232 ++
drivers/scsi/ufs/ufshpb.h | 2 +
3 files changed, 236 insertions(+)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 0ec0ed237140
d-by: Bean Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/ufs.h| 36 ++
drivers/scsi/ufs/ufshcd.c |3 +
drivers/scsi/ufs/ufshpb.c | 1003 -
drivers/scsi/ufs/ufshpb.h | 63 ++-
4 files changed, 1089 insertions(+), 16 deletions(-)
diff --git
On Sat, Dec 19, 2020 at 12:30:39PM +0900, Daejun Park wrote:
> > @@ -323,6 +325,8 @@ static struct attribute *ufs_sysfs_device_descriptor[]
> > = {
> > _attr_number_of_secure_wpa.attr,
> > _attr_psa_max_data_size.attr,
> > _attr_psa_state_timeout.attr,
own to have a performance improvement of 58 - 67% for random read
workload. [1]
[1]:
https://www.usenix.org/conference/hotstorage17/program/presentation/jeong
Daejun Park (3):
scsi: ufs: Introduce HPB feature
scsi: ufs: L2P map management for HPB read
scsi: ufs: Prepare HPB read for cached
Huo
Signed-off-by: Daejun Park
---
Documentation/ABI/testing/sysfs-driver-ufs | 71 +++
drivers/scsi/ufs/Kconfig | 9 +
drivers/scsi/ufs/Makefile | 1 +
drivers/scsi/ufs/ufs-sysfs.c | 18 +
drivers/scsi/ufs/ufs.h | 13
d-by: Bean Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/ufs.h| 36 ++
drivers/scsi/ufs/ufshcd.c |3 +
drivers/scsi/ufs/ufshpb.c | 1003 -
drivers/scsi/ufs/ufshpb.h | 63 ++-
4 files changed, 1089 insertions(+), 16 deletions(-)
diff --git
Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/ufshcd.c | 2 +
drivers/scsi/ufs/ufshpb.c | 232 ++
drivers/scsi/ufs/ufshpb.h | 2 +
3 files changed, 236 insertions(+)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 0ec0ed237140
Hi Greg, Avri
> On Sat, Dec 19, 2020 at 12:48:31PM +, Avri Altman wrote:
> > >
> > >
> > > On Sat, Dec 19, 2020 at 06:18:47PM +0900, Daejun Park wrote:
> > > > +static int ufshpb_get_state(struct ufshpb_lu *hpb)
> > &g
Hi Greg,
> > +static void ufshpb_hpb_lu_prepared(struct ufs_hba *hba)
> > +{
> > + struct ufshpb_lu *hpb;
> > + struct scsi_device *sdev;
> > + bool init_success;
> > +
> > + init_success = !ufshpb_check_hpb_reset_query(hba);
> > +
> > + shost_for_each_device(sdev, hba->host) {
> > +
I/O occurs in an active sub-region area, associated dirty
bitmap checked as dirty for preventing stale read.
HPB is shown to have a performance improvement of 58 - 67% for random read
workload. [1]
[1]:
https://www.usenix.org/conference/hotstorage17/program/presentation/jeong
Daejun Park (3):
sc
-by: Daejun Park
---
Documentation/ABI/testing/sysfs-driver-ufs | 71 +++
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
Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/ufshcd.c | 2 +
drivers/scsi/ufs/ufshpb.c | 232 ++
drivers/scsi/ufs/ufshpb.h | 2 +
3 files changed, 236 insertions(+)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 0ec0ed237140
d-by: Bean Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/ufs.h| 36 ++
drivers/scsi/ufs/ufshcd.c | 3 +
drivers/scsi/ufs/ufshpb.c | 992 +-
drivers/scsi/ufs/ufshpb.h | 65 ++-
4 files changed, 1080 insertions(+), 16 deletions(-)
diff --git a/driver
In the fast commit, it adds REQ_FUA and REQ_PREFLUSH on each fast commit
block when barrier is enabled. However, in recovery phase, ext4 compares
CRC value in the tail. So it is sufficient adds REQ_FUA and REQ_PREFLUSH
on the block that has tail.
Signed-off-by: Daejun Park
---
fs/ext4
g 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
> > Acked-by: Avri Altman
-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
4 | 230.6| 214.8| -15.8 |
| 5 | 232.0| 218.1| -13.9 |
| 6 | 231.9| 212.6| -19.3 |
+---+--+--+---+
This series patches are based on the 5.11/scsi-queue branch.
[1]:
https://www.usenix.org/conference/hotstorage17/program/presentation/jeong
D
d-by: Bean Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/ufs.h| 36 ++
drivers/scsi/ufs/ufshcd.c |3 +
drivers/scsi/ufs/ufshpb.c | 1003 -
drivers/scsi/ufs/ufshpb.h | 63 ++-
4 files changed, 1089 insertions(+), 16 deletions(-)
diff --git
Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/ufshcd.c | 2 +
drivers/scsi/ufs/ufshpb.c | 232 ++
drivers/scsi/ufs/ufshpb.h | 2 +
3 files changed, 236 insertions(+)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index
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 cr
After full/fast commit, entries in staging queue are promoted to main
queue. In ext4_fs_cleanup function, it splice to staging queue to
staging queue.
Signed-off-by: Daejun Park
---
fs/ext4/fast_commit.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/ext4/fast_commit.c b
list_for_each + list_entry can be changed to list_for_each_entry
It reduces number of variables and lines.
Signed-off-by: Daejun Park
---
fs/ext4/fast_commit.c | 7 ++-
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/fs/ext4/fast_commit.c b/fs/ext4/fast_commit.c
index
Hi, Can Guo
>Since WB feature has been added, WB related sysfs entries can be accessed
>even when an UFS device does not support WB feature. In that case, the
>descriptors which are not supported by the UFS device may be wrongly
>reported when they are accessed from their corrsponding sysfs
> incorrect access by checking buff_len at first time.
>>
>> Thanks,
>> Daejun
>
>Yes, I considered that during bootup time, but the current driver won't
>even
>access WB related stuffs it is not supported (there are checks against
>UFS version
>and feature
transport protocol is ready or not. This issue is resolved by
releasing NOP_OUT_TIMEOUT value.
NOP_OUT_TIMEOUT: 30ms -> 50ms
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/ufshcd.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/
ted dirty
bitmap checked as dirty for preventing stale read.
HPB is shown to have a performance improvement of 58 - 67% for random read
workload. [1]
This series patches are based on the 5.9/scsi-queue branch.
[1]:
https://www.usenix.org/conference/hotstorage17/program/presentation/jeong
Daejun park
This is a patch for parameters to be used for HPB feature.
Reviewed-by: Bart Van Assche
Reviewed-by: Can Guo
Acked-by: Avri Altman
Tested-by: Bean Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/ufs.h | 13 +
1 file changed, 13 insertions(+)
diff --git a/drivers/scsi/ufs
This is a patch for the HPB feature.
This patch adds HPB function calls to UFS core driver.
Reviewed-by: Bart Van Assche
Acked-by: Avri Altman
Tested-by: Bean Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/Kconfig | 10 +
drivers/scsi/ufs/Makefile | 1 +
drivers/scsi/ufs/ufshcd.c
to-do" lists.
Each hpb lun maintains 2 "to-do" lists:
hpb->lh_inact_rgn - regions to be inactivated, and
hpb->lh_act_srgn - subregions to be activated
Those lists are maintained on IO completion.
Reviewed-by: Bart Van Assche
Acked-by: Avri Altman
Tested-by: Bean Huo
-by: Daejun Park
---
drivers/scsi/ufs/ufshpb.c | 231 ++
1 file changed, 231 insertions(+)
diff --git a/drivers/scsi/ufs/ufshpb.c b/drivers/scsi/ufs/ufshpb.c
index 2ac4cd6e4aa4..8ad2a711dd16 100644
--- a/drivers/scsi/ufs/ufshpb.c
+++ b/drivers/scsi/ufs/ufshpb.c
d.
HPB is shown to have a performance improvement of 58 - 67% for random read
workload. [1]
This series patches are based on the 5.9/scsi-queue branch.
[1]:
https://www.usenix.org/conference/hotstorage17/program/presentation/jeong
Daejun park (4):
scsi: ufs: Add UFS feature related parameter
scsi: uf
This is a patch for parameters to be used for UFS feature and HPB
module.
Reviewed-by: Can Guo
Tested-by: Bean Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/ufs.h | 12
1 file changed, 12 insertions(+)
diff --git a/drivers/scsi/ufs/ufs.h b/drivers/scsi/ufs/ufs.h
index
This is a patch for the HPB feature.
This patch adds HPB function calls to UFS core driver.
The mininum size of the memory pool used in the HPB is implemented as a
Kconfig parameter (SCSI_UFS_HPB_HOST_MEM), so that it can be configurable.
Tested-by: Bean Huo
Signed-off-by: Daejun Park
tion.
Tested-by: Bean Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/ufshpb.c | 973 +-
drivers/scsi/ufs/ufshpb.h | 72 +++
2 files changed, 1039 insertions(+), 6 deletions(-)
diff --git a/drivers/scsi/ufs/ufshpb.c b/drivers/scsi/ufs/ufshpb.c
index
, the maximum read I/O size that can be converted to
HPB read is 4KB.
The dirty map of the active sub-region prevents an incorrect HPB read that
has stale physical page number which is updated by previous write I/O.
Tested-by: Bean Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/ufshpb.c | 227
Hi Can Guo,
>
> On 2020-08-05 11:37, Daejun Park wrote:
> > Changelog:
> >
> > v6 -> v7
> > 1. Remove UFS feature layer.
> > 2. Cleanup for sparse error.
> >
> > v5 -> v6
> > Change base commit to b53293fa662e28ae0cdd40828dc64
Hi Avri,
> >
> > On Thu, 2020-08-06 at 10:12 +, Avri Altman wrote:
> > > > >
> > > >
> > > > we didn't see you Acked-by in the pathwork, would you like to add
> > > > them?
> > > > Just for reminding us that you have agreed to mainline this series
> > > > patchset.
> > >
> > > I acked it -
>
preventing stale read.
HPB is shown to have a performance improvement of 58 - 67% for random read
workload. [1]
This series patches are based on the 5.10/scsi-queue branch.
[1]:
https://www.usenix.org/conference/hotstorage17/program/presentation/jeong
Daejun park (4):
scsi: ufs: Add HPB f
This is a patch for parameters to be used for HPB feature.
Reviewed-by: Bart Van Assche
Reviewed-by: Can Guo
Acked-by: Avri Altman
Tested-by: Bean Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/ufs.h | 13 +
1 file changed, 13 insertions(+)
diff --git a/drivers/scsi/ufs
-by: Daejun Park
---
drivers/scsi/ufs/ufshpb.c | 231 ++
1 file changed, 231 insertions(+)
diff --git a/drivers/scsi/ufs/ufshpb.c b/drivers/scsi/ufs/ufshpb.c
index 0dd185758dde..03485853a45b 100644
--- a/drivers/scsi/ufs/ufshpb.c
+++ b/drivers/scsi/ufs/ufshpb.c
This is a patch for the HPB feature.
This patch adds HPB function calls to UFS core driver.
Reviewed-by: Bart Van Assche
Acked-by: Avri Altman
Tested-by: Bean Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/Kconfig | 10 +
drivers/scsi/ufs/Makefile | 1 +
drivers/scsi/ufs/ufshcd.c
to-do" lists.
Each hpb lun maintains 2 "to-do" lists:
hpb->lh_inact_rgn - regions to be inactivated, and
hpb->lh_act_srgn - subregions to be activated
Those lists are maintained on IO completion.
Reviewed-by: Bart Van Assche
Acked-by: Avri Altman
Tested-by: Bean Huo
>From 818a76a9aee5bf225565264274d211edb07bae7d Mon Sep 17 00:00:00 2001
From: Daejun Park
Date: Tue, 3 Nov 2020 15:30:26 +0900
In the fs-based mode of F2FS, the mapping of hot/warm node to
WRITE_LIFE_NOT_SET should be changed to WRITE_LIFE_SHORT.
As a result of analyzing the write patt
>>>From 818a76a9aee5bf225565264274d211edb07bae7d Mon Sep 17 00:00:00 2001
>> From: Daejun Park
>> Date: Tue, 3 Nov 2020 15:30:26 +0900
>>
>>
>> In the fs-based mode of F2FS, the mapping of hot/warm node to
>> WRITE_LIFE_NOT_SET should be ch
the wrong stream seperation.
* Liang, Yu, et al. "An empirical study of F2FS on mobile devices." 2017
IEEE 23rd International Conference on Embedded and Real-Time Computing
Systems and Applications (RTCSA).
Signed-off-by: Daejun Park
---
v2: update documentation and comments
---
Doc
ries patches are based on the 5.11/scsi-queue branch.
[1]:
https://www.usenix.org/conference/hotstorage17/program/presentation/jeong
Daejun park (3):
scsi: ufs: Introduce HPB feature
scsi: ufs: L2P map management for HPB read
scsi: ufs: Prepare HPB read for cached sub-region
drivers/scsi/ufs
This is a patch for the HPB feature.
This patch adds HPB function calls to UFS core driver.
Reviewed-by: Bart Van Assche
Acked-by: Avri Altman
Tested-by: Bean Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/Kconfig | 9 +
drivers/scsi/ufs/Makefile| 1 +
drivers/scsi/ufs/ufs
-by: Daejun Park
---
drivers/scsi/ufs/ufshcd.c | 2 +
drivers/scsi/ufs/ufshpb.c | 232 ++
drivers/scsi/ufs/ufshpb.h | 2 +
3 files changed, 236 insertions(+)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index bff919dcc164..71793c3b0f4c 100644
to-do" lists.
Each hpb lun maintains 2 "to-do" lists:
hpb->lh_inact_rgn - regions to be inactivated, and
hpb->lh_act_srgn - subregions to be activated
Those lists are maintained on IO completion.
Reviewed-by: Bart Van Assche
Acked-by: Avri Altman
Tested-by: Bean Huo
Hi Avri,
Thanks for adding HCM support on HPB.
I have some opinion for this patch.
> +#define WORK_PENDING 0
> +#define ACTIVATION_THRSHLD 4 /* 4 IOs */
Rather than fixing it with macro, how about using sysfs and make it
configurable?
> @@ -306,12 +325,39 @@ void ufshpb_prep(struct ufs_hba
Hi Avri,
> + list_for_each_entry_safe(rgn, next_rgn, _info->lh_lru_rgn,
> + list_lru_rgn)
How about replace list_for_each_entry_safe to list_for_each_entry?
Thanks,
Daejun
Hi Avri,
> + /*
> + * in host control mode, verify that the exiting region
> + * has less reads
> + */
> + if (ufshpb_mode == HPB_HOST_CONTROL &&
> + atomic64_read(>reads) > (EVICTION_THRSHLD >> 1))
Why we use shifted
> > > - timeout_polling_interval_ms - the frequency in which the delayed
> > > worker that checks the read_timeouts is awaken.
> >
> > You create new sysfs files, but fail to document them in
> > Documentation/ABI/ which is where the above information needs to go :(
> Done.
> Will wait to see
d-by: Bean Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/ufs.h| 36 ++
drivers/scsi/ufs/ufshcd.c | 4 +
drivers/scsi/ufs/ufshpb.c | 993 +-
drivers/scsi/ufs/ufshpb.h | 65 +++
4 files changed, 1083 insertions(+), 15 deletions(-)
diff --git a/driver
Huo
Signed-off-by: Daejun Park
---
drivers/scsi/ufs/ufshcd.c | 2 +
drivers/scsi/ufs/ufshpb.c | 234 ++
drivers/scsi/ufs/ufshpb.h | 2 +
3 files changed, 238 insertions(+)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 52e48de8d27c
ociated dirty
bitmap checked as dirty for preventing stale read.
HPB is shown to have a performance improvement of 58 - 67% for random read
workload. [1]
[1]:
https://www.usenix.org/conference/hotstorage17/program/presentation/jeong
Daejun Park (3):
scsi: ufs: Introduce HPB feature
scsi: ufs
-by: kernel test robot
Signed-off-by: Daejun Park
---
Documentation/ABI/testing/sysfs-driver-ufs | 71 +++
drivers/scsi/ufs/Kconfig | 9 +
drivers/scsi/ufs/Makefile | 1 +
drivers/scsi/ufs/ufs-sysfs.c | 18 +
drivers/scsi/ufs/ufs.h
I am Daejun Park who is working to patch HPB driver.
Thank you for your comment, and the following is our answer.
> Splitting the UFS driver into multiple modules would be great if the
> interface between these modules can be kept small and elegant. However,
> I'm not sure that this
On 2020-05-26 Bart Van Assche wrote:
>On 2020-05-25 23:15, Avri Altman wrote:
>>> On 2020-05-24 22:40, Daejun Park wrote:
>>>> The HPB driver is close to the UFS core function, but it is not essential
>>>> for operating UFS device. With reference to this ar
rg/conference/hotstorage17/program/presentation/jeong
Daejun park (5):
scsi: ufs: Add UFS feature related parameter
scsi: ufs: Add UFS feature layer
scsi: ufs: Introduce HPB module
scsi: ufs: L2P map management for HPB read
scsi: ufs: Prepare HPB read for cached sub-region
drivers/scsi/ufs/Kconfi
1 - 100 of 305 matches
Mail list logo