Message ID | 1610132911-33839-1-git-send-email-huangy81@chinatelecom.cn |
---|---|
State | New |
Headers | show |
Series | kvm: mirror "-machine dirty_gfn_count" to the accelerator property | expand |
On 08/01/21 20:08, huangy81@chinatelecom.cn wrote: > QEMU enable the dirty ring feature by specifing the "-accel" sub-parameter. > https://lore.kernel.org/qemu-devel/20210108165050.406906-10-peterx@redhat.com/ > Libvirt use "-machine accel=kvm" option to specify the accelerator by default, > which is incompatible with above option. > > This patch introduce the "dirty_gfn_count" sub-parameter of the "-machine" > in the way that the commit "23b089" has done. So that Libvirt can enable this > feature by adding "-machine dirty_gfn_count=xxx" to the QEMU command line. > > Signed-off-by: Hyman <huangy81@chinatelecom.cn> Libvirt should switch to "-accel kvm" instead. The "-machine" options for accelerators are legacy and now there is a better mechanism. There will never be a version of QEMU that supports dirty ring and doesn't support "-accel kvm", so it's easy for Libvirt to detect when to use "-accel". Paolo > --- > softmmu/vl.c | 3 ++- > util/qemu-config.c | 4 ++++ > 2 files changed, 6 insertions(+), 1 deletion(-) > > diff --git a/softmmu/vl.c b/softmmu/vl.c > index 7ddf405..d8e3dec 100644 > --- a/softmmu/vl.c > +++ b/softmmu/vl.c > @@ -1666,7 +1666,8 @@ static int machine_set_property(void *opaque, > object_register_sugar_prop(ACCEL_CLASS_NAME("xen"), qom_name, value); > return 0; > } > - if (g_str_equal(qom_name, "kvm-shadow-mem")) { > + if (g_str_equal(qom_name, "kvm-shadow-mem") || > + g_str_equal(qom_name, "dirty-gfn-count")) { > object_register_sugar_prop(ACCEL_CLASS_NAME("kvm"), qom_name, value); > return 0; > } > diff --git a/util/qemu-config.c b/util/qemu-config.c > index e2a700b..70f1b50 100644 > --- a/util/qemu-config.c > +++ b/util/qemu-config.c > @@ -234,6 +234,10 @@ static QemuOptsList machine_opts = { > .help = "Up to 8 chars in set of [A-Za-z0-9. ](lower case chars" > " converted to upper case) to pass to machine" > " loader, boot manager, and guest kernel", > + },{ > + .name = "dirty_gfn_count", > + .type = QEMU_OPT_NUMBER, > + .help = "KVM dirty ring GFN count", > }, > { /* End of list */ } > } >
diff --git a/softmmu/vl.c b/softmmu/vl.c index 7ddf405..d8e3dec 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c @@ -1666,7 +1666,8 @@ static int machine_set_property(void *opaque, object_register_sugar_prop(ACCEL_CLASS_NAME("xen"), qom_name, value); return 0; } - if (g_str_equal(qom_name, "kvm-shadow-mem")) { + if (g_str_equal(qom_name, "kvm-shadow-mem") || + g_str_equal(qom_name, "dirty-gfn-count")) { object_register_sugar_prop(ACCEL_CLASS_NAME("kvm"), qom_name, value); return 0; } diff --git a/util/qemu-config.c b/util/qemu-config.c index e2a700b..70f1b50 100644 --- a/util/qemu-config.c +++ b/util/qemu-config.c @@ -234,6 +234,10 @@ static QemuOptsList machine_opts = { .help = "Up to 8 chars in set of [A-Za-z0-9. ](lower case chars" " converted to upper case) to pass to machine" " loader, boot manager, and guest kernel", + },{ + .name = "dirty_gfn_count", + .type = QEMU_OPT_NUMBER, + .help = "KVM dirty ring GFN count", }, { /* End of list */ } }
QEMU enable the dirty ring feature by specifing the "-accel" sub-parameter. https://lore.kernel.org/qemu-devel/20210108165050.406906-10-peterx@redhat.com/ Libvirt use "-machine accel=kvm" option to specify the accelerator by default, which is incompatible with above option. This patch introduce the "dirty_gfn_count" sub-parameter of the "-machine" in the way that the commit "23b089" has done. So that Libvirt can enable this feature by adding "-machine dirty_gfn_count=xxx" to the QEMU command line. Signed-off-by: Hyman <huangy81@chinatelecom.cn> --- softmmu/vl.c | 3 ++- util/qemu-config.c | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-)