Date: Tue, 13 Jul 2010 09:42:22 -0500 From: Mark Tinguely <marktinguely@gmail.com> To: alc@freebsd.org Cc: freebsd-arm@freebsd.org Subject: Revision 209887 Message-ID: <4C3C7B4E.604@gmail.com>
index | next in thread | raw e-mail
pmap_qenter() is pretty expensive on the ARM processor with VIPT caches, because remapping a KVA can potentially cause the shared mappings to have their cache turned back on and then immediately turned back off and force a cache flush. Revision 209887 makes amd64/i386 pmap_qenter() make smart decisions on the remapping which would help the ARM. Looking at the buffer code 2 or 3 weeks ago, and noticed that most of the pmap_qenter() calls were done wisely. At that time, I was wondering if we could/should fix the few places that involved a page by page loop doing bogus_page substitutions and then calling pmap_qenter() for a full buffer re-map instead of the changed page. It appeared to me that we call pmap_qenter() L*B times where L is the number of pages in the buffer and B is the number of bogus pages in the buffer. We only need to change B pages. I can understand it would not be worth the change if typically the number of pages in a buffer and the number of bogus pages in the buffer is small. --Mark.help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4C3C7B4E.604>
