On 11/25/2010 03:13 PM, Roedel, Joerg wrote:
On Thu, Nov 25, 2010 at 12:46:40PM +0100, Roedel, Joerg wrote: > We basically have two choices here: > > a) We expose svm internals into the emulator > b) We expose emulator internals into svm > > Both choices are not really good from a software-design point-of-view. > But I think option b) is the better one because it is easier to cope with > and thus less likely to break when changing the emulator code. What we could do probably is to define the interface between the emulator and the architecture code in a better way. This would take the burden of going into architecture code for emulator changes away.
What about things like adding instructions and forgetting to add the corresponding svm.c code?
Of course it can happen with everything in the emulator, but at least there's a chance you will see the decode bits in nearby instructions.
The current patch-set only needs a subset of the decode-cache (in the future probably also a subset of the fetch-cache). We could put this information into a seperate struct and give it to the architecture code. I planned to make the guest_mode flag a generic x86 vcpu property anyway, so building this structure could be limited to instructions emulated while the vcpu is in guest mode thus avoiding the overhead for the default case.
Good idea. Needed for the decode bits thing as well. -- error compiling committee.c: too many arguments to function -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html