On 10/5/21 4:23 AM, John Garry wrote: > Currently a full set of static requests are allocated per hw queue per > tagset when shared sbitmap is used. > > However, only tagset->queue_depth number of requests may be active at > any given time. As such, only tagset->queue_depth number of static > requests are required. > > The same goes for using an IO scheduler, which allocates a full set of > static requests per hw queue per request queue. > > This series changes shared sbitmap support by using a shared tags per > tagset and request queue. Ming suggested something along those lines in > v1 review. In using a shared tags, the static rqs also become shared, > reducing the number of sets of static rqs, reducing memory usage. > > Patch "blk-mq: Use shared tags for shared sbitmap support" is a bit big, > and could potentially be broken down. But then maintaining ability to > bisect becomes harder and each sub-patch would get more convoluted. > > For megaraid sas driver on my 128-CPU arm64 system with 1x SATA disk, we > save approx. 300MB(!) [370MB -> 60MB] > > Baseline is 1b2d1439fc25 (block/for-next) Merge branch 'for-5.16/io_uring' > into for-next Let's get this queued up for testing, thanks John. -- Jens Axboe