Commit 8b08e840 authored by Dave Martin's avatar Dave Martin Committed by Marc Zyngier

arm64/sve: Clarify role of the VQ map maintenance functions

The roles of sve_init_vq_map(), sve_update_vq_map() and
sve_verify_vq_map() are highly non-obvious to anyone who has not dug
through cpufeatures.c in detail.

Since the way these functions interact with each other is more
important here than a full understanding of the cpufeatures code, this
patch adds comments to make the functions' roles clearer.

No functional change.
Signed-off-by: default avatarDave Martin <Dave.Martin@arm.com>
Reviewed-by: default avatarJulien Thierry <julien.thierry@arm.com>
Reviewed-by: default avatarJulien Grall <julien.grall@arm.com>
Tested-by: default avatarzhang.lei <zhang.lei@jp.fujitsu.com>
Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
parent 3f61f409
...@@ -647,6 +647,10 @@ static void sve_probe_vqs(DECLARE_BITMAP(map, SVE_VQ_MAX)) ...@@ -647,6 +647,10 @@ static void sve_probe_vqs(DECLARE_BITMAP(map, SVE_VQ_MAX))
} }
} }
/*
* Initialise the set of known supported VQs for the boot CPU.
* This is called during kernel boot, before secondary CPUs are brought up.
*/
void __init sve_init_vq_map(void) void __init sve_init_vq_map(void)
{ {
sve_probe_vqs(sve_vq_map); sve_probe_vqs(sve_vq_map);
...@@ -655,6 +659,7 @@ void __init sve_init_vq_map(void) ...@@ -655,6 +659,7 @@ void __init sve_init_vq_map(void)
/* /*
* If we haven't committed to the set of supported VQs yet, filter out * If we haven't committed to the set of supported VQs yet, filter out
* those not supported by the current CPU. * those not supported by the current CPU.
* This function is called during the bring-up of early secondary CPUs only.
*/ */
void sve_update_vq_map(void) void sve_update_vq_map(void)
{ {
...@@ -662,7 +667,10 @@ void sve_update_vq_map(void) ...@@ -662,7 +667,10 @@ void sve_update_vq_map(void)
bitmap_and(sve_vq_map, sve_vq_map, sve_secondary_vq_map, SVE_VQ_MAX); bitmap_and(sve_vq_map, sve_vq_map, sve_secondary_vq_map, SVE_VQ_MAX);
} }
/* Check whether the current CPU supports all VQs in the committed set */ /*
* Check whether the current CPU supports all VQs in the committed set.
* This function is called during the bring-up of late secondary CPUs only.
*/
int sve_verify_vq_map(void) int sve_verify_vq_map(void)
{ {
int ret = 0; int ret = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment