1. 14 Feb, 2023 29 commits
  2. 12 Feb, 2023 2 commits
  3. 02 Feb, 2023 5 commits
  4. 01 Feb, 2023 2 commits
  5. 30 Jan, 2023 2 commits
    • Joe Thornber's avatar
    • Joe Thornber's avatar
      dm cache: free background tracker's queued work in btracker_destroy · 95ab80a8
      Joe Thornber authored
      Otherwise the kernel can BUG with:
      
      [ 2245.426978] =============================================================================
      [ 2245.435155] BUG bt_work (Tainted: G    B   W         ): Objects remaining in bt_work on __kmem_cache_shutdown()
      [ 2245.445233] -----------------------------------------------------------------------------
      [ 2245.445233]
      [ 2245.454879] Slab 0x00000000b0ce2b30 objects=64 used=2 fp=0x000000000a3c6a4e flags=0x17ffffc0000200(slab|node=0|zone=2|lastcpupid=0x1fffff)
      [ 2245.467300] CPU: 7 PID: 10805 Comm: lvm Kdump: loaded Tainted: G    B   W          6.0.0-rc2 #19
      [ 2245.476078] Hardware name: Dell Inc. PowerEdge R7525/0590KW, BIOS 2.5.6 10/06/2021
      [ 2245.483646] Call Trace:
      [ 2245.486100]  <TASK>
      [ 2245.488206]  dump_stack_lvl+0x34/0x48
      [ 2245.491878]  slab_err+0x95/0xcd
      [ 2245.495028]  __kmem_cache_shutdown.cold+0x31/0x136
      [ 2245.499821]  kmem_cache_destroy+0x49/0x130
      [ 2245.503928]  btracker_destroy+0x12/0x20 [dm_cache]
      [ 2245.508728]  smq_destroy+0x15/0x60 [dm_cache_smq]
      [ 2245.513435]  dm_cache_policy_destroy+0x12/0x20 [dm_cache]
      [ 2245.518834]  destroy+0xc0/0x110 [dm_cache]
      [ 2245.522933]  dm_table_destroy+0x5c/0x120 [dm_mod]
      [ 2245.527649]  __dm_destroy+0x10e/0x1c0 [dm_mod]
      [ 2245.532102]  dev_remove+0x117/0x190 [dm_mod]
      [ 2245.536384]  ctl_ioctl+0x1a2/0x290 [dm_mod]
      [ 2245.540579]  dm_ctl_ioctl+0xa/0x20 [dm_mod]
      [ 2245.544773]  __x64_sys_ioctl+0x8a/0xc0
      [ 2245.548524]  do_syscall_64+0x5c/0x90
      [ 2245.552104]  ? syscall_exit_to_user_mode+0x12/0x30
      [ 2245.556897]  ? do_syscall_64+0x69/0x90
      [ 2245.560648]  ? do_syscall_64+0x69/0x90
      [ 2245.564394]  entry_SYSCALL_64_after_hwframe+0x63/0xcd
      [ 2245.569447] RIP: 0033:0x7fe52583ec6b
      ...
      [ 2245.646771] ------------[ cut here ]------------
      [ 2245.651395] kmem_cache_destroy bt_work: Slab cache still has objects when called from btracker_destroy+0x12/0x20 [dm_cache]
      [ 2245.651408] WARNING: CPU: 7 PID: 10805 at mm/slab_common.c:478 kmem_cache_destroy+0x128/0x130
      
      Found using: lvm2-testsuite --only "cache-single-split.sh"
      
      Ben bisected and found that commit 0495e337 ("mm/slab_common:
      Deleting kobject in kmem_cache_destroy() without holding
      slab_mutex/cpu_hotplug_lock") first exposed dm-cache's incomplete
      cleanup of its background tracker work objects.
      Reported-by: default avatarBenjamin Marzinski <bmarzins@redhat.com>
      Tested-by: default avatarBenjamin Marzinski <bmarzins@redhat.com>
      Cc: stable@vger.kernel.org # 6.0+
      Signed-off-by: default avatarJoe Thornber <ejt@redhat.com>
      Signed-off-by: default avatarMike Snitzer <snitzer@kernel.org>
      95ab80a8