Messages in this thread | | | Date | Tue, 15 Jan 2008 08:57:11 +0900 | From | KOSAKI Motohiro <> | Subject | Re: [patch 05/19] split LRU lists into anon & file sets |
| |
Hi
> > Why drop (total_swap_pages == 0 && PageAnon(page)) condition? > > in embedded sysmtem, > > CONFIG_NORECLAIM is OFF (because almost embedded cpu is 32bit) and > > that anon move to inactive list is meaningless because it doesn't have swap. > > That was a mistake, kind of. Since all swap backed pages are on their > own LRU lists, we should not scan those lists at all any more if we are > out of swap space. > > The patch that fixes get_scan_ratio() adds that test. > > Having said that, with the nr_swap_pages==0 test in get_scan_ratio(), > we no longer need to test for that condition in shrink_active_list().
Oh I see! thank you for your kindful lecture.
your implementation is very cute.
> > below code is more good, may be. > > but I don't understand yet why ignore page_referenced() result at anon page ;-) > > On modern systems, swapping out anonymous pages is a relatively rare > event. All anonymous pages start out as active and referenced, so > testing for that condition does (1) not add any information and (2) > mean we need to scan ALL of the anonymous pages, in order to find one > candidate to swap out (since they are all referenced). > > Simply deactivating a few pages and checking whether they were referenced > again while on the (smaller) inactive_anon_list means we can find candidates > to page out with a lot less CPU time used.
thanks, I understand, may be.
- kosaki
| |