aarch64: Add glibc.cpu.aarch64_gcs_policy

policy sets how gcs tunable and gcs marking turns into gcs state:

0: state = tunable
1: state = marking ? tunable : (tunable && dlopen ? err : 0)
2: state = marking ? tunable : (tunable ? err : 0)
This commit is contained in:
Szabolcs Nagy 2023-12-21 15:14:08 +00:00 committed by Yury Khrustalev
parent 8d51bf5658
commit a4dcf30215
3 changed files with 25 additions and 2 deletions

View File

@ -26,5 +26,10 @@ glibc {
minval: 0
default: 0
}
aarch64_gcs_policy {
type: UINT_64
minval: 0
default: 0
}
}
}

View File

@ -178,6 +178,11 @@ init_cpu_features (struct cpu_features *cpu_features)
cpu_features->mops = GLRO (dl_hwcap2) & HWCAP2_MOPS;
if (GLRO (dl_hwcap) & HWCAP_GCS)
/* GCS status may be updated later by binary compatibility checks. */
GL (dl_aarch64_gcs) = TUNABLE_GET (glibc, cpu, aarch64_gcs, uint64_t, 0);
{
/* GCS status may be updated later by binary compatibility checks. */
GL (dl_aarch64_gcs) = TUNABLE_GET (glibc, cpu, aarch64_gcs, uint64_t, 0);
/* Fixed GCS policy. */
GLRO (dl_aarch64_gcs_policy) =
TUNABLE_GET (glibc, cpu, aarch64_gcs_policy, uint64_t, 0);
}
}

View File

@ -54,6 +54,19 @@ PROCINFO_CLASS struct cpu_features _dl_aarch64_cpu_features
# else
,
# endif
# if !defined PROCINFO_DECL && defined SHARED
._dl_aarch64_gcs_policy
# else
PROCINFO_CLASS uint64_t _dl_aarch64_gcs_policy
# endif
# ifndef PROCINFO_DECL
= 0
# endif
# if !defined SHARED || defined PROCINFO_DECL
;
# else
,
# endif
#endif
/* Number of HWCAP bits set. */