[libvirt] [Patch v3] Add VMware Workstation and Player driver

Daniel P. Berrange berrange at redhat.com
Thu Dec 9 10:23:38 UTC 2010


On Thu, Dec 09, 2010 at 11:05:50AM +0100, Jean-Baptiste Rouault wrote:
> On Wednesday 08 December 2010 19:29:56 Daniel P. Berrange wrote:
> > 
> > FYI, you can still get CPUs which are 32-bit only and have vmx/svm
> > supported.
> 
> Indeed, I didn't know there were 32 bits CPUs with virtualization extensions.
> Would it be ok to check for the "lm" CPU flag to be certain that the host CPU
> is a 64bit one ?

You really want to check what the OS is running, not what the CPU is,
because you can put a 32-bit OS on a 64-bit CPU. Since VMware only
copes with x86 platforms you can use

  STREQ(utsname.machine, "x86_64") ? 64 : 32

> 
> > > +
> > > +        //vmrun list only reports running vms
> > > +        vm->state = VIR_DOMAIN_RUNNING;
> > > +        vm->def->id = driver->nextvmid++;
> > > +        vm->persistent = 1;
> > 
> > The VM ID is intended to be stable for the lifetime of a VM. It
> > seems like this could be unstable, depending on the order in
> > which vmrun -T returns the list. Is there any way to find a
> > more stable ID, even if it means using the VM's UNIX PID ?
> 
> I guess I could parse the first line of the VM log (file vmware.log in the vmx 
> directory) to get the PID.
> 
> > > +static const char *
> > > +vmwareGetType(virConnectPtr conn)
> > > +{
> > > +    struct vmware_driver *driver = conn->privateData;
> > > +    int type;
> > > +
> > > +    type = driver->type;
> > > +    return type == TYPE_PLAYER ? "vmware player" : "vmware workstation";
> > > +}
> > 
> > This should just be returning the same string that's
> > in the type field of the virDriverPtr struct that
> > was registered.
> 
> Do you mean the "name" field of the _virDriver struct ?

Yes.

Daniel




More information about the libvir-list mailing list