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

Re: [Xen-devel] [PATCH] vm_event: make sure the domain is paused in key domctls



On 28/01/16 13:52, Razvan Cojocaru wrote:
> This patch pauses the domain for all writes through the 'ad'
> pointer in monitor_domctl(), defers a domain_unpause() call until
> after the CRs are updated for the MONITOR_EVENT_WRITE_CTRLREG
> case, and makes sure that the domain is paused for both vm_event
> enable and disable cases in vm_event_domctl().
> Thanks go to Andrew Cooper for his review and suggestions.
>
> Signed-off-by: Razvan Cojocaru <rcojocaru@xxxxxxxxxxxxxxx>

Would you mind annotating each of the checks for d != current->domain
with /* no domain_pause(). */, which is our normal practice.

I think it might be better to move the current check for
XEN_DOMCTL_monitor_op into monitor_domctl() itself, to have all checks
together in one place.

> @@ -144,6 +146,8 @@ int monitor_domctl(struct domain *d, struct 
> xen_domctl_monitor_op *mop)
>          if ( rc )
>              return rc;
>  
> +        domain_pause(d);
> +
>          if ( mop->op == XEN_DOMCTL_MONITOR_OP_ENABLE &&
>               mop->u.mov_to_msr.extended_capture )
>          {
> @@ -154,7 +158,6 @@ int monitor_domctl(struct domain *d, struct 
> xen_domctl_monitor_op *mop)

You will need to rework the return -EOPNOTSUPP between these two hunks
to avoid missing the domain_unpause()

It would probably be better to pull the check forwards to before the
domain_pause().

>          } else
>              ad->monitor.mov_to_msr_extended = 0;
>  
> -        domain_pause(d);
>          ad->monitor.mov_to_msr_enabled = !status;
>          domain_unpause(d);
>          break;
> @@ -196,9 +199,8 @@ int monitor_domctl(struct domain *d, struct 
> xen_domctl_monitor_op *mop)
>

The other codepaths look fine.

~Andrew

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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