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

Michael S. Tsirkin
2016-07-28T00:17:07Z

On Thu, Jul 28, 2016 at 12:10:16AM +0000, Li, Liang Z wrote:
> > 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

Right but this should be clear from code and naming.