From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steve Ofsthun Subject: [RFC] Hypercalls from HVM guests Date: Thu, 06 Apr 2006 17:10:16 -0400 Message-ID: <443583B8.3070008@virtualiron.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org Hi, I am currently working on hypercalls from HVM guests. I started with a set of Intel patches posted to xen-devel last September. I currently have code running for both 32-bit and 64-bit HVM guests running on a 64-bit hypervisor. I am curious why none of the original patches were accepted, and what I might need to do to make them acceptable. Is other work being done in this area that hasn't been submitted? Should I submit my version of the modified patches as is? The following list summarizes the changes. Hypervisor changes: o Add vmexit handling for the VMCALL instruction. This includes adjustments to hypercall arguments due to 32-bit vs. 64-bit calling conventions. o Modify copy_to_user/copy_from_user to use hvm_copy for HVM guests. o Modify grant table setup to properly map the grant table shared data for hvm guests. o Provide alternate headers for compiling 32-bit HVM guest code to interface with a 64-bit hypervisor. Many of the hypervisor structures used for hypercalls vary between 32-bit and 64-bit guests. Dom 0 changes: o Modify HVM building to properly map in a xen start info page and the shared info page for event channel notifications. o Add a virtual PCI device to QEMU to facilitate event channel handling. Dom U (HVM) driver changes: o Modify grant table setup for HVM guest code. o Modify event channel handling to interface with an unmodified Linux kernel running as an HVM guest. o Make misc xen support available as a loadable module. Steve -- Steve Ofsthun - Virtual Iron Software, Inc.