>> 
>> "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.
> 

timer state is different, krenel uses hrtimer. But maybe not that
critical.

Maybe I didn't exactly understand what "copy" means for you. There are 2
ways 
in my mind to do save/restore:
1:  We provide a new apic_load/apic_save function. In this function we
may convert kernel state into user level state.


2: We use user level apic_load/apic_save, but at some point we read the
whole kernel state and then copy to user level APICState data structure
(use save as example).  IN this way normal user level save/load will
service us, but then kernel side struct kvm_apic should be same with
APICState.

BTW, we will take half week leave next week, will u work on apic too?
thx,eddie

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to