Crash in dm-verity/bufio if use with tasklets

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

there is a kernel crash during when running our cryptsetup testsuite
if using veritysetup with  --use-tasklets option (try_verify_in_tasklet table option).

With
 # veritysetup format /dev/sdb /dev/sdc
 # veritysetup open /dev/sdb test /dev/sdc --use-tasklets <root_hash>

it generates BUG below, bisect point to

450e8dee51aa6fa1dd0f64073e88235f1a77b035 is the first bad commit
commit 450e8dee51aa6fa1dd0f64073e88235f1a77b035
Author: Joe Thornber <ejt@xxxxxxxxxx>
Date:   Fri Mar 10 16:02:29 2023 +0000

    dm bufio: improve concurrent IO performance

So, it is broken since kernel 6.4 ... !

(I wonder why we added dm-verity tasklet option when nobody apparently use it...)

: =============================
: [ BUG: Invalid wait context ]
: 6.6.0+ #170 Not tainted
: -----------------------------
: ksoftirqd/2/25 is trying to lock:
: ffff88810f57c6f8 (&bc->trees[i].lock){.+.+}-{3:3}, at: cache_get+0x46/0xc0 [dm_bufio]
: other info that might help us debug this:
: context-{2:2}
: no locks held by ksoftirqd/2/25.
: stack backtrace:
: CPU: 2 PID: 25 Comm: ksoftirqd/2 Not tainted 6.6.0+ #170
: Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 11/12/2020
: Call Trace:
:  <TASK>
:  dump_stack_lvl+0x5c/0xc0
:  dump_stack+0x10/0x20
:  __lock_acquire+0xa3f/0x2800
:  lock_acquire+0xd8/0x2d0
:  ? cache_get+0x46/0xc0 [dm_bufio]
:  ? __this_cpu_preempt_check+0x13/0x20
:  down_read+0x30/0x270
:  ? cache_get+0x46/0xc0 [dm_bufio]
:  cache_get+0x46/0xc0 [dm_bufio]
:  new_read+0x53/0x1d0 [dm_bufio]
:  dm_bufio_get+0x11/0x20 [dm_bufio]
:  verity_verify_level+0x17d/0x230 [dm_verity]
:  verity_hash_for_block+0x37/0xe0 [dm_verity]
:  verity_verify_io+0x124/0x5d0 [dm_verity]
:  ? find_held_lock+0x31/0x80
:  ? __this_cpu_preempt_check+0x13/0x20
:  ? percpu_ref_put_many.constprop.0+0x6a/0x110
:  ? blk_queue_exit+0xd/0x10
:  ? __blk_mq_free_request+0x65/0xc0
:  ? tasklet_action_common.isra.0+0x34/0x250
:  verity_tasklet+0x11/0x90 [dm_verity]
:  tasklet_action_common.isra.0+0xdf/0x250
:  tasklet_action+0x28/0x30
:  __do_softirq+0xcf/0x459
:  run_ksoftirqd+0x32/0x50
:  smpboot_thread_fn+0x17c/0x220
:  ? sort_range+0x20/0x20
:  kthread+0xfc/0x130
:  ? kthread_complete_and_exit+0x20/0x20
:  ret_from_fork+0x31/0x50
:  ? kthread_complete_and_exit+0x20/0x20
:  ret_from_fork_asm+0x11/0x20
:  </TASK>


Thanks,
Milan




[Index of Archives]     [DM Crypt]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite Discussion]     [KDE Users]     [Fedora Docs]

  Powered by Linux