SMMU fault irq occured,need help

[b]When we porting kdump, we started the second kernel and encountered smmu fault.

We think this problem is due to the fact that the SMMU is not reset when the second kernel is started. How can we guarantee that the reset is good, is there any abnormality?
Log is as follows:[/b]

No fault found! But SMMU fault irq occured
[ 3.883229] SMMU0: Unexpected {global,context} fault, this could be serious
[ 3.890394] GFSR 0x00000000, GFSYNR0 0x0000000c, GFSYNR1 0x00006a86, GFSYNR2 0x00000000, fault_addr=0x1a3e0f8e265c1, sid=134(0x86 - Invalid SID)
[ 3.907641] gfsr = 0x00000000 fault_handled = 0
[ 3.912095] SMMU1: Unexpected {global,context} fault, this could be serious
[ 3.919008] GFSR 0x00000000, GFSYNR0 0x00000000, GFSYNR1 0x00000086, GFSYNR2 0x00000000, fault_addr=0xe23280420024, sid=134(0x86 - Invalid SID)
[ 3.936081] gfsr = 0x00000000 fault_handled = 0
[ 3.940795] SMMU2: Unexpected {global,context} fault, this could be serious
[ 3.947707] GFSR 0x00000000, GFSYNR0 0x00000000, GFSYNR1 0x000002ad, GFSYNR2 0x00000000, fault_addr=0x1b19a7904dbad, sid=173(0xad - Invalid SID)
[ 3.964864] t19x-arm-smmu: No fault found! But SMMU fault irq occured.[ 3.971085] gfsr = 0x00000000 fault_handled = 0
[ 3.975629] SMMU0: Unexpected {global,context} fault, this could be serious
[ 3.982538] GFSR 0x00000000, GFSYNR0 0x0000000c, GFSYNR1 0x00006a86, GFSYNR2 0x00000000, fault_addr=0x1a3e0f8e265c1, sid=134(0x86 - Invalid SID)
[ 4.000042] gfsr = 0x00000000 fault_handled = 0
[ 4.004494] SMMU1: Unexpected {global,context} fault, this could be serious
[ 4.011408] GFSR 0x00000000, GFSYNR0 0x00000000, GFSYNR1 0x00000086, GFSYNR2 0x00000000, fault_addr=0xe23280420024, sid=134(0x86 - Invalid SID)
[ 4.028739] gfsr = 0x00000000 fault_handled = 0
[ 4.033196] SMMU2: Unexpected {global,context} fault, this could be serious
[ 4.040107] GFSR 0x00000000, GFSYNR0 0x00000000, GFSYNR1 0x000002ad, GFSYNR2 0x00000000, fault_addr=0x1b19a7904dbad, sid=173(0xad - Invalid SID)
[ 4.057006] t19x-arm-smmu: No fault found! But SMMU fault irq occured.[ 4.063478] gfsr = 0x00000000 fault_handled = 0
[ 4.068030] SMMU0: Unexpected {global,context} fault, this could be serious
[ 4.075195] GFSR 0x00000000, GFSYNR0 0x0000000c, GFSYNR1 0x00006a86, GFSYNR2 0x00000000, fault_addr=0x1a3e0f8e265c1, sid=134(0x86 - Invalid SID)
[ 4.092181] gfsr = 0x00000000 fault_handled = 0
[ 4.096895] SMMU1: Unexpected {global,context} fault, this could be serious
[ 4.103808] GFSR 0x00000000, GFSYNR0 0x00000000, GFSYNR1 0x00000086, GFSYNR2 0x00000000, fault_addr=0xe23280420024, sid=134(0x86 - Invalid SID)
[ 4.121141] gfsr = 0x00000000 fault_handled = 0
[ 4.125597] SMMU2: Unexpected {global,context} fault, this could be serious
[ 4.132507] GFSR 0x00000000, GFSYNR0 0x00000000, GFSYNR1 0x000002ad, GFSYNR2 0x00000000, fault_addr=0x1b19a7904dbad, sid=173(0xad - Invalid SID)

Hi,

Can you share the complete boot log? Not only kernel dmesg, but the UART console log so that I understand that after a crash reboot, from which step of bootloader, the system has rebooted?

thanks
Bibek

hi bbasu:

this is all log infomation

test_kernel.txt (185 KB)

Hi,

  • As per shared logs, you are using kernel 4.9.
    Kdump support was added in K4.14 in Upstream.
    "arm64: add kdump support: - https://lwn.net/Articles/713887/
  • Did you backport all required patches?
  • arm_smmu_device_reset() gets called during probe. We need to recreate the problem and check more.
  • Please share details about the steps followed for reproduction.