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/
next prev 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