* Andy Lutomirski <[email protected]> wrote:

> On Sun, Jun 14, 2015 at 7:47 PM, Andi Kleen <[email protected]> wrote:
> > Oleg Nesterov <[email protected]> writes:
> >>
> >> But again, the kernel no longer does this? do_page_fault() does 
> >> vmalloc_fault() without notify_die(). If it fails, I do not see how/why a 
> >> modular DIE_OOPS handler could try to resolve this problem and trigger 
> >> another fault.
> >
> > The same problem can happen from NMI handlers or machine check handlers. 
> > It's 
> > not necessarily tied to page faults only.
> 
> AIUI, the point of the one and only vmalloc_sync_all call is to prevent 
> infinitely recursive faults when we call a notify_die callback.  The only 
> thing 
> that it could realistically protect is module text or static non-per-cpu 
> module 
> data, since that's the only thing that's reliably already in the init pgd.  
> I'm 
> with Oleg: I don't see how that can happen, since do_page_fault fixes up 
> vmalloc 
> faults before it calls notify_die.

Yes, but what I meant is that it can happen if due to an unrelated kernel bug 
and 
unlucky timing we have installed this new handler just when that other 
unrelated 
kernel bug triggers: say a #GPF crash in kernel code.

In any case it should all be mooted with the removal of lazy PGD instantiation.

Thanks,

        Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to