[patch 071/149] ARM: 6166/1: Proper prefetch abort handling on pre-ARMv6

Kirill A. Shutemov kirill at shutemov.name
Mon Jul 12 18:08:01 EDT 2010


On Thu, Jul 08, 2010 at 02:31:22PM +0300, Kirill A. Shutemov wrote:
> On Wed, Jul 07, 2010 at 11:34:18PM +0100, Russell King - ARM Linux wrote:
> > On Wed, Jul 07, 2010 at 11:56:01AM +0300, Kirill A. Shutemov wrote:
> > > But it seems that the problem is more global. Potentially, any of
> > > pmd_none() check may produce false results. I don't see an easy way to fix
> > > it.
> > 
> > It isn't.  We normally guarantee that we always fill on both L1 entries.
> > The only exception is for the mappings specified via create_mapping()
> > which is used for the static platform mappings.
>  
> Why do not to change create_mapping() to follow the same rules?
> I mean, create sections only if it asked for 2*SECTION_SIZE with
> appropriate alignment. It reduces number of section mappings, but,
> probably, will be a bit cleaner and less error-prune.
> 
> > > Does Linux VM still expect one PTE table per page?
> > 
> > Yes, and as far as I can see probably always will.  Hence why we need
> > to put two L1 entries in one page and lie to the kernel about the sizes
> > of the hardware entries.
> 
> Another option is leave half of page with PTE table free. Is it very bad
> idea?
> 
> How other architectures handle it? Or only on ARM PTL table size is less
> than page size?

Russell, any comments? I would like to fix it in a right way.

-- 
 Kirill A. Shutemov



More information about the linux-arm-kernel mailing list