Re: [RFC PATCH] mm: move xa forward when run across zombie page

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

 



Hi All,

I have been tracking similar issue(s) with soft lockup or panics on my system consistently with my workload.
Tried multiple kernel versions. Issue seem to happen consistently on 6.1-rc1 (while it seem to happen on 5.17, 5.19, 6.0.X)

PANIC: "Kernel panic - not syncing: softlockup: hung tasks"

    RIP: 0000000000000001  RSP: ff3d8e7f0d9978ea  RFLAGS: ff3d8e7f0d9978e8
    RAX: 0000000000000000  RBX: 0000000000000000  RCX: 0000000000000000
    RDX: 000000006b9c66f1  RSI: ff506ca15ff33c20  RDI: 0000000000000000
    RBP: ffffffff84bc64cc   R8: ff3d8e412cabdff0   R9: ffffffff84c00e8b
    R10: ff506ca15ff33b69  R11: 0000000000000000  R12: ff506ca15ff33b58
    R13: ffffffff84bc79a3  R14: ff506ca15ff33b38  R15: 0000000000000000
    ORIG_RAX: ff506ca15ff33a80  CS: ff506ca15ff33c78  SS: 0000
#9 [ff506ca15ff33c18] xas_load at ffffffff84b49a7f
#10 [ff506ca15ff33c28] __filemap_get_folio at ffffffff840985da
#11 [ff506ca15ff33ce8] swap_cache_get_folio at ffffffff841119db
#12 [ff506ca15ff33d18] do_swap_page at ffffffff840dbd21
#13 [ff506ca15ff33db8] __handle_mm_fault at ffffffff840ddee3
#14 [ff506ca15ff33e88] handle_mm_fault at ffffffff840de55d
#15 [ff506ca15ff33ec8] do_user_addr_fault at ffffffff83e93247
#16 [ff506ca15ff33f20] exc_page_fault at ffffffff84bc711d
#17 [ff506ca15ff33f50] asm_exc_page_fault at ffffffff84c00b77

Tried various patches proposed on this thread chain.. but no luck so far.

Looks like its stuck in following loop forever causing softlockup/panic:

 if (!folio_try_get_rcu(folio)) 
                goto repeat;

Looking at the crash dump, mapping->host became NULL. Not sure what exactly is happening.
Welcome any ideas to track it down further.

struct address_space {
  host = 0x0,
  i_pages = {
    xa_lock = {
      {
        rlock = {
          raw_lock = {
            {
              val = {
                counter = 0
              },
              {
                locked = 0 '\000',
                pending = 0 '\000'
              },
              {
                locked_pending = 0,
                tail = 0
              }
            }
          }
        }
      }
    },
    xa_flags = 1,
    xa_head = 0xff3d8e7f9ca41daa
  },
  invalidate_lock = {
    count = {
      counter = 0
    },
    owner = {
      counter = 0
    },
    osq = {
      tail = {
        counter = 0
      }
    },
    wait_lock = {
      raw_lock = {
        {
          val = {
            counter = 0
          },
          {
            locked = 0 '\000',
            pending = 0 '\000'
          },
          {
            locked_pending = 0,
            tail = 0
          }
        }
      }
    },
    wait_list = {
      next = 0x0,
      prev = 0x0
    }
  },
  gfp_mask = 0,
  i_mmap_writable = {
    counter = 0
  },
  i_mmap = {
    rb_root = {
      rb_node = 0x0
    },
    rb_leftmost = 0x0
  },
  i_mmap_rwsem = {
    count = {
      counter = 0
    },
    owner = {
      counter = 0
    },
    osq = {
      tail = {
        counter = 0
      }
    },
    wait_lock = {
      raw_lock = {
        {
          val = {
            counter = 0
          },
          {
            locked = 0 '\000',
            pending = 0 '\000'
          },
          {
            locked_pending = 0,
            tail = 0
          }
        }
      }
    },
    wait_list = {
      next = 0x0,
      prev = 0x0
    }
  },
  nrpages = 1897,
  writeback_index = 0,
  a_ops = 0xffffffff85044560,
  flags = 32,
  wb_err = 0,
  private_lock = {
    {
      rlock = {
        raw_lock = {
          {
            val = {
              counter = 0
            },
            {
              locked = 0 '\000',
              pending = 0 '\000'
            },
            {
              locked_pending = 0,
              tail = 0
            }
          }
        }
      }
    }
  },
  private_list = {
    next = 0x0,
    prev = 0x0
  },
  private_data = 0x0
}



Thanks,
Badari




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux