At the Qemu initialization, we call the cpu_synchronize_all_post_init()
to synchronize All CPU states to KVM in the ./vl.c::main().
Currently, it is called before we initialize the CPUs, which is created
by "-device" command and parsed by generic devices initialization, So,
these CPUs may be ignored to synchronize.
The patch moves the cpu_synchronize_all_post_init func after generic
devices initialization to make sure that all the CPUs can be included.
Signed-off-by: Dou Liyang <douly.fnst@cn.fujitsu.com>
---
Change log:
v2-> v3:
1. Rebase the patch.
2. Rewrite the log
v1-> v2:
1. Split it from
https://lists.nongnu.org/archive/html/qemu-devel/2017-01/msg03354.html
2. Rewrite the log.
vl.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/vl.c b/vl.c
index 0b72b12..bceb835 100644
--- a/vl.c
+++ b/vl.c
@@ -4490,8 +4490,6 @@ int main(int argc, char **argv, char **envp)
audio_init();
- cpu_synchronize_all_post_init();
-
if (hax_enabled()) {
hax_sync_vcpus();
}
@@ -4517,6 +4515,8 @@ int main(int argc, char **argv, char **envp)
exit(1);
}
+ cpu_synchronize_all_post_init();
+
numa_post_machine_init();
rom_reset_order_override();
--
2.5.5
CCing Eduardo.
On 01/02/2017 03:29, Dou Liyang wrote:
> At the Qemu initialization, we call the cpu_synchronize_all_post_init()
> to synchronize All CPU states to KVM in the ./vl.c::main().
>
> Currently, it is called before we initialize the CPUs, which is created
> by "-device" command and parsed by generic devices initialization, So,
> these CPUs may be ignored to synchronize.
>
> The patch moves the cpu_synchronize_all_post_init func after generic
> devices initialization to make sure that all the CPUs can be included.
>
> Signed-off-by: Dou Liyang <douly.fnst@cn.fujitsu.com>
> ---
> Change log:
> v2-> v3:
> 1. Rebase the patch.
> 2. Rewrite the log
> v1-> v2:
> 1. Split it from
> https://lists.nongnu.org/archive/html/qemu-devel/2017-01/msg03354.html
> 2. Rewrite the log.
>
> vl.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/vl.c b/vl.c
> index 0b72b12..bceb835 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -4490,8 +4490,6 @@ int main(int argc, char **argv, char **envp)
>
> audio_init();
>
> - cpu_synchronize_all_post_init();
> -
> if (hax_enabled()) {
> hax_sync_vcpus();
> }
> @@ -4517,6 +4515,8 @@ int main(int argc, char **argv, char **envp)
> exit(1);
> }
>
> + cpu_synchronize_all_post_init();
> +
> numa_post_machine_init();
>
> rom_reset_order_override();
>
On Wed, Feb 01, 2017 at 10:29:38AM +0800, Dou Liyang wrote:
> At the Qemu initialization, we call the cpu_synchronize_all_post_init()
> to synchronize All CPU states to KVM in the ./vl.c::main().
>
> Currently, it is called before we initialize the CPUs, which is created
> by "-device" command and parsed by generic devices initialization, So,
> these CPUs may be ignored to synchronize.
>
> The patch moves the cpu_synchronize_all_post_init func after generic
> devices initialization to make sure that all the CPUs can be included.
>
> Signed-off-by: Dou Liyang <douly.fnst@cn.fujitsu.com>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
I will be away from work during the next 10 days, so anybody
willing to merge this gets my:
Acked-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
> Change log:
> v2-> v3:
> 1. Rebase the patch.
> 2. Rewrite the log
> v1-> v2:
> 1. Split it from
> https://lists.nongnu.org/archive/html/qemu-devel/2017-01/msg03354.html
> 2. Rewrite the log.
>
> vl.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/vl.c b/vl.c
> index 0b72b12..bceb835 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -4490,8 +4490,6 @@ int main(int argc, char **argv, char **envp)
>
> audio_init();
>
> - cpu_synchronize_all_post_init();
> -
> if (hax_enabled()) {
> hax_sync_vcpus();
> }
> @@ -4517,6 +4515,8 @@ int main(int argc, char **argv, char **envp)
> exit(1);
> }
>
> + cpu_synchronize_all_post_init();
> +
> numa_post_machine_init();
>
> rom_reset_order_override();
> --
> 2.5.5
>
>
>
>
--
Eduardo
© 2016 - 2026 Red Hat, Inc.