Lines Matching refs:start_pfn

414 /* find the smallest valid pfn in the range [start_pfn, end_pfn) */
416 unsigned long start_pfn,
419 for (; start_pfn < end_pfn; start_pfn += PAGES_PER_SUBSECTION) {
420 if (unlikely(!pfn_to_online_page(start_pfn)))
423 if (unlikely(pfn_to_nid(start_pfn) != nid))
426 if (zone != page_zone(pfn_to_page(start_pfn)))
429 return start_pfn;
435 /* find the biggest valid pfn in the range [start_pfn, end_pfn). */
437 unsigned long start_pfn,
444 for (; pfn >= start_pfn; pfn -= PAGES_PER_SUBSECTION) {
460 static void shrink_zone_span(struct zone *zone, unsigned long start_pfn,
466 if (zone->zone_start_pfn == start_pfn) {
490 start_pfn);
529 unsigned long start_pfn,
532 const unsigned long end_pfn = start_pfn + nr_pages;
537 for (pfn = start_pfn; pfn < end_pfn; pfn += cur_nr_pages) {
557 shrink_zone_span(zone, start_pfn, start_pfn + nr_pages);
645 static void online_pages_range(unsigned long start_pfn, unsigned long nr_pages)
647 const unsigned long end_pfn = start_pfn + nr_pages;
659 for (pfn = start_pfn; pfn < end_pfn;) {
678 online_mem_sections(start_pfn, end_pfn);
705 static void __meminit resize_zone_range(struct zone *zone, unsigned long start_pfn,
710 if (zone_is_empty(zone) || start_pfn < zone->zone_start_pfn)
711 zone->zone_start_pfn = start_pfn;
713 zone->spanned_pages = max(start_pfn + nr_pages, old_end_pfn) - zone->zone_start_pfn;
716 static void __meminit resize_pgdat_range(struct pglist_data *pgdat, unsigned long start_pfn,
721 if (!pgdat->node_spanned_pages || start_pfn < pgdat->node_start_pfn)
722 pgdat->node_start_pfn = start_pfn;
724 pgdat->node_spanned_pages = max(start_pfn + nr_pages, old_end_pfn) - pgdat->node_start_pfn;
750 void __ref move_pfn_range_to_zone(struct zone *zone, unsigned long start_pfn,
760 init_currently_empty_zone(zone, start_pfn, nr_pages);
761 resize_zone_range(zone, start_pfn, nr_pages);
762 resize_pgdat_range(pgdat, start_pfn, nr_pages);
771 if (!IS_ALIGNED(start_pfn, PAGES_PER_SECTION))
772 section_taint_zone_device(start_pfn);
773 if (!IS_ALIGNED(start_pfn + nr_pages, PAGES_PER_SECTION))
774 section_taint_zone_device(start_pfn + nr_pages);
783 memmap_init_range(nr_pages, nid, zone_idx(zone), start_pfn, 0,
897 static struct zone *default_kernel_zone_for_pfn(int nid, unsigned long start_pfn,
906 if (zone_intersects(zone, start_pfn, nr_pages))
1024 static inline struct zone *default_zone_for_pfn(int nid, unsigned long start_pfn,
1027 struct zone *kernel_zone = default_kernel_zone_for_pfn(nid, start_pfn,
1030 bool in_kernel = zone_intersects(kernel_zone, start_pfn, nr_pages);
1031 bool in_movable = zone_intersects(movable_zone, start_pfn, nr_pages);
1049 struct memory_group *group, unsigned long start_pfn,
1053 return default_kernel_zone_for_pfn(nid, start_pfn, nr_pages);
1059 return auto_movable_zone_for_pfn(nid, group, start_pfn, nr_pages);
1061 return default_zone_for_pfn(nid, start_pfn, nr_pages);
1162 arg.start_pfn = pfn;
1707 static void do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
1715 for (pfn = start_pfn; pfn < end_pfn; pfn++) {
1863 static int count_system_ram_pages_cb(unsigned long start_pfn,
1875 int __ref offline_pages(unsigned long start_pfn, unsigned long nr_pages,
1878 const unsigned long end_pfn = start_pfn + nr_pages;
1893 if (WARN_ON_ONCE(!nr_pages || !pageblock_aligned(start_pfn) ||
1894 !IS_ALIGNED(start_pfn + nr_pages, PAGES_PER_SECTION)))
1905 walk_system_ram_range(start_pfn, nr_pages, &system_ram_pages,
1918 if (WARN_ON_ONCE(page_zone(pfn_to_page(start_pfn)) != zone ||
1933 ret = start_isolate_page_range(start_pfn, end_pfn,
1942 arg.start_pfn = start_pfn;
1954 pfn = start_pfn;
1989 ret = dissolve_free_huge_pages(start_pfn, end_pfn);
1995 ret = test_pages_isolated(start_pfn, end_pfn, MEMORY_OFFLINE);
2000 __offline_isolated_pages(start_pfn, end_pfn);
2016 adjust_managed_page_count(pfn_to_page(start_pfn), -nr_pages);
2017 adjust_present_page_count(pfn_to_page(start_pfn), group, -nr_pages);
2039 remove_pfn_range_from_zone(zone, start_pfn, nr_pages);
2044 undo_isolate_page_range(start_pfn, end_pfn, MIGRATE_MOVABLE);
2051 (unsigned long long) start_pfn << PAGE_SHIFT,