On Fri, Jan 31, 2025 at 01:03:47PM +0100, Christoph Hellwig wrote: > When block drivers or the core block code perform allocations with a > frozen queue, this could try to recurse into the block device to > reclaim memory and deadlock. Thus all allocations done by a process > that froze a queue need to be done without __GFP_IO and __GFP_FS. > Instead of tying to track all of them down, force a noio scope as > part of freezing the queue. > > Note that nvme is a bit of a mess here due to the non-owner freezes, > and they will be addressed separately. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> All sparc64 builds fail with this patch in the tree. drivers/block/sunvdc.c: In function 'vdc_queue_drain': drivers/block/sunvdc.c:1130:9: error: too many arguments to function 'blk_mq_unquiesce_queue' 1130 | blk_mq_unquiesce_queue(q, memflags); | ^~~~~~~~~~~~~~~~~~~~~~ In file included from drivers/block/sunvdc.c:10: include/linux/blk-mq.h:895:6: note: declared here 895 | void blk_mq_unquiesce_queue(struct request_queue *q); | ^~~~~~~~~~~~~~~~~~~~~~ drivers/block/sunvdc.c:1131:9: error: too few arguments to function 'blk_mq_unfreeze_queue' 1131 | blk_mq_unfreeze_queue(q); | ^~~~~~~~~~~~~~~~~~~~~ include/linux/blk-mq.h:914:1: note: declared here 914 | blk_mq_unfreeze_queue(struct request_queue *q, unsigned int memflags) Bisect log attached for reference. Guenter --- # bad: [8d0efe18f567040a251aef1e00ea39bd3776f5e1] Merge branch 'fixes-v6.14' into testing # good: [69e858e0b8b2ea07759e995aa383e8780d9d140c] Merge tag 'uml-for-linus-6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/uml/linux git bisect start 'HEAD' '69e858e0b8b2' # bad: [1b5f3c51fbb8042efb314484b47b2092cdd40bf6] Merge tag 'riscv-for-linus-6.14-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux git bisect bad 1b5f3c51fbb8042efb314484b47b2092cdd40bf6 # bad: [9755ffd989aa04c298d265c27625806595875895] Merge tag 'block-6.14-20250131' of git://git.kernel.dk/linux git bisect bad 9755ffd989aa04c298d265c27625806595875895 # good: [626d1a1e99583f846e44d6eefdc9d1c8b82c372d] Merge tag 'ceph-for-6.14-rc1' of https://github.com/ceph/ceph-client git bisect good 626d1a1e99583f846e44d6eefdc9d1c8b82c372d # good: [8c8492ca64e79c6e0f433e8c9d2bcbd039ef83d0] io_uring/net: don't retry connect operation on EPOLLERR git bisect good 8c8492ca64e79c6e0f433e8c9d2bcbd039ef83d0 # good: [95d7e8226106e3445b0d877015f4192c47d23637] Merge tag 'ata-6.14-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux git bisect good 95d7e8226106e3445b0d877015f4192c47d23637 # good: [5aa21b0495df1fac6d39f45011c1572bb431c44c] loop: don't clear LO_FLAGS_PARTSCAN on LOOP_SET_STATUS{,64} git bisect good 5aa21b0495df1fac6d39f45011c1572bb431c44c # good: [14ef49657ff3b7156952b2eadcf2e5bafd735795] block: fix nr_hw_queue update racing with disk addition/removal git bisect good 14ef49657ff3b7156952b2eadcf2e5bafd735795 # bad: [1e1a9cecfab3f22ebef0a976f849c87be8d03c1c] block: force noio scope in blk_mq_freeze_queue git bisect bad 1e1a9cecfab3f22ebef0a976f849c87be8d03c1c # first bad commit: [1e1a9cecfab3f22ebef0a976f849c87be8d03c1c] block: force noio scope in blk_mq_freeze_queue