Gregory Haskins wrote: >>>> On Sun, Apr 22, 2007 at 4:54 AM, in message <[EMAIL PROTECTED]>, >>>> > Avi Kivity <[EMAIL PROTECTED]> wrote: > >> Gregory Haskins wrote: >> >>> Adds an abstraction to the LAPIC logic so that we can later substitute it >>> for an in- kernel model. >>> >>> >>> >> This is overly abstracted. It's not like you can (on real hardware) >> wire your own lapic and plug it into the processor. >> > > Agreed, but the key point is that under KVM, you *can* plug in more that one > LAPIC (e.g. userint and kernint). Notice that I did not try to completely > abstract an LAPIC. Rather, I tried to identify the common touchpoints > between the userspace and kernel version. In short, that basically came down > to CR8/TPR and the APIC_BASE_MSR handling. The other functions of the APIC > (e.g. kvm_apicbus_send()) which were not common between the two I simply > defined as non-virtuals. I figured that my minimalist abstraction was > preferable to doing this all over the place: > > if (!vcpu->kvm->enable_kernel_pic) > vcpu->cr8 = cr8; > else > apic_set_tpr(cr8) > > Instead, you can just do: > > kvm_lapic_set_tpr(&vcpu->apic, cr8) >
You can put the if statement into kvm_lapic_set_tpr(). And please keep cr8 in the vcpu, people may want to read it. > and let the model figure out the right action. This is easily reversible if > you prefer. I just figured mine was a cleaner way of accomplishing the same > thing. Perhaps I am a bit overzealous ;) > > >> The differentiation can be made by installing or not installing the mmio >> handler and the irqdevice stuff. >> > > Well, it's actually a bit more complicated than that. Per my previous > example, handing TPR is simple in the userspace case (just save it as part of > the VCPU state), where its complex in the in-kernel state (if lowering TPR > unmasks pending vectors, inject them). However, the core code doesn't have > to care. It simply notes that TPR changed and the model handles the rest. > #include "diatribes/complexity.h" -- Do not meddle in the internals of kernels, for they are subtle and quick to panic. ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel