Re: [PATCH v2 repost 6/7] mm: add the related functions to get free page info

From: Dave Hansen
Date: Wed Jul 27 2016 - 12:41:01 EST


On 07/26/2016 06:23 PM, Liang Li wrote:
> + for_each_migratetype_order(order, t) {
> + list_for_each(curr, &zone->free_area[order].free_list[t]) {
> + pfn = page_to_pfn(list_entry(curr, struct page, lru));
> + if (pfn >= start_pfn && pfn <= end_pfn) {
> + page_num = 1UL << order;
> + if (pfn + page_num > end_pfn)
> + page_num = end_pfn - pfn;
> + bitmap_set(bitmap, pfn - start_pfn, page_num);
> + }
> + }
> + }

Nit: The 'page_num' nomenclature really confused me here. It is the
number of bits being set in the bitmap. Seems like calling it nr_pages
or num_pages would be more appropriate.

Isn't this bitmap out of date by the time it's send up to the
hypervisor? Is there something that makes the inaccuracy OK here?