]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
powerpc: Handle machine checks caused by D-ERAT multihit
authorJustin Hibbits <jhibbits@FreeBSD.org>
Thu, 21 May 2020 03:33:20 +0000 (03:33 +0000)
committerJustin Hibbits <jhibbits@FreeBSD.org>
Thu, 21 May 2020 03:33:20 +0000 (03:33 +0000)
commitb923b34a0f4d03bc541938dcfbee4b4fda1c5a33
tree9135f1b0660bca82c01e031bd24f2521f8222026
parent7be2c6f3bf73135445cb0f75f9d676a9065f30b7
powerpc: Handle machine checks caused by D-ERAT multihit

Instead of crashing the user process when a D-ERAT multihit is detected, try
to flush the ERAT, and continue.  This machine check indicates a likely PMAP
invalidation shortcoming that will need to be addressed, but it's
recoverable, so just recover.  The recovery is pmap-specific to flush the
ERAT, so add a pmap function to do so, currently only implemented by the
POWER9 radix pmap.
sys/powerpc/aim/aim_machdep.c
sys/powerpc/aim/mmu_radix.c
sys/powerpc/include/pmap.h
sys/powerpc/powerpc/mmu_if.m
sys/powerpc/powerpc/pmap_dispatch.c