public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
To: "Dong, Eddie" <eddie.dong-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: live migration between kernel/user irqchip
Date: Thu, 19 Jul 2007 17:24:50 +0300	[thread overview]
Message-ID: <469F7432.5050806@qumranet.com> (raw)
In-Reply-To: <10EA09EFD8728347A513008B6B0DA77A01CBE67A-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>

Dong, Eddie wrote:
> Avi Kivity wrote:
>   
>> Dong, Eddie wrote:
>>     
>>> When thinking about live migration support for in kernel irqchip, one
>>> question comes out which need to be solved first:
>>> Do we need to support live migration among user level irqchip and
>>> kernel level?
>>>       
>> Yes.
>>
>>     
>>> If the answer is yes, kernel level irqchip must keep same state
>>> with user level, i.e. if Qemu changes the pic/apic/ioapic state
>>> definition, we need to do corresponding changes too, otherwise
>>> kernel side can stay as it is. 
>>>
>>>       
>> The qemu state mimics the device state and should be independent of
>> implementation details.  If the qemu state is added too, this most
>> likely indicates a but that needs to be fixed in kvm as well.
>>
>> The best way to do live migration is to copy the kernel state into the
>> qemu device model, and let qemu do state serialization.  This ensures
>>     
>
> "copy" means we define some device "state" both in kernel & user. 
> I.e.  kernel use user level state definition.
>   

Sorry, I don't understand.

Here's apic_save(), for example:

static void apic_save(QEMUFile *f, void *opaque)
{
    APICState *s = opaque;
    int i;

    qemu_put_be32s(f, &s->apicbase);
    qemu_put_8s(f, &s->id);
    qemu_put_8s(f, &s->arb_id);
    qemu_put_8s(f, &s->tpr);
    qemu_put_be32s(f, &s->spurious_vec);
    qemu_put_8s(f, &s->log_dest);
    qemu_put_8s(f, &s->dest_mode);
    for (i = 0; i < 8; i++) {
        qemu_put_be32s(f, &s->isr[i]);
        qemu_put_be32s(f, &s->tmr[i]);
        qemu_put_be32s(f, &s->irr[i]);
    }
    for (i = 0; i < APIC_LVT_NB; i++) {
        qemu_put_be32s(f, &s->lvt[i]);
    }
    qemu_put_be32s(f, &s->esr);
    qemu_put_be32s(f, &s->icr[0]);
    qemu_put_be32s(f, &s->icr[1]);
    qemu_put_be32s(f, &s->divide_conf);
    qemu_put_be32s(f, &s->count_shift);
    qemu_put_be32s(f, &s->initial_count);
    qemu_put_be64s(f, &s->initial_count_load_time);
    qemu_put_be64s(f, &s->next_time);

    qemu_put_timer(f, s->timer);
}

Do you see state here that does not exist in the kernel?  Or kernel 
state that is missing from here?

->timer and ->next_time may be non-trivial, but both are needed.

-- 
error compiling committee.c: too many arguments to function


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/

  parent reply	other threads:[~2007-07-19 14:24 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-19 13:52 live migration between kernel/user irqchip Dong, Eddie
     [not found] ` <10EA09EFD8728347A513008B6B0DA77A01CBE671-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-07-19 14:04   ` Avi Kivity
     [not found]     ` <469F6F83.3060700-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-07-19 14:13       ` Dong, Eddie
     [not found]         ` <10EA09EFD8728347A513008B6B0DA77A01CBE67A-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-07-19 14:24           ` Avi Kivity [this message]
     [not found]             ` <469F7432.5050806-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-07-20  9:18               ` Dong, Eddie
     [not found]                 ` <10EA09EFD8728347A513008B6B0DA77A01CBEB95-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-07-20  9:26                   ` Avi Kivity
     [not found]                     ` <46A07FB6.8030603-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-07-20  9:36                       ` Dong, Eddie

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=469F7432.5050806@qumranet.com \
    --to=avi-atkuwr5tajbwk0htik3j/w@public.gmane.org \
    --cc=eddie.dong-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.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