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