(I've edited the patch comments to show the reasoning)

At Tue, 14 Nov 2006 13:44:31 +0200,
Avi Kivity wrote:
>     /* Initialize kvm */
>     if (kvm_allowed) {
>       if (kvm_qemu_init() < 0) {
>           fprintf(stderr, "Could not initialize KVM\n");
>           kvm_allowed = 0;
>       }
>     }
>     /* Fall back to normal qemu if KVM fails */
>     if (!kvm_allowed) {
>       phys_ram_base = qemu_vmalloc(phys_ram_size);
>       if (!phys_ram_base) {
>           fprintf(stderr, "Could not allocate physical memory\n");
>           exit(1);
>       }
>     }
>
> This bit is rather awkward, since it disabled kvm after it has been 
> enabled.  It's a cleaner to never enable kvm_allowed in the first place 
> (i.e. during argument parsing).

OK. My reasoning was this: qemu with KVM defaults to use kvm and
therefore tries to enable it (kvm_qemu_init), if it cannot be
initialized, it will disable it again.

I can submit a new patch where kvm_init and kvm_create is separated
and kvm_init is done at argument-parsing time if you like, but
personally I think this way is clearer :-)

> How about a
> 
>     int libkvm_init(kvm_libcontext_t *libcontext);
>     void libkvm_exit(kvm_libcontext_t libcontext);
>    
>     int kvm_create(kvm_libcontext_t libcontext, kvm_context_t* vm);
>     void kvm_destroy(kvm_context_t *vm);
> 
> at present, libkvm_init() can just call access(2) on /dev/kvm.  In the 
> future, it is planned that open("/dev/kvm") will not create a VM (it 
> just opens a communication channel to the driver), so that libkvm_init() 
> will open the device and store the fd.

Personally, I would prefer something like

   int kvm_open(kvm_t *kvm;)
   void kvm_close(kvm_t *kvm);

   int kvm_create_vm(kvm_t *kvm, kvm_context_t *vm);
   void kvm_destroy_vm(kvm_t *kvm, kvm_context_t *vm);

// Simon

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to