On 1/18/19 6:35 AM, Jens Axboe wrote: > On 1/18/19 4:52 AM, Paolo Valente wrote: >> Hi Jens, >> a user reported a warning, followed by freezes, in case he increases >> nr_requests to more than 64 [1]. After reproducing the issues, I >> reverted the commit f0635b8a416e ("bfq: calculate shallow depths at >> init time"), plus the related commit bd7d4ef6a4c9 ("bfq-iosched: >> remove unused variable"). The problem went away. > > For reverts, please put the justification into the actual revert > commit. With this series, if applied as-is, we'd have two patches > in the tree that just says "revert X" without any hint as to why > that was done. > >> Maybe the assumption in commit f0635b8a416e ("bfq: calculate shallow >> depths at init time") does not hold true? > > It apparently doesn't! But let's try and figure this out instead of > blindly reverting it. OK, I think I see it. For the sched_tags > case, when we grow the requests, we allocate a new set. Hence any > old cache would be stale at that point. > > How about something like this? It still keeps the code of having > to update this out of the hot IO path, and only calls it when we > actually change the depths. > > Totally untested... Now tested, and it seems to work for me. Note that haven't tried to reproduce the issue, I just verified that the patch functionally does what it should - when depths are updated, the hook is invoked and updates the internal BFQ depth map. -- Jens Axboe