(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