WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] Re: [PATCH][v4] PV extension of HVM(hybrid) support in Xen

To: Sheng Yang <sheng@xxxxxxxxxxxxxxx>
Subject: [Xen-devel] Re: [PATCH][v4] PV extension of HVM(hybrid) support in Xen
From: Tim Deegan <Tim.Deegan@xxxxxxxxxx>
Date: Mon, 1 Mar 2010 10:21:27 +0000
Cc: Ian Campbell <Ian.Campbell@xxxxxxxxxxxxx>, Ian Pratt <Ian.Pratt@xxxxxxxxxxxxx>, xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>, Keir Fraser <Keir.Fraser@xxxxxxxxxxxxx>
Delivery-date: Mon, 01 Mar 2010 02:23:12 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <201003011743.41341.sheng@xxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <201003011743.41341.sheng@xxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.18 (2008-05-17)
At 09:43 +0000 on 01 Mar (1267436621), Sheng Yang wrote:
> @@ -3109,6 +3117,36 @@
>          break;
>      }
>  
> +    case HVMOP_enable_pv: {

Why does this have to be explicitly enabled?  Can't you just notice that
a domain is using the evtchnop hypercalls?

> +        struct xen_hvm_pv_type a;
> +        struct domain *d;
> +
> +        if ( copy_from_guest(&a, arg, 1) )
> +            return -EFAULT;
> +
> +        rc = rcu_lock_target_domain_by_id(a.domid, &d);

Domains do this to each other?  It looks like it has surprising side-effects.

> +        if ( rc != 0 )
> +            return rc;
> +
> +        rc = -EINVAL;
> +        if ( !is_hvm_domain(d) )
> +            goto param_fail5;
> +
> +        rc = xsm_hvm_param(d, op);
> +        if ( rc )
> +            goto param_fail5;
> +
> +        if (a.flags & HVM_PV_EVTCHN) {
> +            update_domain_wallclock_time(d);
> +            hvm_funcs.set_tsc_offset(d->vcpu[0], 0);

Only vcpu 0?  Doesn't this do horrible things to timekeeping in the guest?

> +            d->hvm_pv_enabled |= XEN_HVM_PV_EVTCHN_ENABLED;
> +            printk("HVM: PV featured evtchn enabled\n");

Please remove your debugging printks.

> +        }
> +param_fail5:
> +        rcu_unlock_domain(d);
> +        break;
> +    }
> +
>      default:
>      {
>          gdprintk(XENLOG_WARNING, "Bad HVM op %ld.\n", op);

Tim.

-- 
Tim Deegan <Tim.Deegan@xxxxxxxxxx>
Principal Software Engineer, XenServer Engineering
Citrix Systems UK Ltd.  (Company #02937203, SL9 0BG)

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel