From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arun Sharma Subject: Re: Device model architecture (Was Re: Re: Are linkerscripts needed?) Date: Fri, 27 May 2005 11:06:41 -0700 Message-ID: <429761B1.9060201@intel.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Ian Pratt Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org Ian Pratt wrote: >>I guess the main logic behind your argument is that there is >>no need to fully virtualize the device models, so no need to >>run them within a non-root VMCS. > > > We can't run them in the same non-root VMCS as the guest since we need > some virtual address space. [...] You can, with a world switch using a different CR3. > >>The only comment I have is: for the case where the device >>models require the services of a backend driver, you might be >>paying more than what we currently pay (one domain switch) >>i.e. vmx domain -> mini os -> backend. But it should be >>faster for everything else. > > > The vmx_domain to mini-OS switch happens as part of the vmexit. It's actually the vmexit + cost of upcall to the mini-os + cost of domain switch to the backend (say dom0). Right now, it's vmexit + cost of domain switch to dom0 + cost of dom0 kernel to user mode device model. So the difference is cost of dom0 kernel to user - cost of frontend to backend switch I suspect that the delta is small and not much to worry about. > Devices such as the APIC/IOAPIC/PIT etc can all be emulated without > calling out of the device model, and should work with just the same > performance as having them in Xen as we do today. True, it's definitely a win for devices that don't require communication with the backend. Also, some customers might want to use the split I/O model, where the VMX domain directly wants to use a raw partition on real disk. I'd rather have drivers in the OS hosting the device-models instead of going through the backend. -Arun