在 2022/12/7 0:00, Peter Xu 写道:
Hi, Shivam,
On Tue, Dec 06, 2022 at 11:18:52AM +0530, Shivam Kumar wrote:
[...]
Note
----------
----------
We understand that there is a good scope of improvement in the current
implementation. Here is a list of things we are working on:
1) Adding dirty quota as a migration capability so that it can be toggled
through QMP command.
2) Adding support for throttling guest DMAs.
3) Not enabling dirty quota for the first migration iteration.
Agreed.
4) Falling back to current auto-converge based throttling in cases where dirty
quota throttling can overthrottle.
If overthrottle happens, would auto-converge always be better?
Please stay tuned for the next patchset.
Shivam Kumar (1):
Dirty quota-based throttling of vcpus
accel/kvm/kvm-all.c | 91 +++++++++++++++++++++++++++++++++++++++
include/exec/memory.h | 3 ++
include/hw/core/cpu.h | 5 +++
include/sysemu/kvm_int.h | 1 +
linux-headers/linux/kvm.h | 9 ++++
migration/migration.c | 22 ++++++++++
migration/migration.h | 31 +++++++++++++
softmmu/memory.c | 64 +++++++++++++++++++++++++++
8 files changed, 226 insertions(+)
It'd be great if I could get some more feedback before I send v2. Thanks.
Sorry to respond late.
What's the status of the kernel patchset?
From high level the approach looks good at least to me. It's just that (as
I used to mention) we have two similar approaches now on throttling the
guest for precopy. I'm not sure what's the best way to move forward if
without doing a comparison of the two.
https://lore.kernel.org/all/cover.1669047366.git.huangy81@xxxxxxxxxxxxxxx/
Sorry to say so, and no intention to create a contention, but merging the
two without any thought will definitely confuse everybody. We need to
figure out a way.
From what I can tell..
One way is we choose one of them which will be superior to the other and
all of us stick with it (for either higher possibility of migrate, less
interference to the workloads, and so on).
The other way is we take both, when each of them may be suitable for
different scenarios. However in this latter case, we'd better at least be
aware of the differences (which suites what), then that'll be part of
documentation we need for each of the features when the user wants to use
them.
Add Yong into the loop.
Any thoughts?
This is quite different from "dirtylimit capability of migration". IMHO,
quota-based implementation seems a little complicated, because it
depends on correctness of dirty quota and the measured data, which
involves the patchset both in qemu and kernel. It seems that dirtylimit
and quota-based are not mutually exclusive, at least we can figure out
which suites what firstly depending on the test results as Peter said.
--
Best regard
Hyman Huang(黄勇)