On Wed, 9 Nov 2005, KAMEZAWA Hiroyuki wrote: > > We only allocate 256 pages which are on the newlist. If the newlist is empty > > but there are still pages that could be migrated (!list_empty(pagelist)) > > then we need to allocate more pages and call migrate_pages() again. > Ah, Okay. > > confirmation: > 1. Because mm->sem is held, there is no page-is-truncated/freed case. The page is truncated/freed case is handled by migrate_pages(). The page is moved to the "moved" lists and then returned to the LRU. The functions putting a page back to the LRU will check the refcount and discard the page. > 2. Because pages in pagelist are removed from zone's lru, kswapd and others > will not > find and unmap them. There is no page-is-swapedout-by-others case. Right. > So if all target pages are successfuly remvoed from pagelist, newlist must be > empty. > Right ? It could be empty but there could be new pages left over because some pages were freed before we could move them or we were unable to migrate a page and fell back to swap for a particular page. We need to free the leftover pages then. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[Submit] [Site Home] [Kernel Newbies] [Memory] [Consulting] [Netfilter] [Bugtraq] [Rubini] [Photo] [DVD Store] [Gimp] [Yosemite News] [MIPS Linux] [ARM Linux] [Linux Security] [Linux RAID] [Video 4 Linux] [Linux for the blind] [Linux Resources]