Re: [PATCH] Prevent flushing of locked PROM ITLB entry (RED State Exception or hang on reboot)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Christopher Alexander Tobias Schulze <cat.schulze@xxxxxxxxxxxxx>
Date: Sun, 3 Aug 2014 14:58:36 +0200

> __purge_vmap_area_lazy() is in mm/vmalloc.c, as is __vunmap(). The line
> discipline part is mostly irrelevant, but may be interesting, as I remember
> having read on this mailing list that others tracked the reboot problem to
> memory allocation changes in the ldisc layer. These changes may have
> initially triggered the problematic __vunmap() call that kills the locked
> PROM mapping.

The problem was introduced by:

commit db64fe02258f1507e13fe5212a989922323685ce
Author: Nick Piggin <npiggin@xxxxxxx>
Date:   Sat Oct 18 20:27:03 2008 -0700

    mm: rewrite vmap layer

which added the lazy VMAP tlb flushing.

The issue is that since and module and VMALLOC areas (both managed
by VMAP handling) are not contiguous, you can end up flushing across
the openfirmware region if f.e. a module is unloaded and some vfree()'s
occur.

I've sent an email to Nick Piggin who added this code, you were CC:'d.

If Nick doesn't agree to fix this in the VMAP lazy flushing layer, and
we implement a fix using your approach, I think we have to stop making
flush_tlb_kernel_range() a macro and instead implement it inside of
arch/sparc/kernel/init_64.c or similar as a real function.

Thanks.
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Kernel Development]     [DCCP]     [Linux ARM Development]     [Linux]     [Photo]     [Yosemite Help]     [Linux ARM Kernel]     [Linux SCSI]     [Linux x86_64]     [Linux Hams]

  Powered by Linux