Subject: Re: PXA250 Xscale and page tables
To: Colin Cook <email@example.com>
From: Jason R Thorpe <firstname.lastname@example.org>
Date: 02/01/2003 22:51:24
On Sat, Feb 01, 2003 at 10:13:55AM -0700, Colin Cook wrote:
> Sorry, There *is* something grossly wrong with ALL arm32 based NetBSD code.
> ptes[arm_btop(npv->pv_va)] &= ~L2_S_CACHE_MASK in pmap.c
> It is removing the C bit from application CODE space. We have removed this
> line and our app now runs 10X faster.
The ARM uses a virtually-indexed,virtually-tagged cached. Making the page
un-cached is required if you have multiple mappings of the same physical
page within an address space (either 2 mappings in the same proc or a proc
mapping and a kernel mapping for the same page), thus causing an incompatible
cache alias, leading to Bad Things.
-- Jason R. Thorpe <email@example.com>