On Fri, 2010-05-21 at 17:19 +0800, Tim Deegan wrote:
> At 14:49 +0100 on 20 May (1274366991), Qing He wrote:
> > I mean, the code doesn't seem to organize well, partly because there
> > are many different states to cover, and some tricks are used to
> > work with the current code, vmx_set_host_env would be a good example
> > of such kind of tricks. Do you have any suggestions on a better code
> > orgnization?
> TBH I expect that any implementation of this is going to be messy. It's
> a big interface and there are too many special cases.
> The only thing that strikes me is that you seem to do a full translation
> of the vvmcs on every vmentry. Would it be possible (since we already
> have to intercept every vmread/vmwrite) to keep the svmcs in sync all
> the time?
I don't think it's a good idea to change svmcs at the vmread/vmwrite
1. that means 2 addtional vmclears and 2 additional vmptrld for every
2. it makes things like pv vmcs impossible
3. vmread/vmwrite is supposed to be simple access, changing svmcs at
these points doesn't look right
I did consider a bitmap based solution, to only update fields
that have been written. However, it needs to define a new encoding
and is purely optimization, so I'd like to just put it as a TODO at
Xen-devel mailing list