ARM pmap.c redundant vac_me_harder

Olivier Houchard mlfbsd at ci0.org
Tue Dec 11 12:38:33 PST 2007


On Tue, Dec 11, 2007 at 02:10:02PM -0600, Mark Tinguely wrote:
> 
> IMO, there is a redundant vac_me_harder() call in pmap_protect().
> The vac_me_harder() is already performed as the last step in pmap_modify_pv()
> when the PVF_WRITE flag is changed.
> 

True, I just removed it. Thanks !

> 			--- on a related topic ---
> vac_me_kpmap() can cause (2 * n ^ 2) loops of the pv_list. From my rough
> pen and paper logic and even rougher coding, I think the vac_me_XXXX routines
> can be combined together and the user scan can be kept at (2 * n) loops
> and the kernel cache fixup can be done in (3 * n) loops at the cost of
> adding a couple variables to the pmap structure. Since the variables are
> in the pmap, only one scan can be done at a time - which would not be a
> problem on uniprocessors.
> 

Hmm your probably right. Honestly I've never bothered optimizing those, because
the number of mappings for a page is typically so low it wasn't worth the
pain. But patches would be welcome ;)

> Okay, I promise to quit digging through the ARM pmap code.

Please don't, this is really appreciated :)

Regards,

Olivier


More information about the freebsd-arm mailing list