Re: [RFC PATCH v3 0/9] fsdax: introduce fs query to support reflink

From: Ruan Shiyang
Date: Thu Dec 17 2020 - 21:47:27 EST




On 2020/12/17 上午4:55, Jane Chu wrote:
Hi, Shiyang,

On 12/15/2020 4:14 AM, Shiyang Ruan wrote:
The call trace is like this:
memory_failure()
  pgmap->ops->memory_failure()      => pmem_pgmap_memory_failure()
   gendisk->fops->corrupted_range() => - pmem_corrupted_range()
                                       - md_blk_corrupted_range()
    sb->s_ops->currupted_range()    => xfs_fs_corrupted_range()
     xfs_rmap_query_range()
      xfs_currupt_helper()
       * corrupted on metadata
           try to recover data, call xfs_force_shutdown()
       * corrupted on file data
           try to recover data, call mf_dax_mapping_kill_procs()

The fsdax & reflink support for XFS is not contained in this patchset.

(Rebased on v5.10)

So I tried the patchset with pmem error injection, the SIGBUS payload
does not look right -

** SIGBUS(7): **
** si_addr(0x(nil)), si_lsb(0xC), si_code(0x4, BUS_MCEERR_AR) **

I expect the payload looks like

** si_addr(0x7f3672e00000), si_lsb(0x15), si_code(0x4, BUS_MCEERR_AR) **

Thanks for testing. I test the SIGBUS by writing a program which calls madvise(... ,MADV_HWPOISON) to inject memory-failure. It just shows that the program is killed by SIGBUS. I cannot get any detail from it. So, could you please show me the right way(test tools) to test it?


--
Thanks,
Ruan Shiyang.


thanks,
-jane