15 messages in com.xensource.lists.xen-ia64-devel[Xen-ia64-devel] Patch of hypercall R...
FromSent OnAttachments
Xu, Anthony20 Jun 2005 22:09 
Magenheimer, Dan (HP Labs Fort Collins)21 Jun 2005 07:04 
Xu, Anthony21 Jun 2005 18:57 
Magenheimer, Dan (HP Labs Fort Collins)21 Jun 2005 21:17 
Xu, Anthony21 Jun 2005 21:23 
Xu, Anthony22 Jun 2005 03:35.Other
Xu, Anthony22 Jun 2005 04:16.Other
Xu, Anthony22 Jun 2005 04:19.Other
Xu, Anthony22 Jun 2005 04:24.Other
Magenheimer, Dan (HP Labs Fort Collins)22 Jun 2005 06:38 
Tian, Kevin22 Jun 2005 18:40 
dan....@hp.com22 Jun 2005 20:41 
Tian, Kevin23 Jun 2005 05:47 
Matt Chapman23 Jun 2005 09:00 
Tian, Kevin24 Jun 2005 04:06 
Subject:[Xen-ia64-devel] Patch of hypercall RE: how to put kernel module in xen/ipf
From:Xu, Anthony (anth@intel.com)
Date:06/22/2005 04:19:00 AM
List:com.xensource.lists.xen-ia64-devel
Attachments:
patch_km_hypercall - 25k

Hi, dan,

  You should apply this patch after Kevin’s “patch_ptrace” patch.   If you want to compile kernel module, you must put 2.6.11 source code and
xen/ipf source code under the same directory, kernel module will use linux
kernel header file.     -Anthony

________________________________________ From: Magenheimer, Dan (HP Labs Fort Collins) [mailto:dan.@hp.com] Sent: 2005年6月22日 12:18 To: Xu, Anthony Cc: xen-@lists.xensource.com Subject: RE: how to put kernel module in xen/ipf   Thanks for the explanation!  

Could we check in this patch and discuss further?

  There wasn't a patch attached to either message.  Or did you mean Kevin's patch (which I just applied)?

Dan    

________________________________________ From: Xu, Anthony [mailto:anth@intel.com] Sent: Tuesday, June 21, 2005 7:57 PM To: Magenheimer, Dan (HP Labs Fort Collins) Cc: xen-@lists.xensource.com Subject: RE: how to put kernel module in xen/ipf Hi, Dan,   We implemented VTLB infrastructure per domain on XEN/IPF, which tracked guest
tlb information. VTLB has fixed size, then when using out of it, HV will desert
all VTLB and recycle VTLB. We add a flag “lock” in VTLB entry, when HV recycle
VTLB, the VTLB entry with “lock” flag will not be deserted, but if Guest uses
instructions like “ptc” to purge tlb, the VTLB entry with “lock” flag will be
deserted.   Before invoking hypercall, Kernel Module pseudo read parameter once per page size to make sure the
translation for this parameter has been inserted in VTLB infrastructure. Then
kernel Module will call another new hypercall which don’t need pointer parameter
to lock above translation in VTLB infrastructure.   Then invoking this hypercall, In HV, HV will use copy_from_user() or copy_to_user() to get parameter or return
result. In these functions, HV will lookup VTLB infrastructure to get
corresponding guest physical address of the parameter, because this translation
has been locked in VTLB, HV definitely can find it, then HV can get
corresponding machine address from physical to machine address table, as we know
HV use region 7 for identity mapping, HV can get identity virtual address for
that machine address, at last, HV do normal copy operation using this identity
virtual address.   After this hypercall, Guest application definitely will unmap the memory allocated for passing
hypercall parameter, and this operation definitely will purge tlb for this
address, so the “lock” VTLB entry in VTLB infrastructure can be recycled.   We had tested this parameter passing mechanism for several hypercalls, such as
GETMEMLIST, and it works well.   Could we check in this patch and discuss further?       -Anthony

________________________________________ From: Magenheimer, Dan (HP Labs Fort Collins) [mailto:dan.@hp.com] Sent: 2005年6月21日 22:04 To: Xu, Anthony Cc: xen-@lists.xensource.com Subject: RE: how to put kernel module in xen/ipf   Yes, the hypercall parameter mechanism is still evolving for Xen/ia64.  Very few hypercalls are necessary to run domain0, so experimentation with different
hypercall mechanisms has waited until multi-domain work.   Can you explain more about kernel modules?  I know (roughly) how they work for Linux, but not how they are used on Xen/x86.  Others on this list might like to learn too, so perhaps you could explain the design in detail?

Thanks, Dan