RE: [Qemu-devel] [PATCH kernel v5 0/5] Extend virtio-balloon for fast (de)inflating & fast live migration

From: Li, Liang Z
Date: Thu Dec 08 2016 - 23:45:47 EST


> > 1. Current patches do a hypercall for each order in the allocator.
> > This is inefficient, but independent from the underlying data
> > structure in the ABI, unless bitmaps are in play, which they aren't.
> > 2. Should we have bitmaps in the ABI, even if they are not in use by the
> > guest implementation today? Andrea says they have zero benefits
> > over a pfn/len scheme. Dave doesn't think they have zero benefits
> > but isn't that attached to them. QEMU's handling gets more
> > complicated when using a bitmap.
> > 3. Should the ABI contain records each with a pfn/len pair or a
> > pfn/order pair?
> > 3a. 'len' is more flexible, but will always be a power-of-two anyway
> > for high-order pages (the common case)
>
> Len wouldn't be a power of two practically only if we detect adjacent pages
> of smaller order that may merge into larger orders we already allocated (or
> the other way around).
>
> [addr=2M, len=2M] allocated at order 9 pass [addr=4M, len=1M] allocated at
> order 8 pass -> merge as [addr=2M, len=3M]
>
> Not sure if it would be worth it, but that unless we do this, page-order or len
> won't make much difference.
>
> > 3b. if we decide not to have a bitmap, then we basically have plenty
> > of space for 'len' and should just do it
> > 3c. It's easiest for the hypervisor to turn pfn/len into the
> > madvise() calls that it needs.
> >
> > Did I miss anything?
>
> I think you summarized fine all my arguments in your summary.
>
> > FWIW, I don't feel that strongly about the bitmap. Li had one
> > originally, but I think the code thus far has demonstrated a huge
> > benefit without even having a bitmap.
> >
> > I've got no objections to ripping the bitmap out of the ABI.
>
> I think we need to see a statistic showing the number of bits set in each
> bitmap in average, after some uptime and lru churn, like running stresstest
> app for a while with I/O and then inflate the balloon and
> count:
>
> 1) how many bits were set vs total number of bits used in bitmaps
>
> 2) how many times bitmaps were used vs bitmap_len = 0 case of single
> page
>
> My guess would be like very low percentage for both points.
>

> So there is a connection with the MAX_ORDER..0 allocation loop and the ABI
> change, but I agree any of the ABI proposed would still allow for it this logic to
> be used. Bitmap or not bitmap, the loop would still work.

Hi guys,

What's the conclusion of your discussion?
It seems you want some statistic before deciding whether to ripping the bitmap from the ABI, am I right?

Thanks!
Liang