Lines Matching refs:pfn
337 unsigned long pfn) in get_pageblock_bitmap() argument
340 return section_to_usemap(__pfn_to_section(pfn)); in get_pageblock_bitmap()
346 static inline int pfn_to_bitidx(const struct page *page, unsigned long pfn) in pfn_to_bitidx() argument
349 pfn &= (PAGES_PER_SECTION-1); in pfn_to_bitidx()
351 pfn = pfn - pageblock_start_pfn(page_zone(page)->zone_start_pfn); in pfn_to_bitidx()
353 return (pfn >> pageblock_order) * NR_PAGEBLOCK_BITS; in pfn_to_bitidx()
362 get_pfnblock_bitmap_bitidx(const struct page *page, unsigned long pfn, in get_pfnblock_bitmap_bitidx() argument
374 VM_BUG_ON_PAGE(!zone_spans_pfn(page_zone(page), pfn), page); in get_pfnblock_bitmap_bitidx()
376 bitmap = get_pageblock_bitmap(page, pfn); in get_pfnblock_bitmap_bitidx()
377 *bitidx = pfn_to_bitidx(page, pfn); in get_pfnblock_bitmap_bitidx()
394 unsigned long pfn, in __get_pfnblock_flags_mask() argument
401 get_pfnblock_bitmap_bitidx(page, pfn, &bitmap_word, &bitidx); in __get_pfnblock_flags_mask()
419 bool get_pfnblock_bit(const struct page *page, unsigned long pfn, in get_pfnblock_bit() argument
428 get_pfnblock_bitmap_bitidx(page, pfn, &bitmap_word, &bitidx); in get_pfnblock_bit()
444 get_pfnblock_migratetype(const struct page *page, unsigned long pfn) in get_pfnblock_migratetype() argument
449 flags = __get_pfnblock_flags_mask(page, pfn, mask); in get_pfnblock_migratetype()
466 static void __set_pfnblock_flags_mask(struct page *page, unsigned long pfn, in __set_pfnblock_flags_mask() argument
473 get_pfnblock_bitmap_bitidx(page, pfn, &bitmap_word, &bitidx); in __set_pfnblock_flags_mask()
489 void set_pfnblock_bit(const struct page *page, unsigned long pfn, in set_pfnblock_bit() argument
498 get_pfnblock_bitmap_bitidx(page, pfn, &bitmap_word, &bitidx); in set_pfnblock_bit()
509 void clear_pfnblock_bit(const struct page *page, unsigned long pfn, in clear_pfnblock_bit() argument
518 get_pfnblock_bitmap_bitidx(page, pfn, &bitmap_word, &bitidx); in clear_pfnblock_bit()
582 unsigned long pfn = page_to_pfn(page); in page_outside_zone_boundaries() local
589 ret = !zone_spans_pfn(zone, pfn); in page_outside_zone_boundaries()
594 pfn, zone_to_nid(zone), zone->name, in page_outside_zone_boundaries()
901 buddy_merge_likely(unsigned long pfn, unsigned long buddy_pfn, in buddy_merge_likely() argument
910 higher_page_pfn = buddy_pfn & pfn; in buddy_merge_likely()
911 higher_page = page + (higher_page_pfn - pfn); in buddy_merge_likely()
942 unsigned long pfn, in __free_one_page() argument
956 VM_BUG_ON_PAGE(pfn & ((1 << order) - 1), page); in __free_one_page()
969 buddy = find_buddy_page_pfn(page, pfn, order, &buddy_pfn); in __free_one_page()
1006 combined_pfn = buddy_pfn & pfn; in __free_one_page()
1007 page = page + (combined_pfn - pfn); in __free_one_page()
1008 pfn = combined_pfn; in __free_one_page()
1020 to_tail = buddy_merge_likely(pfn, buddy_pfn, page, order); in __free_one_page()
1476 unsigned long pfn; in free_pcppages_bulk() local
1480 pfn = page_to_pfn(page); in free_pcppages_bulk()
1481 mt = get_pfnblock_migratetype(page, pfn); in free_pcppages_bulk()
1488 __free_one_page(page, pfn, zone, order, mt, FPI_NONE); in free_pcppages_bulk()
1498 unsigned long pfn, int order, fpi_t fpi) in split_large_buddy() argument
1500 unsigned long end = pfn + (1 << order); in split_large_buddy()
1502 VM_WARN_ON_ONCE(!IS_ALIGNED(pfn, 1 << order)); in split_large_buddy()
1510 int mt = get_pfnblock_migratetype(page, pfn); in split_large_buddy()
1512 __free_one_page(page, pfn, zone, order, mt, fpi); in split_large_buddy()
1513 pfn += 1 << order; in split_large_buddy()
1514 if (pfn == end) in split_large_buddy()
1516 page = pfn_to_page(pfn); in split_large_buddy()
1530 unsigned long pfn, unsigned int order, in free_one_page() argument
1559 split_large_buddy(zone, page, pfn, order, fpi_flags); in free_one_page()
1568 unsigned long pfn = page_to_pfn(page); in __free_pages_ok() local
1572 free_one_page(zone, page, pfn, order, fpi_flags); in __free_pages_ok()
1938 unsigned long pfn, end_pfn; in __move_freepages_block() local
1945 for (pfn = start_pfn; pfn < end_pfn;) { in __move_freepages_block()
1946 page = pfn_to_page(pfn); in __move_freepages_block()
1948 pfn++; in __move_freepages_block()
1960 pfn += 1 << order; in __move_freepages_block()
1971 unsigned long pfn, start, end; in prep_move_freepages_block() local
1973 pfn = page_to_pfn(page); in prep_move_freepages_block()
1974 start = pageblock_start_pfn(pfn); in prep_move_freepages_block()
1975 end = pageblock_end_pfn(pfn); in prep_move_freepages_block()
1994 for (pfn = start; pfn < end;) { in prep_move_freepages_block()
1995 page = pfn_to_page(pfn); in prep_move_freepages_block()
2000 pfn += nr; in prep_move_freepages_block()
2010 pfn++; in prep_move_freepages_block()
2039 unsigned long pfn = start_pfn; in find_large_buddy() local
2041 while (!PageBuddy(page = pfn_to_page(pfn))) { in find_large_buddy()
2045 pfn &= ~0UL << order; in find_large_buddy()
2051 if (pfn + (1 << buddy_order(page)) > start_pfn) in find_large_buddy()
2052 return pfn; in find_large_buddy()
2088 unsigned long start_pfn, pfn; in __move_freepages_block_isolate() local
2106 pfn = find_large_buddy(start_pfn); in __move_freepages_block_isolate()
2107 if (pfn != start_pfn) { in __move_freepages_block_isolate()
2108 struct page *buddy = pfn_to_page(pfn); in __move_freepages_block_isolate()
2112 get_pfnblock_migratetype(buddy, pfn)); in __move_freepages_block_isolate()
2114 split_large_buddy(zone, buddy, pfn, order, FPI_NONE); in __move_freepages_block_isolate()
2123 get_pfnblock_migratetype(page, pfn)); in __move_freepages_block_isolate()
2125 split_large_buddy(zone, page, pfn, order, FPI_NONE); in __move_freepages_block_isolate()
2887 unsigned long pfn = page_to_pfn(page); in __free_frozen_pages() local
2906 migratetype = get_pfnblock_migratetype(page, pfn); in __free_frozen_pages()
2909 free_one_page(zone, page, pfn, order, fpi_flags); in __free_frozen_pages()
2926 free_one_page(zone, page, pfn, order, fpi_flags); in __free_frozen_pages()
2949 unsigned long pfn = folio_pfn(folio); in free_unref_folios() local
2960 pfn, order, FPI_NONE); in free_unref_folios()
2973 unsigned long pfn = folio_pfn(folio); in free_unref_folios() local
2978 migratetype = get_pfnblock_migratetype(&folio->page, pfn); in free_unref_folios()
2995 free_one_page(zone, &folio->page, pfn, in free_unref_folios()
3008 free_one_page(zone, &folio->page, pfn, in free_unref_folios()
6703 unsigned long pfn = start; in __alloc_contig_migrate_range() local
6714 while (pfn < end || !list_empty(&cc->migratepages)) { in __alloc_contig_migrate_range()
6722 ret = isolate_migratepages_range(cc, pfn, end); in __alloc_contig_migrate_range()
6725 pfn = cc->migrate_pfn; in __alloc_contig_migrate_range()
7036 unsigned long ret, pfn, flags; in alloc_contig_pages_noprof() local
7046 pfn = ALIGN(zone->zone_start_pfn, nr_pages); in alloc_contig_pages_noprof()
7047 while (zone_spans_last_pfn(zone, pfn, nr_pages)) { in alloc_contig_pages_noprof()
7048 if (pfn_range_valid_contig(zone, pfn, nr_pages)) { in alloc_contig_pages_noprof()
7057 ret = __alloc_contig_pages(pfn, nr_pages, in alloc_contig_pages_noprof()
7060 return pfn_to_page(pfn); in alloc_contig_pages_noprof()
7063 pfn += nr_pages; in alloc_contig_pages_noprof()
7071 void free_contig_range(unsigned long pfn, unsigned long nr_pages) in free_contig_range() argument
7074 struct folio *folio = pfn_folio(pfn); in free_contig_range()
7083 pfn, nr_pages, expected); in free_contig_range()
7087 for (; nr_pages--; pfn++) { in free_contig_range()
7088 struct page *page = pfn_to_page(pfn); in free_contig_range()
7151 unsigned long pfn = start_pfn; in __offline_isolated_pages() local
7156 offline_mem_sections(pfn, end_pfn); in __offline_isolated_pages()
7157 zone = page_zone(pfn_to_page(pfn)); in __offline_isolated_pages()
7159 while (pfn < end_pfn) { in __offline_isolated_pages()
7160 page = pfn_to_page(pfn); in __offline_isolated_pages()
7166 pfn++; in __offline_isolated_pages()
7177 pfn++; in __offline_isolated_pages()
7186 pfn += (1 << order); in __offline_isolated_pages()
7199 unsigned long pfn = page_to_pfn(page); in is_free_buddy_page() local
7203 const struct page *head = page - (pfn & ((1 << order) - 1)); in is_free_buddy_page()
7259 unsigned long pfn = page_to_pfn(page); in take_page_off_buddy() local
7266 struct page *page_head = page - (pfn & ((1 << order) - 1)); in take_page_off_buddy()
7300 unsigned long pfn = page_to_pfn(page); in put_page_back_buddy() local
7301 int migratetype = get_pfnblock_migratetype(page, pfn); in put_page_back_buddy()
7304 __free_one_page(page, pfn, zone, 0, migratetype, FPI_NONE); in put_page_back_buddy()