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

Re: [Xen-devel] [PATCH v3 2/3] x86/HVM: fix ID handling of x2APIC emulation



>>> On 12.09.14 at 14:53, <JBeulich@xxxxxxxx> wrote:
> - properly change ID when switching into x2APIC mode (instead of
>   mimicking necessary behavior in hvm_x2apic_msr_read())
> - correctly (meaningfully) set LDR (so far it ended up being 1 on all
>   vCPU-s)
> - even if we don't support more than 128 vCPU-s in a HVM guest for now,
>   we should properly handle IDs as 32-bit values (i.e. not ignore the
>   top 24 bits)
> - with that, properly do cluster ID and bit mask check in
>   vlapic_match_logical_addr()
> - slightly adjust other parameter types of vlapic_match_dest() and
>   vlapic_lowest_prio() (and related local variable ones)
> 
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
> ---
> v2: Some changes broken out to separate patch. Correct ID and
>     LDR after domain restore (if necessary); as stated previously the
>     only compatibility problem this creates is when migrating a VM _to_
>     an unfixed (i.e. old) hypervisor, a scenario which supposedly isn't
>     supported. This post-migration fixup involves introducing
>     arch_domain_unpause(), needed here to fix up state after all
>     intended state setting was done (any suggestion as to how else to
>     accomplish this is very welcome).

Oops - just realized the quoted portion below needs a wider Cc list.

Jan

> --- a/xen/include/asm-arm/domain.h
> +++ b/xen/include/asm-arm/domain.h
> @@ -241,6 +241,8 @@ struct arch_vcpu
>  void vcpu_show_execution_state(struct vcpu *);
>  void vcpu_show_registers(const struct vcpu *);
>  
> +#define arch_domain_unpause(d) ((void)(d))
> +
>  #endif /* __ASM_DOMAIN_H__ */
>  
>  /*
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -949,8 +949,11 @@ void domain_unpause(struct domain *d)
>      struct vcpu *v;
>  
>      if ( atomic_dec_and_test(&d->pause_count) )
> +    {
> +        arch_domain_unpause(d);
>          for_each_vcpu( d, v )
>              vcpu_wake(v);
> +    }
>  }
>  
>  int __domain_pause_by_systemcontroller(struct domain *d,



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