Lines Matching defs:pfn

48 #define block_start_pfn(pfn, order)	round_down(pfn, 1UL << (order))
49 #define block_end_pfn(pfn, order) ALIGN((pfn) + 1, 1UL << (order))
50 #define pageblock_start_pfn(pfn) block_start_pfn(pfn, pageblock_order)
51 #define pageblock_end_pfn(pfn) block_end_pfn(pfn, pageblock_order)
77 unsigned long pfn = page_to_pfn(page);
80 if (pfn > high_pfn)
81 high_pfn = pfn;
258 __reset_isolation_pfn(struct zone *zone, unsigned long pfn, bool check_source,
261 struct page *page = pfn_to_online_page(pfn);
289 block_pfn = pageblock_start_pfn(pfn);
294 pfn = block_pfn;
298 block_pfn = pageblock_end_pfn(pfn) - 1;
310 if (pfn_valid_within(pfn)) {
323 pfn += (1 << PAGE_ALLOC_COSTLY_ORDER);
406 unsigned long pfn)
414 if (!IS_ALIGNED(pfn, pageblock_nr_pages))
424 static void update_cached_migrate(struct compact_control *cc, unsigned long pfn)
428 pfn = pageblock_end_pfn(pfn);
434 if (pfn > zone->compact_cached_migrate_pfn[0])
435 zone->compact_cached_migrate_pfn[0] = pfn;
437 pfn > zone->compact_cached_migrate_pfn[1])
438 zone->compact_cached_migrate_pfn[1] = pfn;
446 struct page *page, unsigned long pfn)
459 if (pfn < zone->compact_cached_free_pfn)
460 zone->compact_cached_free_pfn = pfn;
475 struct page *page, unsigned long pfn)
479 static void update_cached_migrate(struct compact_control *cc, unsigned long pfn)
484 unsigned long pfn)
703 unsigned long isolated, pfn, block_start_pfn, block_end_pfn;
706 pfn = start_pfn;
707 block_start_pfn = pageblock_start_pfn(pfn);
710 block_end_pfn = pageblock_end_pfn(pfn);
712 for (; pfn < end_pfn; pfn += isolated,
715 /* Protect pfn from changing by isolate_freepages_block */
716 unsigned long isolate_start_pfn = pfn;
721 * pfn could pass the block_end_pfn if isolated freepage
725 if (pfn >= block_end_pfn) {
726 block_start_pfn = pageblock_start_pfn(pfn);
727 block_end_pfn = pageblock_end_pfn(pfn);
756 if (pfn < end_pfn) {
763 return pfn;
1076 * Updated the cached scanner pfn once the pageblock has been scanned
1114 unsigned long pfn, block_start_pfn, block_end_pfn;
1117 pfn = start_pfn;
1118 block_start_pfn = pageblock_start_pfn(pfn);
1121 block_end_pfn = pageblock_end_pfn(pfn);
1123 for (; pfn < end_pfn; pfn = block_end_pfn,
1133 pfn = isolate_migratepages_block(cc, pfn, block_end_pfn,
1136 if (!pfn)
1143 return pfn;
1248 fast_isolate_around(struct compact_control *cc, unsigned long pfn)
1262 start_pfn = max(pageblock_start_pfn(pfn), cc->zone->zone_start_pfn);
1263 end_pfn = min(pageblock_end_pfn(pfn), zone_end_pfn(cc->zone));
1323 * a pfn from the top half if the search is problematic.
1354 unsigned long pfn;
1358 pfn = page_to_pfn(freepage);
1360 if (pfn >= highest)
1361 highest = max(pageblock_start_pfn(pfn),
1364 if (pfn >= low_pfn) {
1371 if (pfn >= min_pfn && pfn > high_pfn) {
1372 high_pfn = pfn;
1382 /* Use a minimum pfn if a preferred one was not found */
1464 unsigned long isolate_start_pfn; /* exact pfn we start at */
1466 unsigned long low_pfn; /* lowest pfn scanner is able to scan */
1479 * this pfn aligned down to the pageblock boundary, because we do
1627 update_fast_start_pfn(struct compact_control *cc, unsigned long pfn)
1633 cc->fast_start_pfn = pfn;
1635 cc->fast_start_pfn = min(cc->fast_start_pfn, pfn);
1660 unsigned long pfn = cc->migrate_pfn;
1667 return pfn;
1674 if (pfn != cc->zone->zone_start_pfn && pfn != pageblock_start_pfn(pfn))
1675 return pfn;
1683 return pfn;
1692 return pfn;
1741 pfn = pageblock_start_pfn(free_pfn);
1742 if (pfn < cc->zone->zone_start_pfn)
1743 pfn = cc->zone->zone_start_pfn;
1761 pfn = reinit_migrate_pfn(cc);
1763 return pfn;
1768 * starting at the block pointed to by the migrate scanner pfn within
2384 /* The cached pfn is always the first in a pageblock */
2387 * Only go back, not forward. The cached pfn might have been