|
[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 01/28/2016 04:10 PM, Andrew Cooper wrote:
> 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.
Of course, no problem.
> 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.
I'll move it.
>> @@ -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().
Right, sorry I've missed that. Thanks!
>> } 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.
Thanks for the review,
Razvan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |