Message ID | 1553864452-15080-7-git-send-email-Dave.Martin@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | KVM: arm64: SVE guest support | expand |
On Fri, Mar 29, 2019 at 01:00:31PM +0000, Dave Martin wrote: > 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: Dave Martin <Dave.Martin@arm.com> > Reviewed-by: Julien Thierry <julien.thierry@arm.com> > Reviewed-by: Julien Grall <julien.grall@arm.com> > Tested-by: zhang.lei <zhang.lei@jp.fujitsu.com> > > --- > > Changes since v5: > > * [Julien Thierry] This patch is useful for explaining the previous > patch (as per the v5 ordering), and is anyway non-functional. > Swapped it with the previous patch to provide a more logical reading > order for the series. > --- > arch/arm64/kernel/fpsimd.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/kernel/fpsimd.c b/arch/arm64/kernel/fpsimd.c > index 62c37f0..f59ea67 100644 > --- a/arch/arm64/kernel/fpsimd.c > +++ b/arch/arm64/kernel/fpsimd.c > @@ -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) > { > sve_probe_vqs(sve_vq_map); > @@ -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 > * 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) > { > @@ -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); > } > > -/* 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 ret = 0; > -- > 2.1.4 Reviewed-by: Andrew Jones <drjones@redhat.com>
diff --git a/arch/arm64/kernel/fpsimd.c b/arch/arm64/kernel/fpsimd.c index 62c37f0..f59ea67 100644 --- a/arch/arm64/kernel/fpsimd.c +++ b/arch/arm64/kernel/fpsimd.c @@ -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) { sve_probe_vqs(sve_vq_map); @@ -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 * 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) { @@ -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); } -/* 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 ret = 0;