Re: [PATCH v2 repost 6/7] mm: add the related functions to get free page info
From: Michael S. Tsirkin
Date: Wed Jul 27 2016 - 20:17:16 EST
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.