Lines Matching +full:locality +full:- +full:specific
40 For example, A NUMA profiler may obtain a log showing frequent off-node
48 Cpusets allow the automation of process locality. If a task is moved to
102 this (not yet up-to-date) page immediately block while the move is in progress.
152 Non-LRU page migration
156 for NUMA, compaction also uses migration to create high-order pages.
159 *LRU* pages. However, there are potential non-LRU pages which can be migrated
160 in drivers, for example, zsmalloc, virtio-balloon pages.
162 For virtio-balloon pages, some parts of migration code path have been hooked
163 up and added virtio-balloon specific functions to intercept migration logics.
164 It's too specific to a driver so other drivers who want to make their pages
165 movable would have to add their own specific hooks in the migration path.
167 To overcome the problem, VM supports non-LRU page migration which provides
168 generic functions for non-LRU movable pages without driver specific hooks
194 can return -EAGAIN. On -EAGAIN, VM will retry page migration in a short time
195 because VM interprets -EAGAIN as "temporary migration failure". On returning
196 any error except -EAGAIN, VM will give up the page migration without
208 4. non-LRU movable page flags
210 There are two page flags for supporting non-LRU movable page.
221 reuses the page->mapping's lower bits to represent it::
224 page->mapping = page->mapping | PAGE_MAPPING_MOVABLE;
226 so driver shouldn't access page->mapping directly. Instead, driver should
227 use page_mapping() which masks off the low two bits of page->mapping under
230 For testing of non-LRU movable pages, VM supports __PageMovable() function.
231 However, it doesn't guarantee to identify non-LRU movable pages because
232 the page->mapping field is unified with other variables in struct page.
233 If the driver releases the page after isolation by VM, page->mapping
236 page is LRU or non-LRU movable once the page has been isolated because LRU
237 pages can never have PAGE_MAPPING_MOVABLE set in page->mapping. It is also
238 good for just peeking to test non-LRU movable pages before more expensive
241 For guaranteeing non-LRU movable page, VM provides PageMovable() function.
242 Unlike __PageMovable(), PageMovable() validates page->mapping and
243 mapping->a_ops->isolate_page under lock_page(). The lock_page() prevents
244 sudden destroying of page->mapping.
253 non-LRU movable page, it can skip it. Driver doesn't need to manipulate the
266 page was migrated. If the page was a non-THP page, then this counter is
269 has 4KB-size base pages (subpages) will cause this counter to increase by
281 to be split. After splitting, a migration retry was used for it's sub-pages.