[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] HVM (hypercall_grant_table_op) Problem


  • To: "Xen-devel" <Xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: "马耀" <327801865@xxxxxx>
  • Date: Fri, 18 Nov 2011 00:52:13 +0800
  • Cc:
  • Delivery-date: Thu, 17 Nov 2011 16:53:23 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

Hi:
    I modified the netfont.c of Linux HVM domU installed PVonHVM.In it, I call hypercall_grant_table_op
(GNTTABOP_map_grant_ref...), then dom0 shutdown and restart at once.
    I'm confused about this.
    Before Xen 3.4.3, Xen/arch/x86/HVM/hvm.c look like this:
static long hvm_grant_table_op(unsigned int cmd, XEN_GUEST_HANDLE(void) uop, unsigned int count)
{
    if ( (cmd != GNTTABOP_query_size) && (cmd != GNTTABOP_setup_table) )
        return -ENOSYS; /* all other commands need auditing */
    return do_grant_table_op(cmd, uop, count);
}
    I know it hadn't support all grant_table_op but only two:GNTTABOP_query_size and GNTTABOP_setup_table.
 
    Now, after Xen4.0.0 and later, it look like below:
static long hvm_grant_table_op( unsigned int cmd, XEN_GUEST_HANDLE(void) uop, unsigned int count)
{
    if ( !grant_table_op_is_allowed(cmd) )
        return -ENOSYS; /* all other commands need auditing */
    return do_grant_table_op(cmd, uop, count);
}
static int grant_table_op_is_allowed(unsigned int cmd)
{
    switch (cmd) {
    case GNTTABOP_query_size:
    case GNTTABOP_setup_table:
    case GNTTABOP_set_version:
    case GNTTABOP_copy:
    case GNTTABOP_map_grant_ref:
    case GNTTABOP_unmap_grant_ref:
        return 1;
    default:
        /* all other commands need auditing */
        return 0;
    }
}
    From above, I conclude that I can map a HVM's page to another HVM, just like two PVs.
Am I wrong? Who can give me some suggestion?
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.