mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
xen/physinfo: encode Arm SVE vector length in arch_capabilities
When the arm platform supports SVE, advertise the feature in the field arch_capabilities in struct xen_sysctl_physinfo by encoding the SVE vector length in it. Signed-off-by: Luca Fancellu <luca.fancellu@arm.com> Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
This commit is contained in:
1 parent
fd53bc7af0
commit
9392bf6a3a
2 files changed
+8
No files matched your search
@@ -11,11 +11,15 @@
|
||||
#include <xen/lib.h>
|
||||
#include <xen/errno.h>
|
||||
#include <xen/hypercall.h>
|
||||
#include <asm/arm64/sve.h>
|
||||
#include <public/sysctl.h>
|
||||
|
||||
void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
|
||||
{
|
||||
pi->capabilities |= XEN_SYSCTL_PHYSCAP_hvm | XEN_SYSCTL_PHYSCAP_hap;
|
||||
|
||||
pi->arch_capabilities |= MASK_INSR(sve_encode_vl(get_sys_vl_len()),
|
||||
XEN_SYSCTL_PHYSCAP_ARM_SVE_MASK);
|
||||
}
|
||||
|
||||
long arch_do_sysctl(struct xen_sysctl *sysctl,
|
||||
|
||||
@@ -94,6 +94,10 @@ struct xen_sysctl_tbuf_op {
|
||||
/* Max XEN_SYSCTL_PHYSCAP_* constant. Used for ABI checking. */
|
||||
#define XEN_SYSCTL_PHYSCAP_MAX XEN_SYSCTL_PHYSCAP_gnttab_v2
|
||||
|
||||
#if defined(__arm__) || defined(__aarch64__)
|
||||
#define XEN_SYSCTL_PHYSCAP_ARM_SVE_MASK (0x1FU)
|
||||
#endif
|
||||
|
||||
struct xen_sysctl_physinfo {
|
||||
uint32_t threads_per_core;
|
||||
uint32_t cores_per_socket;
|
||||
|
||||