[prev in list] [next in list] [prev in thread] [next in thread]
List: freebsd-arm
Subject: Re: Revision 209887
From: Alan Cox <alc () cs ! rice ! edu>
Date: 2010-07-20 17:35:56
Message-ID: 4C45DE7C.5080207 () cs ! rice ! edu
[Download RAW message or body]
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
_______________________________________________
freebsd-arm@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-arm
To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freebsd.org"
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic