linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Alim Akhtar" <alim.akhtar@samsung.com>
To: "'Avri Altman'" <Avri.Altman@wdc.com>, <huobean@gmail.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>, <seunguk.shin@samsung.com>
Cc: <linux-scsi@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<hch@infradead.org>
Subject: RE: [RESENT PATCH RFC v3 5/5] scsi: ufs: UFS Host Performance Booster(HPB) driver
Date: Fri, 8 May 2020 19:56:16 +0530	[thread overview]
Message-ID: <000401d62544$ab93ead0$02bbc070$@samsung.com> (raw)
In-Reply-To: <BYAPR04MB462904DA704A8FD42436BA9FFCA20@BYAPR04MB4629.namprd04.prod.outlook.com>

+ seunguk.shin (who is one of the original author of the HPB, in case he has some more improvement inputs)

Hi Bean,
I second Avri input on splitting this patch series into logical smaller patches, that will helps reviewers.
Also if you can add support to build HPB as kernel module that will be useful. 
I am looking into the HPB 1.0 spec, will review your patches soon.

Regards,
Alim

> -----Original Message-----
> From: Avri Altman <Avri.Altman@wdc.com>
> Sent: 08 May 2020 17:09
> To: huobean@gmail.com; alim.akhtar@samsung.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: RE: [RESENT PATCH RFC v3 5/5] scsi: ufs: UFS Host Performance
> Booster(HPB) driver
> 
> Hi Bean,
> This patch is ~3,000 lines long.
> Is it possible to divide it into a series of a smaller, more reviewable patches?
> E.g. it can be something like:
> 1) Init part I - Read HPB config
> 2) Init part II - prepare for L2P cache management (introduce here all the new
> data structures, memory allocation, etc.)
> 3) L2P cache management - activation / inactivation / eviction handlers
> 4) Add response API
> 5) Add prep_fn handler - the flows that contruct HPB-READ command.
> Or any other division that makes sense to you.
> 
> Also, Is there a way to avoid all those #ifdefs everywhere?
> 
> Thanks,
> Avri
> 
> 
> >
> > From: Bean Huo <beanhuo@micron.com>
> >
> > This patch is to add support for the UFS Host Performance Booster (HPB
> > v1.0), which is used to improve UFS read performance, especially for
> > the random read.
> >
> > NAND flash-based storage devices, including UFS, have mechanisms to
> > translate logical addresses of requests to the corresponding physical
> > addresses of the flash storage. Traditionally this L2P mapping data is
> > loaded to the internal SRAM in the storage controller. When the
> > capacity of storage is larger, a larger size of SRAM for the L2P map
> > data is required. Since increased SRAM size affects the manufacturing
> > cost significantly, it is not cost-effective to allocate all the
> > amount of SRAM needed to keep all the Logical-address to
> > Physical-address (L2P) map data. Therefore, 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 HPB is a software solution for the above problem, which uses the
> > host’s system memory as a cache for the FTL L2P mapping table. It does
> > not need additional hardware support from the host side. By using HPB,
> > the L2P mapping table can be read from host memory and stored in
> > host-side memory. while reading the operation, the corresponding L2P
> > information will be sent to the UFS device along with the reading
> > request. Since the L2P entry is provided in the read request, UFS
> > device does not have to load L2P entry from flash memory.
> > This will significantly improve random read performance.
> >
> > Signed-off-by: Bean Huo <beanhuo@micron.com>
> > ---
> >  drivers/scsi/ufs/Kconfig  |   62 +
> >  drivers/scsi/ufs/Makefile |    1 +
> >  drivers/scsi/ufs/ufshcd.c |  234 +++-
> >  drivers/scsi/ufs/ufshcd.h |   23 +
> >  drivers/scsi/ufs/ufshpb.c | 2767
> > +++++++++++++++++++++++++++++++++++++
> >  drivers/scsi/ufs/ufshpb.h |  423 ++++++
> >  6 files changed, 3504 insertions(+), 6 deletions(-)  create mode
> > 100644 drivers/scsi/ufs/ufshpb.c  create mode 100644
> > drivers/scsi/ufs/ufshpb.h
> >



  parent reply	other threads:[~2020-05-08 14:26 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-04 14:20 [RESENT PATCH RFC v3 0/5] scsi: ufs: add UFS Host Performance Booster(HPB) support huobean
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 [this message]
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='000401d62544$ab93ead0$02bbc070$@samsung.com' \
    --to=alim.akhtar@samsung.com \
    --cc=Avri.Altman@wdc.com \
    --cc=asutoshd@codeaurora.org \
    --cc=beanhuo@micron.com \
    --cc=bvanassche@acm.org \
    --cc=cang@codeaurora.org \
    --cc=hch@infradead.org \
    --cc=huobean@gmail.com \
    --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=seunguk.shin@samsung.com \
    --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).