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

Re: [Xen-devel] [PATCH v4 2/9] xen/arm: Add more registers for saving and restoring vcpu registers



On Fri, 2013-10-04 at 13:43 +0900, Jaeyong Yoo wrote:
> diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
> index 5d359af..bf6dc9a 100644
> --- a/xen/include/public/arch-arm.h
> +++ b/xen/include/public/arch-arm.h
> @@ -253,6 +253,41 @@ struct vcpu_guest_context {
>  
>      uint32_t sctlr, ttbcr;
>      uint64_t ttbr0, ttbr1;
> +    uint32_t ifar, dfar;
> +    uint32_t ifsr, dfsr;
> +    uint32_t dacr;
> +    uint64_t par;
> +
> +#ifdef CONFIG_ARM_32

I'm afraid a per arch ifdef isn't allowed in the include/public tree.
The interface should be identical for both 32 and 64 bit callers. Also
think of 32-on-64 guests etc.

Also, this struct is guest facing (via VCPUOP_initialise) but many/all
of these new registers are not things which a guest needs to specify via
a hypercall. IOW I think many of them should be part of some toolstack
private save/restore interface.

I think x86 has a hvm_hw_cpu struct, which I think seems more
appropriate. Tim, what do you think?

> +    uint32_t mair0, mair1;
> +    uint32_t tpidr_el0;
> +    uint32_t tpidr_el1;
> +    uint32_t tpidrro_el0;
> +    uint32_t vbar;
> +#else
> +    uint64_t mair;
> +    uint64_t tpidr_el0;
> +    uint64_t tpidr_el1;
> +    uint64_t tpidrro_el0;
> +    uint64_t vbar;
> +#endif
> +
> +    /* Control Registers */
> +    uint32_t actlr;
> +    uint32_t cpacr;
> +
> +    uint32_t afsr0, afsr1;
> +
> +    uint32_t contextidr;
> +
> +    uint32_t teecr, teehbr; /* ThumbEE, 32-bit guests only */
> +
> +#ifdef CONFIG_ARM_32
> +    uint32_t joscr, jmcr;
> +#endif
> +
> +    /* CP 15 */
> +    uint32_t csselr;
>  };
>  typedef struct vcpu_guest_context vcpu_guest_context_t;
>  DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);



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