ARM pmap.c redundant vac_me_harder

M. Warner Losh imp at bsdimp.com
Tue Dec 11 12:36:11 PST 2007


In message: <200712112010.lBBKA2qJ016942 at casselton.net>
            Mark Tinguely <tinguely at casselton.net> writes:
: 
: 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.

It looks to my eye like the vac_me_harder() in pmap_modify_pv only
happens when the write flag is changed, while the call in pmap_protect
is always called.  I've not looked closely enough to know if this
difference matters, but I thought I'd mention it to see if you'd
considered it.

: 			--- 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.

No, but mutlicore ARM is around the corner, so we don't want to paint
ourselves into too much of a corner.

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

Please don't :-).  We can always use the help there.

Warner


More information about the freebsd-arm mailing list