>>> On 15.01.16 at 18:45, <roger....@citrix.com> wrote:
> Changes since v2:
>  - Change 'if ( (a && b) || (!a && c) )' into 'if ( a ? b : c )'.

Thanks, but after some more thinking about it I'm afraid there are
a few more aspects to consider here:

> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -542,8 +542,9 @@ int arch_domain_create(struct domain *d, unsigned int 
> domcr_flags,
>                     d->domain_id, config->emulation_flags);
>              return -EINVAL;
>          }
> -        if ( config->emulation_flags != 0 &&
> -             (!is_hvm_domain(d) || config->emulation_flags != 
> XEN_X86_EMU_ALL) )
> +        if ( is_hvm_domain(d) ? (config->emulation_flags != XEN_X86_EMU_ALL 
> &&
> +             config->emulation_flags != 0) :
> +             (config->emulation_flags != XEN_X86_EMU_PIT) )
>          {

For one I think it would be a good idea to allow zero for PV domains,
and perhaps even default new DomU-s to have the PIT flag clear.
(Also - indentation.)

Which gets us to the second, broader issue: These flags shouldn't
be forced to a particular value during migration, but instead they
should be part of the state getting migrated. Incoming domains
then would - if the field is missing due to coming from an older
hypervisor - have the flag default to 1.

And then - is all this working as intended for the hwdom != Dom0
case?

Jan


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

Reply via email to