Hi, Executing generic/482 on a XFS filesystem on next-20240308 kernel generates the following call trace, [ 58.151570] ------------[ cut here ]------------ [ 58.155270] WARNING: CPU: 2 PID: 42 at drivers/md/dm-bio-prison-v1.c:128 dm_cell_key_has_valid_range+0x7c/0xa0 [dm_bio_prison] [ 58.163851] Modules linked in: xfs nvme_tcp nvme_fabrics nvme_core sd_mod t10_pi crc64_rocksoft_generic crc64_rocksoft sg virtio_net net_failover virtio_scsi failover ata_generic pata_acpi crct10dif_pclmul crc32_pclmul ata_piix ghash_clmulni_intel libata sha512_ssse3 sha256_ssse3 sha1_ssse3 virtio_pci virtio_pci_legacy_dev virtio_pci_modern_dev serio_raw dm_multipath dm_thin_pool dm_persistent_data dm_bio_prison dm_bufio dm_log_writes dm_flakey loop ext4 mbcache jbd2 vfat fat btrfs blake2b_generic xor zstd_compress raid6_pq sunrpc dm_mirror dm_region_hash dm_log dm_mod be2iscsi bnx2i cnic uio cxgb4i cxgb4 tls cxgb3i cxgb3 mdio libcxgbi libcxgb qla4xxx iscsi_boot_sysfs iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi qemu_fw_cfg aesni_intel crypto_simd cryptd [ 58.219177] CPU: 2 PID: 42 Comm: kworker/u8:3 Not tainted 6.8.0-rc3+ #10 [ 58.223368] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.6.6 08/22/2023 [ 58.229658] Workqueue: dm-thin do_worker [dm_thin_pool] [ 58.234343] RIP: 0010:dm_cell_key_has_valid_range+0x7c/0xa0 [dm_bio_prison] [ 58.239549] Code: 48 81 fa 00 04 00 00 77 21 48 83 ed 01 48 c1 e8 0a 41 b8 01 00 00 00 48 c1 ed 0a 48 39 e8 75 19 44 89 c0 5b 5d e9 f4 1c 3a e5 <0f> 0b 45 31 c0 5b 5d 44 89 c0 e9 e5 1c 3a e5 0f 0b 45 31 c0 eb e0 [ 58.251799] RSP: 0018:ffffc900002ffb10 EFLAGS: 00010202 [ 58.256006] RAX: 0000000000000000 RBX: ffffc900002ffb78 RCX: 0000000000000007 [ 58.261500] RDX: 0000000000000c80 RSI: 0000000000000080 RDI: ffffc900002ffb88 [ 58.266809] RBP: 0000000000000c80 R08: 0000000000000001 R09: fffff5200005ff77 [ 58.271203] R10: 0000000000000003 R11: 0000000000000008 R12: ffff8881144f9630 [ 58.276361] R13: ffff8881144f9600 R14: ffff88814cfa3eb8 R15: ffffc900002ffb78 [ 58.281945] FS: 0000000000000000(0000) GS:ffff8883e1300000(0000) knlGS:0000000000000000 [ 58.288928] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 58.293493] CR2: 00000000004f4548 CR3: 0000000113416000 CR4: 0000000000350ef0 [ 58.300031] Call Trace: [ 58.302109] <TASK> [ 58.328491] process_discard_bio+0x1b2/0x440 [dm_thin_pool] [ 58.361890] process_thin_deferred_bios+0x61c/0xbb0 [dm_thin_pool] [ 58.395890] process_deferred_bios+0xf7/0x800 [dm_thin_pool] [ 58.402079] do_worker+0x2a2/0x4e0 [dm_thin_pool] [ 58.412853] process_one_work+0x576/0xcf0 [ 58.418017] worker_thread+0x88c/0x1420 [ 58.436903] kthread+0x2ad/0x380 [ 58.445480] ret_from_fork+0x34/0x70 [ 58.454180] ret_from_fork_asm+0x1b/0x30 [ 58.458617] </TASK> [ 58.461353] ---[ end trace 0000000000000000 ]--- [ 58.465787] device-mapper: thin: Discard doesn't respect bio prison limits Git bisect revealed the following to be the bad commit, commit 8e0ef412869430d114158fc3b9b1fb111e247bd3 Author: Christoph Hellwig <hch@xxxxxx> Date: Wed Feb 28 14:56:42 2024 -0800 dm: use queue_limits_set Use queue_limits_set which validates the limits and takes care of updating the readahead settings instead of directly assigning them to the queue. For that make sure all limits are actually updated before the assignment. Signed-off-by: Christoph Hellwig <hch@xxxxxx> Reviewed-by: Mike Snitzer <snitzer@xxxxxxxxxx> Link: https://lore.kernel.org/r/20240228225653.947152-4-hch@xxxxxx Signed-off-by: Jens Axboe <axboe@xxxxxxxxx> block/blk-settings.c | 2 +- drivers/md/dm-table.c | 27 ++++++++++++--------------- 2 files changed, 13 insertions(+), 16 deletions(-) -- Chandan