Re: [PATCH v2 0/5] UFS Host Performance Booster (HPB v1.0) driver

From: Christoph Hellwig
Date: Wed Apr 22 2020 - 02:43:38 EST


On Thu, Apr 16, 2020 at 10:31:21PM +0200, huobean@xxxxxxxxx wrote:
> From: Bean Huo <beanhuo@xxxxxxxxxx>
>
> Hi,
> I disclose my development/changes on UFS HPB (UFS Host Performance Booster) to
> the community, as this would enable more UFS developers to test and start an
> iterative review and update process.
>
> The HPB is defined in Jedec Standard Universal Flash (UFS) Host Performance
> Booster (HPB) Extension Version 1.0, which is designed to improve read
> performance by utilizing the host side memory. Based on our testing, the HPB
> can increase the random read performance by up to about 46% in the random read.
>
> The original HPB driver is from [1]. Based on it, I did optimizations,
> simplifications, fixed reliability issues, implemented HPB host control mode
> and make it much more readable. which's pushed to here [2] as V1.
>
> To avoid touching the traditional SCSI core, the HPB driver in this series HPB
> patch chooses to develop under SCSI sub-system layer, and sits the same layer
> with UFSHCD. At the same time, to minimize changes to UFSHCD driver, the HPB
> driver submits its HPB READ BUFFER and HPB WRITE BUFFER requests to the scsi
> device->request_queueu to execute, rather than that directly go through
> raw UPIU request path.

This feature is completley broken, and rather dangerous due to feeding
"physical" addresses looked up by the host in. I do not think we should
support something that broken in Linux.

Independent of that using two requests in the I/O path is not going
to fly either. The whole thing seems like an exercise in benchmarketing.