> > > > From the ARM: > > """ > > RFCPSG: If level 1 or level 2 is supported and the Contiguous bit in a set of > > Block descriptors or Page descriptors is changed, then a TLB conflict abort can > > be generated because multiple translation table entries might exist within a TLB > > that translates the same IA. > > """ > > > > Although I guess it's not totally explicit, I've interpretted that as saying > > that conflicting TLB entries can only arise for the IA range for which the > > contiguous bits have been modified in the translation tables. > > Right, that's reassuring, thanks for digging that one. > Thanks Ryan, will improve the comment and commit messages to make this clearer and to include references to this information. > > > If anything, this should absolutely check for FAR_EL1 and assert that > > > this is indeed caused by such change. > > > > I'm not really sure how we would check this reliably? Without patch 5, the > > problem is somewhat constrained; we could have as many changes in flight as > > there are CPUs so we could keep a list of all the {mm_struct, VA-range} that are > > being modified. But if patch 5 is confirmed to be architecturally sound, then > > there is no "terminating tlbi" so there is no bound on the set of {mm_struct, > > VA-range}'s that could legitimately cause a conflict abort. > > I didn't mean to imply that we should identify the exact cause of the > abort. I was hoping to simply check that FAR_EL1 reports a userspace > VA. Why wouldn't that work? > Will do so. Kind regards, Mikołaj