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

Re: [Xen-devel] [PATCH v9 08/11] xen: arch-specific hooks for domain_soft_reset()



"Jan Beulich" <JBeulich@xxxxxxxx> writes:

>>>> On 16.07.15 at 18:27, <vkuznets@xxxxxxxxxx> wrote:
>> --- a/xen/arch/x86/domain.c
>> +++ b/xen/arch/x86/domain.c
>> @@ -704,6 +704,90 @@ void arch_domain_unpause(struct domain *d)
>>          viridian_time_ref_count_thaw(d);
>>  }
>>  
>> +int arch_domain_soft_reset(struct domain *d)
>> +{
>> +    struct page_info *page = virt_to_page(d->shared_info), *new_page;
>> +    int ret = 0;
>> +    struct domain *owner;
>> +    unsigned long mfn, mfn_new, gfn;
>> +    p2m_type_t p2mt;
>> +    unsigned int i;
>> +
>> +    /* Soft reset is supported for HVM domains only. */
>> +    if ( !is_hvm_domain(d) )
>> +        return -EINVAL;
>
> This suggests that the whole function may better go somewhere in
> hvm/.
>
> And is this intentionally excluding PVH?
>

Not really.

As far as I understand the descision is to go for "HVM without dm" way
for PVH in future? In that case, isn't is_hvm_domain() supposed to
return true for it? I hope the selected approach to kexec should "just
work" for such PVH guests.

>...
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -1035,6 +1035,10 @@ int domain_soft_reset(struct domain *d)
>>      for_each_vcpu ( d, v )
>>          unmap_vcpu_info(v);
>>  
>> +    rc = arch_domain_soft_reset(d);
>> +    if (rc)
>> +        return rc;
>
> I don't think this can be done this late, or else you'd need to have
> a way to undo everything you've done earlier in the function. This
> of course also applies to what's being done inside the function. Or
> if undoing is - as it looks like - rather hard, perhaps the domain
> would better be crashed than left in an inconsistent state?

Crashing the domain seems reasonable.

-- 
  Vitaly

_______________________________________________
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®.