Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Jul 2010 12:35:56 -0500
From:      Alan Cox <alc@cs.rice.edu>
To:        Mark Tinguely <marktinguely@gmail.com>
Cc:        alc@freebsd.org, freebsd-arm@freebsd.org
Subject:   Re: Revision 209887
Message-ID:  <4C45DE7C.5080207@cs.rice.edu>
In-Reply-To: <4C45D88A.30107@gmail.com>
References:  <4C45D88A.30107@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Mark Tinguely wrote:
> This is a FYI on the pmap_qenter() change in the i386/amd64 - revision 
> 209887.
> PS to last week's email. Sorry I did not keep the message-id consistent.
>
> A similar change in the ARM pmap_kenter_internal() seems to help 
> significantly. Running a port (bash3) compile on a modified GUMSTIX 
> kernel on an emulator, I am getting mid-teen percentages of mapping 
> request that we do not have to do. An example snapshot of the counts:
>
>    2475 kenter()s not needed.
>    11479 enters required.
>    All 11479 old ptes were zero because we aggressively remove 
> dangling allocation.
>
> As the compilation continues, the ratio between kenter()s not needed 
> per kenters() needed goes up.
>
> The numbers above assume a patch for vfs_unbusy_pages() that is the 
> duplicate to the one in bufdone_finish().  In theory the 
> vfs_unbusy_pages() should help keep the number of  unnecessary 
> pmap_qenter() calls down, so the above numbers could only be higher 
> without that patch.
>

Keep in mind that vfs_unbusy_pages() is only used by the NFS client 
code, so it may not affect your particular test anyway.

> I also propose to removed the calls to pmap_wb_page() in pmap_qenter() 
> and pmap_inv_page() in pmap_qremove():
> In pmap_qenter(), pmap_fix_cache() will write back the page mappings 
> and turn off caching if shared.
> If the page was shared when pmap_qremove() is called, the caches will 
> already be turned off, and pmap_kremove() will writeback and 
> invalidate this mapping during the removal process.
>

Alan




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4C45DE7C.5080207>