On 10/28/21 8:27 AM, Christoph Hellwig wrote:
On Thu, Oct 28, 2021 at 10:28:01AM -0400, James Bottomley wrote:
If the block people are happy with this, then I'm OK with it, but it
doesn't look like you've solved the fanout deadlock problem because
this new mechanism is still going to allocate a new tag.
Yes, same problem as before.
Hi Christoph,
I spent some time looking around for other examples of allocating and
inserting a request from inside block layer callbacks. I only found one
such example, namely in the NVMe core. nvme_timeout() calls
nvme_alloc_request() and blk_execute_rq_nowait(). The difference between
what the UFS HPB code is doing and what nvme_timeout() does doesn't seem
that big to me. For clarity, I don't like the UFS HPB protocol nor how
support for that protocol has been implemented. However, I don't see how
the UFS HPB implementation would complicate maintenance of the block
layer core. Am I perhaps missing something?
Thanks,
Bart.