On 02/23/2016 09:22 PM, Will Deacon wrote: > On Tue, Feb 23, 2016 at 10:33:45PM +0300, Kirill A. Shutemov wrote: >> On Tue, Feb 23, 2016 at 07:19:07PM +0100, Gerald Schaefer wrote: >>> I'll check with Martin, maybe it is actually trivial, then we can >>> do a quick test it to rule that one out. >> >> Oh. I found a bug in __split_huge_pmd_locked(). Although, not sure if it's >> _the_ bug. >> >> pmdp_invalidate() is called for the wrong address :-/ >> I guess that can be destructive on the architecture, right? > > FWIW, arm64 ignores the address parameter for set_pmd_at, so this would > only result in the TLBI nuking the wrong entries, which is going to be > tricky to observe in practice given that we install a table entry > immediately afterwards that maps the same pages. If s390 does more here > (I see some magic asm using the address), that could be the answer... This patch does not change the address for set_pmd_at, it does that for the pmdp_invalidate here (by keeping haddr at the start of the pmd) ---> pmdp_invalidate(vma, haddr, pmd); pmd_populate(mm, pmd, pgtable); Without that fix we would clearly have stale tlb entries, no? -- To unsubscribe from this list: send the line "unsubscribe linux-s390" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html