Re: [RFC PATCH] blk-mq: Clean up references when freeing rqs
From: John Garry
Date: Thu Dec 10 2020 - 05:46:29 EST
Hi Ming,
On 10/12/2020 02:07, Ming Lei wrote:
Apart from this, my concern is that we come with for a solution, but it's a
complicated solution and may not be accepted as this issue is not seen as a
problem in practice.
If that is the case, I'd suggest to consider the solution in the
following link:
https://lore.kernel.org/linux-block/20200820180335.3109216-1-ming.lei@xxxxxxxxxx/
At least, the idea is simple, which can be extended to support allocate driver tags
request pool dynamically.
As I see with your approach, we may still iterate a stale request, but
it just has not been freed, so just no use-after-free BUG, right? Rather
it is cached until all references dropped. It may be best solution.
So I'll try an experiment today to prove your concern about
blk_mq_queue_tag_busy_iter(). Then look at possible solution which
builds on patch in $subject, and compare.
Thanks,
John