Li, Liang Z
2016-Dec-09 04:45 UTC
[Qemu-devel] [PATCH kernel v5 0/5] Extend virtio-balloon for fast (de)inflating & fast live migration
> > 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
Dave Hansen
2016-Dec-09 04:53 UTC
[Qemu-devel] [PATCH kernel v5 0/5] Extend virtio-balloon for fast (de)inflating & fast live migration
On 12/08/2016 08:45 PM, Li, Liang Z wrote:> 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?I think Andrea and David feel pretty strongly that we should remove the bitmap, unless we have some data to support keeping it. I don't feel as strongly about it, but I think their critique of it is pretty valid. I think the consensus is that the bitmap needs to go. The only real question IMNHO is whether we should do a power-of-2 or a length. But, if we have 12 bits, then the argument for doing length is pretty strong. We don't need anywhere near 12 bits if doing power-of-2.
Li, Liang Z
2016-Dec-09 05:35 UTC
[Qemu-devel] [PATCH kernel v5 0/5] Extend virtio-balloon for fast (de)inflating & fast live migration
> On 12/08/2016 08:45 PM, Li, Liang Z wrote: > > 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? > > I think Andrea and David feel pretty strongly that we should remove the > bitmap, unless we have some data to support keeping it. I don't feel as > strongly about it, but I think their critique of it is pretty valid. I think the > consensus is that the bitmap needs to go. >Thanks for you clarification.> The only real question IMNHO is whether we should do a power-of-2 or a > length. But, if we have 12 bits, then the argument for doing length is pretty > strong. We don't need anywhere near 12 bits if doing power-of-2. >So each item can max represent 16MB Bytes, seems not big enough, but enough for most case. Things became much more simple without the bitmap, and I like simple solution too. :) I will prepare the v6 and remove all the bitmap related stuffs. Thank you all! Liang
Li, Liang Z
2016-Dec-14 08:59 UTC
[Qemu-devel] [PATCH kernel v5 0/5] Extend virtio-balloon for fast (de)inflating & fast live migration
> Subject: Re: [Qemu-devel] [PATCH kernel v5 0/5] Extend virtio-balloon for > fast (de)inflating & fast live migration > > On 12/08/2016 08:45 PM, Li, Liang Z wrote: > > 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? > > I think Andrea and David feel pretty strongly that we should remove the > bitmap, unless we have some data to support keeping it. I don't feel as > strongly about it, but I think their critique of it is pretty valid. I think the > consensus is that the bitmap needs to go. > > The only real question IMNHO is whether we should do a power-of-2 or a > length. But, if we have 12 bits, then the argument for doing length is pretty > strong. We don't need anywhere near 12 bits if doing power-of-2.Just found the MAX_ORDER should be limited to 12 if use length instead of order, If the MAX_ORDER is configured to a value bigger than 12, it will make things more complex to handle this case. If use order, we need to break a large memory range whose length is not the power of 2 into several small ranges, it also make the code complex. It seems we leave too many bit for the pfn, and the bits leave for length is not enough, How about keep 45 bits for the pfn and 19 bits for length, 45 bits for pfn can cover 57 bits physical address, that should be enough in the near feature. What's your opinion? thanks! Liang
Possibly Parallel Threads
- [Qemu-devel] [PATCH kernel v5 0/5] Extend virtio-balloon for fast (de)inflating & fast live migration
- [Qemu-devel] [PATCH kernel v5 0/5] Extend virtio-balloon for fast (de)inflating & fast live migration
- [Qemu-devel] [PATCH kernel v5 0/5] Extend virtio-balloon for fast (de)inflating & fast live migration
- [Qemu-devel] [PATCH kernel v5 0/5] Extend virtio-balloon for fast (de)inflating & fast live migration
- [Qemu-devel] [PATCH kernel v5 0/5] Extend virtio-balloon for fast (de)inflating & fast live migration