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

[Xen-devel] struct vcpu_guest_core_reg stable ABI?

Hi all,

It looks like the structures vcpu_guest_core_regs and vcpu_guest_context does not correctly reflect the AArch64 state. For instance, all Arm64 system registers (e.g sctlr, cpsr, spsr_el1) should be 64-bit wide not 32-bit wide.

On ARMv8.0, some of the registers have only the low 32-bit defined, the rest is RES0. RES0 only means they are reserved for future use, it does not mean they can be ignored. Newer revision (such as ARMv8.0-SSBS) actually began to define bit in the top 32-bit.

This means that the structures vcpu_guest_core_regs and vcpu_guest_context would not be able to store the top 32-bit and therefore misrepresenting the hardware.

From my understanding, vcpu_guest_context is defined between the tools and Xen. So it would be possible to modify it without caring on backward compatibly.

Howerver, struct vcpu_guest_core_reg seems to be outside of the #ifdef. So I assume it is part of the stable ABI. Am I correct?

Do you have any suggestion how this could safely be extended?


Julien Grall

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.