Benjamin Herrenschmidt's on March 19, 2020 6:46 am: > On Wed, 2020-03-18 at 18:08 +0100, Cédric Le Goater wrote: >> On 3/18/20 5:41 AM, Nicholas Piggin wrote: >> > Linux using the hash MMU ("disable_radix" command line) on a POWER9 >> > machine quickly hits translation bugs due to using v3.0 slbia >> > features that are not implemented in TCG. Add them. >> >> I checked the ISA books and this looks OK but you are also modifying >> slbie.
That was a mistake that leaked in from debugging the crashes. > For the same reason, I believe slbie needs to invalidate caches even if > the entry isn't present. I don't think it does per the ISA. If we overwrite it then we can only invalidate with slbia. That's why there is that slb insertion cache for pre-POWER9 that lets us use slbies to context switch so long as none have been overwritten. > The kernel will under some circumstances overwrite SLB entries without > invalidating (because the translation itself isn't invalid, it's just > that the SLB is full, so anything cached in the ERAT is still > technically ok). > > However, when those things get really invalidated, they need to be > taken out, even if they no longer have a corresponding SLB entry. Yeah we track that and do slbia in that case. Thanks, Nick