On 12/11/2018 19:56, Julien Grall wrote:
> Hi Andrew,
>
> On 11/12/18 4:41 PM, Andrew Cooper wrote:
>> On 12/11/18 16:35, Mirela Simonovic wrote:
>>>>> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
>>>>> index e594b48d81..7f8105465c 100644
>>>>> --- a/xen/arch/arm/domain.c
>>>>> +++ b/xen/arch/arm/domain.c
>>>>> @@ -97,6 +97,11 @@ static void ctxt_switch_from(struct vcpu *p)
>>>>>        if ( is_idle_vcpu(p) )
>>>>>            return;
>>>>>
>>>>> +    /* VCPU's context should not be saved if its domain is
>>>>> suspended */
>>>>> +    if ( p->domain->is_shut_down &&
>>>>> +        (p->domain->shutdown_code == SHUTDOWN_suspend) )
>>>>> +        return;
>>>> SHUTDOWN_suspend is used in Xen for other purpose (see
>>>> SCHEDOP_shutdown). The other user of that code relies on all the state
>>>> to be saved on suspend.
>>>>
>>> We just need a flag to mark a domain as suspended, and I do believe
>>> SHUTDOWN_suspend is not used anywhere else.
>>> Let's come back on this.
>>
>> SHUTDOWN_suspend is used for migration.  Grep for it through the Xen
>> tree and you'll find several pieces of documentation, including the
>> description of what this shutdown code means.
>>
>> What you are introducing here is not a shutdown - it is a suspend with
>> the intent to resume executing later.  As such, it shouldn't use Xen's
>> shutdown infrastructure, which exists mainly to communicate with the
>> toolstack.
>
> Would domain pause/unpause be a better solution?

Actually yes - that sounds like a very neat solution.

~Andrew

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to