From: huobean@gmail.com
To: alim.akhtar@samsung.com, avri.altman@wdc.com,
asutoshd@codeaurora.org, jejb@linux.ibm.com,
martin.petersen@oracle.com, stanley.chu@mediatek.com,
beanhuo@micron.com, bvanassche@acm.org, tomas.winkler@intel.com,
cang@codeaurora.org, rdunlap@infradead.org
Cc: linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org,
hch@infradead.org
Subject: [RESENT PATCH RFC v3 0/5] scsi: ufs: add UFS Host Performance Booster(HPB) support
Date: Mon, 4 May 2020 16:20:27 +0200 [thread overview]
Message-ID: <20200504142032.16619-1-beanhuo@micron.com> (raw)
From: Bean Huo <beanhuo@micron.com>
Re-sent this patchset since the reference link missed in the cover letter.
This patchset is an RFC to add UFS HPB support in the upstream Linux.
Before this series, I have submitted two versions [2] and [4] of UFS
HPB driver in the community. The first two series HPB driver patchsets
follow the Samsung HPB driver[1] approach, in which the HPB driver submits
its HPB READ BUFFER and HPB WRITE BUFFER requests to the SCSI
device->request_queueu to execute. Since this fly submission is unacceptable,
in this RFC version, I changed it, and now the HPB requests will be directly
submitted to UFS device, don't go backwards to SCSI mid-layer. In this
approach, the L2P mapping entries loading path will be shorter, and the
latency is smaller.
Regarding the UFS HPB feature, which is defined in Jedec Standard Universal
Flash (UFS) Host Performance Booster (HPB) Extension Version 1.0, its purpose
is to improve read performance by utilizing the host side memory. For the more
detail information about HPB, you can refer to the HPB Spec. If the approach
in this RFC patchset is accepted and feasible, it is necessary to add a
document to detail HPB feature and its implementation later.
Based on the Avri's comments in the second patchset, to be reviewable patches,
I shortened HPB driver, deleted HPB host control mode. Also, for change tracing,
this patch is RFC v3, including the first two patchsets changes.
This series patch is still based on the [3] branch 5.8/scsi-queue
v2--v3
1. delete GET_BYTE_* and SHIFT_BYTE_* macro definition , using
get_unaligned_*()/put_unaligned_*() instead. (Bart Van Assche)
2. change Kconfig help message (Randy Dunlap)
3. delete HPB host control mode code
4. change the way of submission of HPB request, and let the HPB
driver directly submit HPB request to UFS.
v1--v2:
1. Rebased the patch on the [3] branch 5.8/scsi-queue
2. Optimized and simplified several functions
3. Add parameter read_threshold in HPB sysfs, by which the user can change
read_threshold for the HPB host control mode
4. Add HPB memory limitation, let the user adjust its size according to the
system memory capacity
[1] https://github.com/OpenMPDK/HPBDriver
[2] https://www.spinics.net/lists/kernel/msg3449471.html
[3] https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git
[4] https://marc.info/?l=linux-scsi&m=158706915110258&w=4
Bean Huo (5):
scsi; ufs: add device descriptor for Host Performance Booster
scsi: ufs: make ufshcd_read_unit_desc_param() non-static func
scsi: ufs: add ufs_features parameter in structure ufs_dev_info
scsi: ufs: add unit and geometry parameters for HPB
scsi: ufs: UFS Host Performance Booster(HPB) driver
drivers/scsi/ufs/Kconfig | 62 +
drivers/scsi/ufs/Makefile | 1 +
drivers/scsi/ufs/ufs.h | 15 +
drivers/scsi/ufs/ufshcd.c | 245 +++-
drivers/scsi/ufs/ufshcd.h | 28 +-
drivers/scsi/ufs/ufshpb.c | 2767 +++++++++++++++++++++++++++++++++++++
drivers/scsi/ufs/ufshpb.h | 423 ++++++
7 files changed, 3534 insertions(+), 7 deletions(-)
create mode 100644 drivers/scsi/ufs/ufshpb.c
create mode 100644 drivers/scsi/ufs/ufshpb.h
--
2.17.1
next reply other threads:[~2020-05-04 14:20 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-04 14:20 huobean [this message]
2020-05-04 14:20 ` [RESENT PATCH RFC v3 1/5] scsi; ufs: add device descriptor for Host Performance Booster huobean
2020-05-08 0:59 ` Bart Van Assche
2020-05-08 9:09 ` Bean Huo
2020-05-04 14:20 ` [RESENT PATCH RFC v3 2/5] scsi: ufs: make ufshcd_read_unit_desc_param() non-static func huobean
2020-05-04 14:20 ` [RESENT PATCH RFC v3 3/5] scsi: ufs: add ufs_features parameter in structure ufs_dev_info huobean
2020-05-08 1:02 ` Bart Van Assche
2020-05-08 9:15 ` Bean Huo
2020-05-04 14:20 ` [RESENT PATCH RFC v3 4/5] scsi: ufs: add unit and geometry parameters for HPB huobean
2020-05-08 1:04 ` Bart Van Assche
2020-05-08 10:15 ` Bean Huo
2020-05-04 14:20 ` [RESENT PATCH RFC v3 5/5] scsi: ufs: UFS Host Performance Booster(HPB) driver huobean
2020-05-08 1:34 ` Randy Dunlap
2020-05-08 10:08 ` Bean Huo
2020-05-08 3:21 ` Bart Van Assche
2020-05-08 14:44 ` Bean Huo
2020-05-08 20:11 ` Bart Van Assche
2020-05-08 11:38 ` Avri Altman
2020-05-08 12:15 ` Bean Huo
2020-05-08 14:26 ` Alim Akhtar
2020-05-08 14:59 ` Bean Huo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200504142032.16619-1-beanhuo@micron.com \
--to=huobean@gmail.com \
--cc=alim.akhtar@samsung.com \
--cc=asutoshd@codeaurora.org \
--cc=avri.altman@wdc.com \
--cc=beanhuo@micron.com \
--cc=bvanassche@acm.org \
--cc=cang@codeaurora.org \
--cc=hch@infradead.org \
--cc=jejb@linux.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=rdunlap@infradead.org \
--cc=stanley.chu@mediatek.com \
--cc=tomas.winkler@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).