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

From: Ruan Shiyang
Date: Fri Dec 18 2020 - 04:16:25 EST




On 2020/12/18 上午11:49, Darrick J. Wong wrote:
On Fri, Dec 18, 2020 at 10:44:26AM +0800, Ruan Shiyang wrote:


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?

I'm assuming that Jane is using a program that calls sigaction to
install a SIGBUS handler, and dumps the entire siginfo_t structure
whenever it receives one...

OK. Let me try it and figure out what's wrong in it.


--
Thanks,
Ruan Shiyang.


--D


--
Thanks,
Ruan Shiyang.


thanks,
-jane