Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-18334

lu_kmem_fini() should wait for RCU completions

Details

    • Bug
    • Resolution: Fixed
    • Minor
    • Lustre 2.17.0
    • None
    • None
    • 3
    • 9223372036854775807

    Description

      otherwise those rcu doing kmem_cache_free() can race with kmem_cache_destroy():

      [   33.487363] ------------[ cut here ]------------
      [   33.487457] kmem_cache_destroy echo_object_kmem: Slab cache still has objects when called from lu_kmem_fini+0x19/0x40 [obdclass]
      [   33.487511] WARNING: CPU: 1 PID: 7991 at mm/slab_common.c:523 kmem_cache_destroy+0xe8/0xf0
      [   33.487653] Modules linked in: obdecho(O-) lustre(O) osp(O) ofd(O) lod(O) ost(O) mdt(O) mdd(O) mgs(O) osd_ldiskfs(O) ldiskfs(O) lquota(O) lfsck(O) mgc(O) mdc(O) lov(O) osc(O) lmv(O) fid(O) fld(O) ptlrpc(O) obdclass(O) ksocklnd(O) lnet(O) libcfs(O) [last unloaded: obdecho]
      [   33.487811] CPU: 1 PID: 7991 Comm: rmmod Tainted: G        W  O     --------- -  - 4.18.0 #42
      [   33.487875] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-1.fc39 04/01/2014
      [   33.487933] RIP: 0010:kmem_cache_destroy+0xe8/0xf0
      [   33.487966] Code: 48 c7 c2 e0 1e 4a 91 e8 26 fc eb ff eb a4 48 8b 53 58 48 c7 c6 60 47 c5 90 48 c7 c7 68 dd e4 90 48 8b 4c 24 10 e8 3e 43 ea ff <0f> 0b eb 84 c3 0f 1f 00 55 31 f6 48 c7 c7 60 1f 4a 91 53 48 83 ec
      [   33.488081] RSP: 0018:ffff9fecc77c3ec8 EFLAGS: 00010292
      [   33.488114] RAX: 0000000000000074 RBX: ffff9fec88755300 RCX: 0000000000000001
      [   33.488156] RDX: 0000000080000001 RSI: ffffffff90e470c6 RDI: 00000000ffffffff
      [   33.488192] RBP: 0000000040000000 R08: 0000000000000000 R09: 0000000000000000
      [   33.488227] R10: ffff9fecc77c3d10 R11: ffff9fecc77c3d08 R12: 0000000000000000
      [   33.488263] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
      [   33.488299] FS:  00007f2483397740(0000) GS:ffff9fedd0880000(0000) knlGS:0000000000000000
      [   33.488340] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [   33.488369] CR2: 00007f24823e3be1 CR3: 000000011bda8000 CR4: 0000000000350ea0
      [   33.488407] Call Trace:
      [   33.488440]  lu_kmem_fini+0x19/0x40 [obdclass]
      [   33.488493]  obdecho_exit+0x18/0x5ee [obdecho]
      [   33.488526]  __se_sys_delete_module+0x12a/0x1c0
      [   33.488559]  ? trace_hardirqs_on+0x1c/0xe0
      [   33.488584]  do_syscall_64+0x4b/0x1b0
      

      Attachments

        Activity

          People

            bzzz Alex Zhuravlev
            bzzz Alex Zhuravlev
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: