lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240518022646.GA450709@mit.edu>
Date: Fri, 17 May 2024 22:26:46 -0400
From: "Theodore Ts'o" <tytso@....edu>
To: dm-devel@...ts.linux.dev, fstests@...r.kernel.org,
        linux-ext4@...r.kernel.org, regressions@...ts.linux.dev
Cc: Christoph Hellwig <hch@....de>, Mike Snitzer <snitzer@...nel.org>
Subject: [REGRESSION] dm: use queue_limits_set

#regzbot introduced: 1c0e720228ad

While doing final regression testing before sending a pull request for
the ext4 tree, I found a regression which was triggered by generic/347
and generic/405 on on multiple fstests configurations, including
both ext4/4k and xfs/4k.

It bisects cleanly to commit 1c0e720228ad ("dm: use
queue_limits_set"), and the resulting WARNING is attached below.  This
stack trace can be seen for both generic/347 and generic/405.  And if
I revert this commit on top of linux-next, the failure goes away, so
it pretty clearly root causes to 1c0e720228ad.

For now, I'll add generic/347 and generic/405 to my global exclude
file, but maybe we should consider reverting the commit if it can't be
fixed quickly?

Thanks,

      	  	   	  	   	     - Ted

% git show 1c0e720228ad
commit 1c0e720228ad1c63bb487cdcead2558353b5a067
Author: Christoph Hellwig <hch@....de>
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@....de>
    Signed-off-by: Mike Snitzer <snitzer@...nel.org>
  ...    

% git checkout 1c0e720228ad
% install-kconfig ; kbuild
% kvm-xfstests -c xfs/4k generic/347

BEGIN TEST 4k (1 test): XFS 4k block Fri May 17 22:03:06 EDT 2024
DEVICE: /dev/vdd
XFS_MKFS_OPTIONS: -bsize=4096
XFS_MOUNT_OPTIONS: 
FSTYP         -- xfs (debug)
PLATFORM      -- Linux/x86_64 kvm-xfstests 6.9.0-rc2-xfstests-00006-g1c0e720228ad #335 SMP PREEMPT_DYNAMIC Fri May 17 22:02:37 EDT 2024
MKFS_OPTIONS  -- -f -bsize=4096 /dev/vdc
MOUNT_OPTIONS -- /dev/vdc /vdc

[    3.179146] XFS (vdd): EXPERIMENTAL online scrub feature in use. Use at your own risk!
generic/347 65s ...  [22:03:06][    3.389241] run fstests generic/347 at 2024-05-17 22:03:06
[    4.032221] ------------[ cut here ]------------
[    4.033087] WARNING: CPU: 1 PID: 30 at drivers/md/dm-bio-prison-v1.c:128 dm_cell_key_has_valid_range+0x3d/0x50
[    4.034871] CPU: 1 PID: 30 Comm: kworker/u8:1 Not tainted 6.9.0-rc2-xfstests-00006-g1c0e720228ad #335
[    4.035440] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
[    4.035829] Workqueue: dm-thin do_worker
[    4.035998] RIP: 0010:dm_cell_key_has_valid_range+0x3d/0x50
[    4.036236] Code: c1 48 29 d1 48 81 f9 00 04 00 00 77 1d 48 83 e8 01 48 c1 ea 0a b9 01 00 00 00 48 c1 e8 0a 48 39 c2 75 12 89 c8 c3 cc cc cc cc <0f> 0b 31 c9 89 c8 c3 cc cc cc cc 0f 0b 31 c9 eb e8 66 90 90 90 90
[    4.037024] RSP: 0018:ffffc90000107d18 EFLAGS: 00010206
[    4.037249] RAX: 0000000000000fff RBX: 0000000000000000 RCX: 0000000000000fff
[    4.037556] RDX: 0000000000000000 RSI: 0000000000000fff RDI: ffffc90000107d28
[    4.037923] RBP: ffff888009aa7b40 R08: ffff888009aa7bc0 R09: ffff888003e7b980
[    4.038247] R10: 0000000000000008 R11: fefefefefefefeff R12: ffff8880097ca5b8
[    4.038545] R13: 0000000000000fff R14: ffff8880097ca5b8 R15: ffff88800f4fc400
[    4.038843] FS:  0000000000000000(0000) GS:ffff88807dd00000(0000) knlGS:0000000000000000
[    4.039228] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    4.039472] CR2: 0000564ad92d7c00 CR3: 000000000f73e006 CR4: 0000000000770ef0
[    4.039774] PKRU: 55555554
[    4.039892] Call Trace:
[    4.040000]  <TASK>
`[    4.040094]  ? __warn+0x7b/0x120
[    4.040235]  ? dm_cell_key_has_valid_range+0x3d/0x50
[    4.040473]  ? report_bug+0x174/0x1c0
[    4.040635]  ? handle_bug+0x3a/0x70
[    4.040789]  ? exc_invalid_op+0x17/0x70
[    4.040958]  ? asm_exc_invalid_op+0x1a/0x20
[    4.041163]  ? dm_cell_key_has_valid_range+0x3d/0x50
[    4.041397]  process_discard_bio+0xba/0x190
[    4.041597]  process_thin_deferred_bios+0x290/0x3e0
[    4.041806]  process_deferred_bios+0xba/0x2e0
[    4.041994]  do_worker+0xf5/0x160
[    4.042139]  process_one_work+0x18a/0x3d0
[    4.042311]  worker_thread+0x285/0x3a0
[    4.042470]  ? __pfx_worker_thread+0x10/0x10
[    4.042655]  kthread+0xdd/0x110
[    4.042795]  ? __pfx_kthread+0x10/0x10
[    4.042979]  ret_from_fork+0x31/0x50
[    4.043153]  ? __pfx_kthread+0x10/0x10
[    4.043317]  ret_from_fork_asm+0x1a/0x30
[    4.043490]  </TASK>
[    4.043586] ---[ end trace 0000000000000000 ]---
[    4.043784] device-mapper: thin: Discard doesn't respect bio prison limits
[    4.044142] device-mapper: thin: Discard doesn't respect bio prison limits
[    4.044585] device-mapper: thin: Discard doesn't respect bio prison limits
[    6.410678] device-mapper: thin: 253:2: reached low water mark for data device: sending event.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ