RE: [PATCH RFC kernel] balloon: speed up inflating/deflating process
From: Li, Liang Z
Date: Tue May 24 2016 - 03:51:29 EST
> On 20/05/2016 11:59, Liang Li wrote:
> > +
> > + sg_init_table(sg, 5);
> > + sg_set_buf(&sg[0], &flags, sizeof(flags));
> > + sg_set_buf(&sg[1], &start_pfn, sizeof(start_pfn));
> > + sg_set_buf(&sg[2], &page_shift, sizeof(page_shift));
> > + sg_set_buf(&sg[3], &bmap_len, sizeof(bmap_len));
>
> These four should probably be placed in a single struct and therefore a single
> sg entry. It might even be faster to place it together with the bitmap, thus
> avoiding the use of indirect descriptors.
>
Yes, thanks for your suggestion.
> You should also test ballooning of a 64GB guest after filling in the page cache,
> not just ballooning of a freshly booted 4GB guest. This will give you a much
> more sparse bitmap. Still, the improvement in sending PFNs to the host are
I will include the test result for that case in next version.
Thanks,
Liang
> impressive.
>
> Thanks,
>
> Paolo
>
> > + sg_set_buf(&sg[4], vb->page_bitmap +
> > + (start_pfn / BITS_PER_LONG), bmap_len);
> > + virtqueue_add_outbuf(vq, sg, 5, vb, GFP_KERNEL);