qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Igor Mammedov <imammedo@redhat.com>
To: Lai Jiangshan <laijs@cn.fujitsu.com>
Cc: "Jan Kiszka" <jan.kiszka@siemens.com>,
	"gleb@redhat.com" <gleb@redhat.com>,
	"Andreas Färber" <afaerber@suse.de>,
	"Anthony Liguori" <anthony@codemonkey.ws>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH 2/7] Convert pc cpu to qdev
Date: Wed, 14 Mar 2012 09:37:18 +0100	[thread overview]
Message-ID: <4F6058BE.4060403@redhat.com> (raw)
In-Reply-To: <4F604FF9.8010403@cn.fujitsu.com>

On 03/14/2012 08:59 AM, Lai Jiangshan wrote:
> On 03/13/2012 07:04 PM, Andreas Färber wrote:
>> Am 13.03.2012 10:32, schrieb Lai Jiangshan:
>>> On 02/16/2012 08:51 PM, Anthony Liguori wrote:
>>>> On 02/16/2012 06:01 AM, Jan Kiszka wrote:
>>>>> On 2012-02-16 00:16, Igor Mammedov wrote:
>>>>>> +static ICCBusDeviceInfo cpu_device_info = {
>>>>>> +    .qdev.name = "cpu-pc",
>>>>>> +    .qdev.size = sizeof(CPUPC),
>>>>>> +    .qdev.reset = cpu_device_reset,
>>>>>> +    .init = cpu_device_init,
>>>>>> +    .qdev.props = (Property[]) {
>>>>>> +        DEFINE_PROP_STRING("model", CPUPC, model),
>>>>>
>>>>> And how do you pass in feature flags? Or the core layout? Basically both
>>>>> -cpu and -smp need to be expressible via multiple "-device cpu-x86,xxx"
>>>>> (not "pc") commands.
>>>>
>>>> The approach that I'd recommend is:
>>>>
>>>> 1) convert CPU_COMMON_STATE to a structure named CPUCommonState, query/replace all references to members of CPU_COMMON_STATE appropriately.
>>>
>>> I just tried this for several days, it will result a huge patch,
>>> it is hard for human, any suggestion?
>>> (I used Semantic patches script: http://coccinelle.lip6.fr/, it is still hard,
>>> it still leaves huge part which needs manual conversion/fix)
>>>
>>> I will take part in implementing cpu-hotplug future for qemu,
>>> Could you give me some tips/suggestions? What approach should I take?
>>
>> In short: Don't!
>>
>> Please instead provide feedback on my series which already does
>> something like that for you, available since multiple weeks. If a
>> different naming is preferred, I can change it.
>>
>> The approach I have taken is:
>> 1. CPUState ->  CPU{X86,...}State, CPUArchState as alias where necessary
>> 2. Embed CPU$archState in $archCPU
>> 3. Step by step move CPU_COMMON_STATE from CPUArchState into CPUState
>>
>> Steps 1+2 are done, 2 is partially on the list (e.g., [1]), the rest on
>> my qom-cpu-wip branch [2].
>> Step 3 is shown for icount on qom-cpu-wip as well as for multiple
>> target-specific fields such as target-arm features [3]. Contributions
>> welcome.
>
>
> OK, your work can't be done automatically, but it do be worth when
> there are multiple target-specific fields existed.
>
> Anthony Liguori, Jan Kiszka,
>
> Could you light me what can I do for cpu-hotplug.
> I saw several approaches are sent to the maillist, but they are
> not accepted, so I don't know how to take part in.

As I see it, there is not much to do from cpu hot-plug perspective.
It's just a matter of adaptation QOM-ified cpus for usage from
qdev device_add, and I'm working on it.
However, there is a lot to be done in cpu unplug area:
   - host side: there is unaccepted patches to destroy vcpu
     during VM-lifecycle. They are still need to be worked on:
      "[Qemu-devel] [PATCH 0] A series patches for kvm&qemu to enable vcpu destruction in kvm"
   - linux guest side: kernel can receive ACPI request to unplug cpu,
     but does nothing with it (last time I've tested it with 3.2 kernel),
     You might wish to look at following mail threads:
       https://lkml.org/lkml/2011/9/30/18
       http://lists.gnu.org/archive/html/qemu-devel/2011-10/msg02254.html

-- 
-----
  Igor

  reply	other threads:[~2012-03-14  8:37 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-15 23:16 [Qemu-devel] [PATCH 0/7] Add CPU hot-plug to qemu (pc only). v2 Igor Mammedov
2012-02-15 23:16 ` [Qemu-devel] [PATCH 1/7] Introduce a new bus "ICC" to connect APIC Igor Mammedov
2012-02-16 11:25   ` Jan Kiszka
2012-02-16 12:42     ` Anthony Liguori
2012-02-16 12:50       ` Jan Kiszka
2012-02-16 12:59         ` Anthony Liguori
2012-02-16 13:06           ` Jan Kiszka
2012-02-17 17:02       ` Igor Mammedov
2012-02-24 13:05         ` Igor Mammedov
2012-02-24 13:30           ` Andreas Färber
2012-02-24 13:40             ` Paolo Bonzini
2012-02-24 13:47               ` Anthony Liguori
2012-02-24 13:50                 ` Paolo Bonzini
2012-02-24 14:44                   ` Anthony Liguori
2012-02-15 23:16 ` [Qemu-devel] [PATCH 2/7] Convert pc cpu to qdev Igor Mammedov
2012-02-16 11:27   ` Jan Kiszka
2012-02-16 12:01   ` Jan Kiszka
2012-02-16 12:51     ` Anthony Liguori
2012-02-16 12:54       ` Jan Kiszka
2012-02-16 16:09         ` Anthony Liguori
2012-03-13  9:32       ` Lai Jiangshan
2012-03-13 11:04         ` Andreas Färber
2012-03-14  7:59           ` Lai Jiangshan
2012-03-14  8:37             ` Igor Mammedov [this message]
2012-03-14 13:49               ` Vasilis Liaskovitis
2012-03-14 15:23                 ` Gleb Natapov
2012-03-14 15:32                   ` Anthony Liguori
2012-03-14 15:35                     ` Gleb Natapov
2012-03-14 15:42                       ` Anthony Liguori
2012-03-14 15:54                         ` Gleb Natapov
2012-03-14 15:57                           ` Anthony Liguori
2012-03-14 16:27                             ` Gleb Natapov
2012-03-14 19:55                   ` Vasilis Liaskovitis
2012-03-15 12:07                     ` Gleb Natapov
2012-02-16 12:45   ` Anthony Liguori
2012-02-16 16:09   ` Andreas Färber
2012-02-17 17:16     ` Igor Mammedov
2012-02-17 18:07       ` Andreas Färber
2012-02-15 23:16 ` [Qemu-devel] [PATCH 3/7] cleanup: get rid of pc_new_cpu Igor Mammedov
2012-02-15 23:16 ` [Qemu-devel] [PATCH 4/7] cleanup: remove redundant pc_cpu_reset Igor Mammedov
2012-02-16 11:32   ` Jan Kiszka
2012-02-15 23:16 ` [Qemu-devel] [PATCH 5/7] Set default 'model' property if it wasn't specified yet Igor Mammedov
2012-02-16 11:36   ` Jan Kiszka
2012-02-15 23:16 ` [Qemu-devel] [PATCH 6/7] Prepare ACPI infrastructure for cpu hot-plug in acpi_piix4 Igor Mammedov
2012-02-16 11:41   ` Jan Kiszka
2012-02-15 23:16 ` [Qemu-devel] [PATCH 7/7] Implement cpu hot-add using device_add monitor command Igor Mammedov
2012-02-15 23:35   ` Anthony Liguori
2012-02-16  9:33     ` Igor Mammedov
2012-02-16 15:52       ` Andreas Färber
2012-02-16 10:16     ` Jan Kiszka

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=4F6058BE.4060403@redhat.com \
    --to=imammedo@redhat.com \
    --cc=afaerber@suse.de \
    --cc=anthony@codemonkey.ws \
    --cc=gleb@redhat.com \
    --cc=jan.kiszka@siemens.com \
    --cc=laijs@cn.fujitsu.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).