On Sat, Oct 03, 2009 at 08:04:33AM +1000, Benjamin Herrenschmidt wrote: > On Fri, 2009-10-02 at 16:49 -0500, Scott Wood wrote: > > Adding a tlbil_va to do_page_fault makes the problem go away for me (on > > top of your "merge" branch) -- none of the other changes in this thread > > do (assuming I didn't miss any). FWIW, when it gets stuck on a fault, > > DSISR is 0xc0000000, and handle_mm_fault returns zero. > > But in that case, it should hit ptep_set_access_flags() (via > handle_mm_fault) and from there call tlbil_va (provided we add a call to > it in the relevant filter function which I proposed initially), no ?
Yes, it hits ptep_set_access_flags() and adding _tlbil_va there helps (I didn't put it in the filter function, because that doesn't take address as a parameter). I'd misread your suggestion as referring to the various changes to set_pte_filter() that were posted. As for unconditionally invalidating in set_pte_filter(), that doesn't boot for me unless I check for kernel addresses -- I guess we populate page tables that overlap the pinned large page region? -Scott _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev