Messages in this thread | | | Date | Tue, 04 Jun 2013 08:22:07 -0700 | From | Dave Hansen <> | Subject | Re: [v5][PATCH 5/6] mm: vmscan: batch shrink_page_list() locking operations |
| |
On 06/03/2013 10:07 PM, Minchan Kim wrote: >>> > > + while (!list_empty(remove_list)) { >>> > > + page = lru_to_page(remove_list); >>> > > + BUG_ON(!PageLocked(page)); >>> > > + BUG_ON(page_mapping(page) != mapping); >>> > > + list_del(&page->lru); >>> > > + >>> > > + if (!__remove_mapping(mapping, page)) { >>> > > + unlock_page(page); >>> > > + list_add(&page->lru, ret_pages); >>> > > + continue; >>> > > + } >>> > > + list_add(&page->lru, &need_free_mapping); >>> > > + } >>> > > + spin_unlock_irq(&mapping->tree_lock); >>> > > + >> > While reclaiming pages, can we open ears upon IRQ controller, >> > if the page list length is over 10, or even 20? > At the moment, it implicitly could be bounded by SWAP_CLUSTER_MAX and > it's the value used by isolate_migratepages_ranges to enable IRQ. > I have no idea it's proper value to give a chace to IRQ but at least, > Dave's code doesn't break the rule. > If we need a tune for that, it could be a another patch to investigate
I also wouldn't exactly call this "reclaiming pages". As Minchan mentions, this is already bounded and it's a relatively cheap set of operations. *WAY* cheaper than actually reclaiming a page.
Honestly, this whole patch series is about trading latency for increased bandwidth reclaiming pages.
| |