From: "chen.fan.fnst" <chen.fan.fnst@cn.fujitsu.com>
To: Eduardo Habkost <ehabkost@redhat.com>, qemu-devel@nongnu.org
Cc: "chen.fan.fnst" <chen.fan.fnst@cn.fujitsu.com>,
"Igor Mammedov" <imammedo@redhat.com>,
"Andreas Färber" <afaerber@suse.de>
Subject: [Qemu-devel] [RFC v3 0/3] prebuild cpu QOM tree /machine/node/socket/core ->link-cpu
Date: Tue, 11 Mar 2014 18:58:51 +0800 [thread overview]
Message-ID: <cover.1394534082.git.chen.fan.fnst@cn.fujitsu.com> (raw)
In-Reply-To: <1393983190.27041.2.camel@G08FNSTD131468>
From: "chen.fan.fnst" <chen.fan.fnst@cn.fujitsu.com>
at present, after hotplug a discontinuous cpu id on source, then done migration,
on target, it will fail to add the unoccupied cpu id which was skipped at source,
this cause is on target Qemu prebuild CPU with continuous cpu_index. so after
migration, the cpu infrastructure bewteen source and target are different.
I suppose we could use apic_id as instance_id which was used at registering vmstate
when create cpu. on target, we prebuild the specified cpu topology using comand line:
-device /machine/node[]/socket[]/core[]/cpu[], then migration, we could keep the same
cpu infrastructure on both side.
V3: get rid of thread object and tie link<cpu> to <core> directly. and prebuild full
core[] and thread[] as init socket[] according to smp_cores and smp_threads.
TODO:
1. add cpu "path" property which used for specifying the QOM path.
2. add -device cpu-foo.path supported.
3. then we could introduce hot-remove cpu probably.
I don't know wether this way is right or not. pls tell me. :)
chen.fan.fnst (3):
cpu: introduce CpuTopoInfo structure for argument simplification
i386: use CpuTopoInfo instead apic_id as argument for pc_new_cpu()
i386: introduce cpu QOM hierarchy tree
hw/i386/pc.c | 15 +++-
target-i386/Makefile.objs | 2 +-
target-i386/cpu-topology.c | 198 +++++++++++++++++++++++++++++++++++++++++++++
target-i386/cpu-topology.h | 71 ++++++++++++++++
target-i386/cpu.c | 15 +++-
target-i386/cpu.h | 6 ++
target-i386/topology.h | 33 ++++----
7 files changed, 317 insertions(+), 23 deletions(-)
create mode 100644 target-i386/cpu-topology.c
create mode 100644 target-i386/cpu-topology.h
--
1.8.1.4
next prev parent reply other threads:[~2014-03-11 11:01 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-14 9:27 [Qemu-devel] [RFC 0/3] fix migration issues after hotplug a discontinuous cpuid Chen Fan
2014-01-14 9:27 ` [Qemu-devel] [RFC 1/3] target-i386: moving registers of vmstate from cpu_exec_init() to x86_cpu_realizefn() Chen Fan
2014-01-14 10:40 ` Igor Mammedov
2014-01-15 12:24 ` Chen Fan
2014-01-15 14:37 ` Igor Mammedov
2014-01-17 19:13 ` [Qemu-devel] Exposing and calculating CPU APIC IDs (was Re: [RFC 1/3] target-i386: moving registers of vmstate from cpu_exec_init() to x86_cpu_realizefn()) Eduardo Habkost
2014-01-20 12:29 ` Igor Mammedov
2014-01-21 7:12 ` Chen Fan
2014-01-21 9:31 ` Igor Mammedov
2014-01-21 9:51 ` Chen Fan
2014-01-21 10:10 ` Andreas Färber
2014-02-13 6:14 ` Chen Fan
2014-02-13 9:44 ` Igor Mammedov
2014-02-17 10:24 ` Chen Fan
2014-02-17 10:43 ` Igor Mammedov
2014-02-25 9:07 ` [Qemu-devel] [PATCH 0/2][RFC] prebuild cpu QOM tree /machine/node/socket/core/thread/ Chen Fan
2014-02-25 9:07 ` [Qemu-devel] [PATCH 1/2][RFC] qom: introduce cpu QOM hierarchy tree /machine/node/socket/core/thread/cpu Chen Fan
2014-02-25 13:35 ` Eric Blake
2014-02-26 1:05 ` Chen Fan
2014-02-26 18:52 ` Eduardo Habkost
2014-02-28 2:01 ` Chen Fan
2014-03-04 10:50 ` [Qemu-devel] [RFC v2 0/2] prebuild cpu QOM tree /machine/node/socket/core/thread/ Chen Fan
2014-03-04 10:50 ` [Qemu-devel] [RFC v2 1/2] i386: introduce "struct X86TopoInfo" for saving cpu topology information Chen Fan
2014-03-04 19:35 ` Eduardo Habkost
2014-03-05 1:33 ` Chen Fan
2014-03-11 10:58 ` chen.fan.fnst [this message]
2014-03-11 10:58 ` [Qemu-devel] [RFC v3 1/3] cpu: introduce CpuTopoInfo structure for argument simplification chen.fan.fnst
2014-03-11 17:10 ` Eduardo Habkost
2014-03-11 10:58 ` [Qemu-devel] [RFC v3 2/3] i386: use CpuTopoInfo instead apic_id as argument for pc_new_cpu() chen.fan.fnst
2014-03-11 18:00 ` Eduardo Habkost
2014-03-12 5:53 ` Chen Fan
2014-03-12 7:51 ` [Qemu-devel] [RFC v4 0/3] prebuild cpu QOM tree /machine/node/socket/core ->link-cpu Chen Fan
2014-03-12 7:51 ` [Qemu-devel] [RFC v4 1/3] cpu: introduce CpuTopoInfo structure for argument simplification Chen Fan
2014-03-12 15:36 ` Eduardo Habkost
2014-03-19 8:53 ` [Qemu-devel] [PATCH v1 0/4] prebuild cpu QOM tree /machine/node/socket/core ->link-cpu Chen Fan
2014-03-19 8:53 ` [Qemu-devel] [PATCH v1 1/4] cpu: introduce CpuTopoInfo structure for argument simplification Chen Fan
2014-03-19 8:53 ` [Qemu-devel] [PATCH v1 2/4] i386: use CpuTopoInfo instead apic_id as argument for pc_new_cpu() Chen Fan
2014-03-19 19:27 ` Eduardo Habkost
2014-03-20 6:25 ` Chen Fan
2014-03-19 8:53 ` [Qemu-devel] [PATCH v1 3/4] topo unit-test: update Unit tests to test-x86-cpuid.c Chen Fan
2014-03-19 8:53 ` [Qemu-devel] [PATCH v1 4/4] i386: introduce cpu QOM hierarchy tree Chen Fan
2014-03-19 12:00 ` [Qemu-devel] [PATCH v1 0/4] prebuild cpu QOM tree /machine/node/socket/core ->link-cpu Eric Blake
2014-03-20 0:55 ` Chen Fan
2014-03-12 7:51 ` [Qemu-devel] [RFC v4 2/3] i386: use CpuTopoInfo instead apic_id as argument for pc_new_cpu() Chen Fan
2014-03-12 15:39 ` Eduardo Habkost
2014-03-12 7:51 ` [Qemu-devel] [RFC v4 3/3] i386: introduce cpu QOM hierarchy tree Chen Fan
2014-03-11 10:58 ` [Qemu-devel] [RFC v3 " chen.fan.fnst
2014-03-04 10:50 ` [Qemu-devel] [RFC v2 2/2] " Chen Fan
2014-02-25 9:07 ` [Qemu-devel] [PATCH 2/2][RFC] cpu: link each new cpu to QOM tree /machine/node/socket/core/thread/cpu respectively Chen Fan
2014-02-26 19:11 ` Eduardo Habkost
2014-02-13 10:00 ` [Qemu-devel] Exposing and calculating CPU APIC IDs (was Re: [RFC 1/3] target-i386: moving registers of vmstate from cpu_exec_init() to x86_cpu_realizefn()) Igor Mammedov
2014-01-14 9:27 ` [Qemu-devel] [RFC 2/3] target-i386: add -smp X,apics=0x option Chen Fan
2014-02-17 18:37 ` Eric Blake
2014-02-18 1:49 ` Chen Fan
2014-01-14 9:27 ` [Qemu-devel] [RFC 3/3] target-i386: add qmp command 'query-cpus' to display apic_id Chen Fan
2014-02-17 18:37 ` Eric Blake
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1394534082.git.chen.fan.fnst@cn.fujitsu.com \
--to=chen.fan.fnst@cn.fujitsu.com \
--cc=afaerber@suse.de \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).