ARM pmap.c redundant vac_me_harder

Mark Tinguely tinguely at casselton.net
Tue Dec 11 12:10:06 PST 2007


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.

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

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

--Mark Tinguely.


More information about the freebsd-arm mailing list