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

From: Li, Liang Z
Date: Wed Jul 27 2016 - 20:12:34 EST


> Subject: Re: [PATCH v2 repost 6/7] mm: add the related functions to get free
> page info
>
> 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.
>

You are right, will change.

> 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?

Yes. The dirty page logging will be used to correct the inaccuracy.
The dirty page logging should be started before getting the free page bitmap, then if some of the free pages become no free for writing, these pages will be tracked by the dirty page logging mechanism.

Thanks!
Liang