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