* [PATCH] xen: arm: arm64: Adding VFP save/restore support.
@ 2014-02-06 7:28 Pranavkumar Sawargaonkar
2014-02-06 10:15 ` Ian Campbell
2014-02-06 12:44 ` Julien Grall
0 siblings, 2 replies; 14+ messages in thread
From: Pranavkumar Sawargaonkar @ 2014-02-06 7:28 UTC (permalink / raw)
To: xen-devel
Cc: ian.campbell, Anup Patel, patches, patches, stefano.stabellini,
Pranavkumar Sawargaonkar
This patch adds VFP save/restore support form arm64 across context switch.
Signed-off-by: Pranavkumar Sawargaonkar <pranavkumar@linaro.org>
Signed-off-by: Anup Patel <anup.patel@linaro.org>
---
xen/arch/arm/arm64/vfp.c | 49 +++++++++++++++++++++++++++++++++++++++
xen/include/asm-arm/arm64/vfp.h | 4 ++++
2 files changed, 53 insertions(+)
diff --git a/xen/arch/arm/arm64/vfp.c b/xen/arch/arm/arm64/vfp.c
index 74e6a50..8c1479a 100644
--- a/xen/arch/arm/arm64/vfp.c
+++ b/xen/arch/arm/arm64/vfp.c
@@ -1,13 +1,62 @@
#include <xen/sched.h>
#include <asm/processor.h>
+#include <asm/cpufeature.h>
#include <asm/vfp.h>
void vfp_save_state(struct vcpu *v)
{
/* TODO: implement it */
+ if ( !cpu_has_fp )
+ return;
+
+ asm volatile("stp q0, q1, [%0, #16 * 0]\n\t"
+ "stp q2, q3, [%0, #16 * 2]\n\t"
+ "stp q4, q5, [%0, #16 * 4]\n\t"
+ "stp q6, q7, [%0, #16 * 6]\n\t"
+ "stp q8, q9, [%0, #16 * 8]\n\t"
+ "stp q10, q11, [%0, #16 * 10]\n\t"
+ "stp q12, q13, [%0, #16 * 12]\n\t"
+ "stp q14, q15, [%0, #16 * 14]\n\t"
+ "stp q16, q17, [%0, #16 * 16]\n\t"
+ "stp q18, q19, [%0, #16 * 18]\n\t"
+ "stp q20, q21, [%0, #16 * 20]\n\t"
+ "stp q22, q23, [%0, #16 * 22]\n\t"
+ "stp q24, q25, [%0, #16 * 24]\n\t"
+ "stp q26, q27, [%0, #16 * 26]\n\t"
+ "stp q28, q29, [%0, #16 * 28]\n\t"
+ "stp q30, q31, [%0, #16 * 30]\n\t"
+ :: "r" ((char *)(&v->arch.vfp.fpregs)): "memory");
+
+ v->arch.vfp.fpsr = READ_SYSREG32(FPSR);
+ v->arch.vfp.fpcr = READ_SYSREG32(FPCR);
+ v->arch.vfp.fpexc32_el2 = READ_SYSREG32(FPEXC32_EL2);
}
void vfp_restore_state(struct vcpu *v)
{
/* TODO: implement it */
+ if ( !cpu_has_fp )
+ return;
+
+ asm volatile("ldp q0, q1, [%0, #16 * 0]\n\t"
+ "ldp q2, q3, [%0, #16 * 2]\n\t"
+ "ldp q4, q5, [%0, #16 * 4]\n\t"
+ "ldp q6, q7, [%0, #16 * 6]\n\t"
+ "ldp q8, q9, [%0, #16 * 8]\n\t"
+ "ldp q10, q11, [%0, #16 * 10]\n\t"
+ "ldp q12, q13, [%0, #16 * 12]\n\t"
+ "ldp q14, q15, [%0, #16 * 14]\n\t"
+ "ldp q16, q17, [%0, #16 * 16]\n\t"
+ "ldp q18, q19, [%0, #16 * 18]\n\t"
+ "ldp q20, q21, [%0, #16 * 20]\n\t"
+ "ldp q22, q23, [%0, #16 * 22]\n\t"
+ "ldp q24, q25, [%0, #16 * 24]\n\t"
+ "ldp q26, q27, [%0, #16 * 26]\n\t"
+ "ldp q28, q29, [%0, #16 * 28]\n\t"
+ "ldp q30, q31, [%0, #16 * 30]\n\t"
+ :: "r" ((char *)(&v->arch.vfp.fpregs)): "memory");
+
+ WRITE_SYSREG32(v->arch.vfp.fpsr, FPSR);
+ WRITE_SYSREG32(v->arch.vfp.fpcr, FPCR);
+ WRITE_SYSREG32(v->arch.vfp.fpexc32_el2, FPEXC32_EL2);
}
diff --git a/xen/include/asm-arm/arm64/vfp.h b/xen/include/asm-arm/arm64/vfp.h
index 3733d2c..373f156 100644
--- a/xen/include/asm-arm/arm64/vfp.h
+++ b/xen/include/asm-arm/arm64/vfp.h
@@ -3,6 +3,10 @@
struct vfp_state
{
+ uint64_t fpregs[64];
+ uint32_t fpcr;
+ uint32_t fpexc32_el2;
+ uint32_t fpsr;
};
#endif /* _ARM_ARM64_VFP_H */
--
1.7.9.5
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH] xen: arm: arm64: Adding VFP save/restore support.
2014-02-06 7:28 [PATCH] xen: arm: arm64: Adding VFP save/restore support Pranavkumar Sawargaonkar
@ 2014-02-06 10:15 ` Ian Campbell
2014-02-06 10:41 ` Pranavkumar Sawargaonkar
` (2 more replies)
2014-02-06 12:44 ` Julien Grall
1 sibling, 3 replies; 14+ messages in thread
From: Ian Campbell @ 2014-02-06 10:15 UTC (permalink / raw)
To: Pranavkumar Sawargaonkar
Cc: Anup Patel, patches, George Dunlap, patches, xen-devel,
stefano.stabellini
On Thu, 2014-02-06 at 12:58 +0530, Pranavkumar Sawargaonkar wrote:
> This patch adds VFP save/restore support form arm64 across context switch.
>
> Signed-off-by: Pranavkumar Sawargaonkar <pranavkumar@linaro.org>
> Signed-off-by: Anup Patel <anup.patel@linaro.org>
This should go in for 4.4 -- not context switching floating point
registers is obviously a big problem. (bit embarrassed that I forgot
about this...)
> ---
> xen/arch/arm/arm64/vfp.c | 49 +++++++++++++++++++++++++++++++++++++++
> xen/include/asm-arm/arm64/vfp.h | 4 ++++
> 2 files changed, 53 insertions(+)
>
> diff --git a/xen/arch/arm/arm64/vfp.c b/xen/arch/arm/arm64/vfp.c
> index 74e6a50..8c1479a 100644
> --- a/xen/arch/arm/arm64/vfp.c
> +++ b/xen/arch/arm/arm64/vfp.c
> @@ -1,13 +1,62 @@
> #include <xen/sched.h>
> #include <asm/processor.h>
> +#include <asm/cpufeature.h>
> #include <asm/vfp.h>
>
> void vfp_save_state(struct vcpu *v)
> {
> /* TODO: implement it */
You can probably remove this comment, and the one in restore, unless
there is something still left to do?
Actually, I'll do it on commit, so:
Acked-by: Ian Campbell <ian.campbell@citrix.com>
> + if ( !cpu_has_fp )
> + return;
> +
> + asm volatile("stp q0, q1, [%0, #16 * 0]\n\t"
> + "stp q2, q3, [%0, #16 * 2]\n\t"
> + "stp q4, q5, [%0, #16 * 4]\n\t"
> + "stp q6, q7, [%0, #16 * 6]\n\t"
> + "stp q8, q9, [%0, #16 * 8]\n\t"
> + "stp q10, q11, [%0, #16 * 10]\n\t"
> + "stp q12, q13, [%0, #16 * 12]\n\t"
> + "stp q14, q15, [%0, #16 * 14]\n\t"
> + "stp q16, q17, [%0, #16 * 16]\n\t"
> + "stp q18, q19, [%0, #16 * 18]\n\t"
> + "stp q20, q21, [%0, #16 * 20]\n\t"
> + "stp q22, q23, [%0, #16 * 22]\n\t"
> + "stp q24, q25, [%0, #16 * 24]\n\t"
> + "stp q26, q27, [%0, #16 * 26]\n\t"
> + "stp q28, q29, [%0, #16 * 28]\n\t"
> + "stp q30, q31, [%0, #16 * 30]\n\t"
> + :: "r" ((char *)(&v->arch.vfp.fpregs)): "memory");
> +
> + v->arch.vfp.fpsr = READ_SYSREG32(FPSR);
> + v->arch.vfp.fpcr = READ_SYSREG32(FPCR);
> + v->arch.vfp.fpexc32_el2 = READ_SYSREG32(FPEXC32_EL2);
> }
>
> void vfp_restore_state(struct vcpu *v)
> {
> /* TODO: implement it */
> + if ( !cpu_has_fp )
> + return;
> +
> + asm volatile("ldp q0, q1, [%0, #16 * 0]\n\t"
> + "ldp q2, q3, [%0, #16 * 2]\n\t"
> + "ldp q4, q5, [%0, #16 * 4]\n\t"
> + "ldp q6, q7, [%0, #16 * 6]\n\t"
> + "ldp q8, q9, [%0, #16 * 8]\n\t"
> + "ldp q10, q11, [%0, #16 * 10]\n\t"
> + "ldp q12, q13, [%0, #16 * 12]\n\t"
> + "ldp q14, q15, [%0, #16 * 14]\n\t"
> + "ldp q16, q17, [%0, #16 * 16]\n\t"
> + "ldp q18, q19, [%0, #16 * 18]\n\t"
> + "ldp q20, q21, [%0, #16 * 20]\n\t"
> + "ldp q22, q23, [%0, #16 * 22]\n\t"
> + "ldp q24, q25, [%0, #16 * 24]\n\t"
> + "ldp q26, q27, [%0, #16 * 26]\n\t"
> + "ldp q28, q29, [%0, #16 * 28]\n\t"
> + "ldp q30, q31, [%0, #16 * 30]\n\t"
> + :: "r" ((char *)(&v->arch.vfp.fpregs)): "memory");
> +
> + WRITE_SYSREG32(v->arch.vfp.fpsr, FPSR);
> + WRITE_SYSREG32(v->arch.vfp.fpcr, FPCR);
> + WRITE_SYSREG32(v->arch.vfp.fpexc32_el2, FPEXC32_EL2);
> }
> diff --git a/xen/include/asm-arm/arm64/vfp.h b/xen/include/asm-arm/arm64/vfp.h
> index 3733d2c..373f156 100644
> --- a/xen/include/asm-arm/arm64/vfp.h
> +++ b/xen/include/asm-arm/arm64/vfp.h
> @@ -3,6 +3,10 @@
>
> struct vfp_state
> {
> + uint64_t fpregs[64];
> + uint32_t fpcr;
> + uint32_t fpexc32_el2;
> + uint32_t fpsr;
> };
>
> #endif /* _ARM_ARM64_VFP_H */
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] xen: arm: arm64: Adding VFP save/restore support.
2014-02-06 10:15 ` Ian Campbell
@ 2014-02-06 10:41 ` Pranavkumar Sawargaonkar
2014-02-06 10:50 ` Pranavkumar Sawargaonkar
2014-02-06 10:53 ` George Dunlap
2 siblings, 0 replies; 14+ messages in thread
From: Pranavkumar Sawargaonkar @ 2014-02-06 10:41 UTC (permalink / raw)
To: Ian Campbell
Cc: Anup Patel, Patch Tracking, George Dunlap, patches, xen-devel,
stefano.stabellini
Hi Ian,
On 6 February 2014 15:45, Ian Campbell <Ian.Campbell@citrix.com> wrote:
> On Thu, 2014-02-06 at 12:58 +0530, Pranavkumar Sawargaonkar wrote:
>> This patch adds VFP save/restore support form arm64 across context switch.
>>
>> Signed-off-by: Pranavkumar Sawargaonkar <pranavkumar@linaro.org>
>> Signed-off-by: Anup Patel <anup.patel@linaro.org>
>
> This should go in for 4.4 -- not context switching floating point
> registers is obviously a big problem. (bit embarrassed that I forgot
> about this...)
>
>> ---
>> xen/arch/arm/arm64/vfp.c | 49 +++++++++++++++++++++++++++++++++++++++
>> xen/include/asm-arm/arm64/vfp.h | 4 ++++
>> 2 files changed, 53 insertions(+)
>>
>> diff --git a/xen/arch/arm/arm64/vfp.c b/xen/arch/arm/arm64/vfp.c
>> index 74e6a50..8c1479a 100644
>> --- a/xen/arch/arm/arm64/vfp.c
>> +++ b/xen/arch/arm/arm64/vfp.c
>> @@ -1,13 +1,62 @@
>> #include <xen/sched.h>
>> #include <asm/processor.h>
>> +#include <asm/cpufeature.h>
>> #include <asm/vfp.h>
>>
>> void vfp_save_state(struct vcpu *v)
>> {
>> /* TODO: implement it */
>
> You can probably remove this comment, and the one in restore, unless
> there is something still left to do?
Oops, sorry let me remove and repost it.
>
> Actually, I'll do it on commit, so:
> Acked-by: Ian Campbell <ian.campbell@citrix.com>
>
>> + if ( !cpu_has_fp )
>> + return;
>> +
>> + asm volatile("stp q0, q1, [%0, #16 * 0]\n\t"
>> + "stp q2, q3, [%0, #16 * 2]\n\t"
>> + "stp q4, q5, [%0, #16 * 4]\n\t"
>> + "stp q6, q7, [%0, #16 * 6]\n\t"
>> + "stp q8, q9, [%0, #16 * 8]\n\t"
>> + "stp q10, q11, [%0, #16 * 10]\n\t"
>> + "stp q12, q13, [%0, #16 * 12]\n\t"
>> + "stp q14, q15, [%0, #16 * 14]\n\t"
>> + "stp q16, q17, [%0, #16 * 16]\n\t"
>> + "stp q18, q19, [%0, #16 * 18]\n\t"
>> + "stp q20, q21, [%0, #16 * 20]\n\t"
>> + "stp q22, q23, [%0, #16 * 22]\n\t"
>> + "stp q24, q25, [%0, #16 * 24]\n\t"
>> + "stp q26, q27, [%0, #16 * 26]\n\t"
>> + "stp q28, q29, [%0, #16 * 28]\n\t"
>> + "stp q30, q31, [%0, #16 * 30]\n\t"
>> + :: "r" ((char *)(&v->arch.vfp.fpregs)): "memory");
>> +
>> + v->arch.vfp.fpsr = READ_SYSREG32(FPSR);
>> + v->arch.vfp.fpcr = READ_SYSREG32(FPCR);
>> + v->arch.vfp.fpexc32_el2 = READ_SYSREG32(FPEXC32_EL2);
>> }
>>
>> void vfp_restore_state(struct vcpu *v)
>> {
>> /* TODO: implement it */
>> + if ( !cpu_has_fp )
>> + return;
>> +
>> + asm volatile("ldp q0, q1, [%0, #16 * 0]\n\t"
>> + "ldp q2, q3, [%0, #16 * 2]\n\t"
>> + "ldp q4, q5, [%0, #16 * 4]\n\t"
>> + "ldp q6, q7, [%0, #16 * 6]\n\t"
>> + "ldp q8, q9, [%0, #16 * 8]\n\t"
>> + "ldp q10, q11, [%0, #16 * 10]\n\t"
>> + "ldp q12, q13, [%0, #16 * 12]\n\t"
>> + "ldp q14, q15, [%0, #16 * 14]\n\t"
>> + "ldp q16, q17, [%0, #16 * 16]\n\t"
>> + "ldp q18, q19, [%0, #16 * 18]\n\t"
>> + "ldp q20, q21, [%0, #16 * 20]\n\t"
>> + "ldp q22, q23, [%0, #16 * 22]\n\t"
>> + "ldp q24, q25, [%0, #16 * 24]\n\t"
>> + "ldp q26, q27, [%0, #16 * 26]\n\t"
>> + "ldp q28, q29, [%0, #16 * 28]\n\t"
>> + "ldp q30, q31, [%0, #16 * 30]\n\t"
>> + :: "r" ((char *)(&v->arch.vfp.fpregs)): "memory");
>> +
>> + WRITE_SYSREG32(v->arch.vfp.fpsr, FPSR);
>> + WRITE_SYSREG32(v->arch.vfp.fpcr, FPCR);
>> + WRITE_SYSREG32(v->arch.vfp.fpexc32_el2, FPEXC32_EL2);
>> }
>> diff --git a/xen/include/asm-arm/arm64/vfp.h b/xen/include/asm-arm/arm64/vfp.h
>> index 3733d2c..373f156 100644
>> --- a/xen/include/asm-arm/arm64/vfp.h
>> +++ b/xen/include/asm-arm/arm64/vfp.h
>> @@ -3,6 +3,10 @@
>>
>> struct vfp_state
>> {
>> + uint64_t fpregs[64];
>> + uint32_t fpcr;
>> + uint32_t fpexc32_el2;
>> + uint32_t fpsr;
>> };
>>
>> #endif /* _ARM_ARM64_VFP_H */
>
>
Thanks,
Pranav
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] xen: arm: arm64: Adding VFP save/restore support.
2014-02-06 10:15 ` Ian Campbell
2014-02-06 10:41 ` Pranavkumar Sawargaonkar
@ 2014-02-06 10:50 ` Pranavkumar Sawargaonkar
2014-02-06 10:53 ` George Dunlap
2 siblings, 0 replies; 14+ messages in thread
From: Pranavkumar Sawargaonkar @ 2014-02-06 10:50 UTC (permalink / raw)
To: Ian Campbell
Cc: Anup Patel, Patch Tracking, George Dunlap, patches, xen-devel,
stefano.stabellini
Hi Ian,
On 6 February 2014 15:45, Ian Campbell <Ian.Campbell@citrix.com> wrote:
> On Thu, 2014-02-06 at 12:58 +0530, Pranavkumar Sawargaonkar wrote:
>> This patch adds VFP save/restore support form arm64 across context switch.
>>
>> Signed-off-by: Pranavkumar Sawargaonkar <pranavkumar@linaro.org>
>> Signed-off-by: Anup Patel <anup.patel@linaro.org>
>
> This should go in for 4.4 -- not context switching floating point
> registers is obviously a big problem. (bit embarrassed that I forgot
> about this...)
>
>> ---
>> xen/arch/arm/arm64/vfp.c | 49 +++++++++++++++++++++++++++++++++++++++
>> xen/include/asm-arm/arm64/vfp.h | 4 ++++
>> 2 files changed, 53 insertions(+)
>>
>> diff --git a/xen/arch/arm/arm64/vfp.c b/xen/arch/arm/arm64/vfp.c
>> index 74e6a50..8c1479a 100644
>> --- a/xen/arch/arm/arm64/vfp.c
>> +++ b/xen/arch/arm/arm64/vfp.c
>> @@ -1,13 +1,62 @@
>> #include <xen/sched.h>
>> #include <asm/processor.h>
>> +#include <asm/cpufeature.h>
>> #include <asm/vfp.h>
>>
>> void vfp_save_state(struct vcpu *v)
>> {
>> /* TODO: implement it */
>
> You can probably remove this comment, and the one in restore, unless
> there is something still left to do?
>
> Actually, I'll do it on commit, so:
Missed out above line. Please remove it during commit.
> Acked-by: Ian Campbell <ian.campbell@citrix.com>
Thanks,
Pranav
>
>> + if ( !cpu_has_fp )
>> + return;
>> +
>> + asm volatile("stp q0, q1, [%0, #16 * 0]\n\t"
>> + "stp q2, q3, [%0, #16 * 2]\n\t"
>> + "stp q4, q5, [%0, #16 * 4]\n\t"
>> + "stp q6, q7, [%0, #16 * 6]\n\t"
>> + "stp q8, q9, [%0, #16 * 8]\n\t"
>> + "stp q10, q11, [%0, #16 * 10]\n\t"
>> + "stp q12, q13, [%0, #16 * 12]\n\t"
>> + "stp q14, q15, [%0, #16 * 14]\n\t"
>> + "stp q16, q17, [%0, #16 * 16]\n\t"
>> + "stp q18, q19, [%0, #16 * 18]\n\t"
>> + "stp q20, q21, [%0, #16 * 20]\n\t"
>> + "stp q22, q23, [%0, #16 * 22]\n\t"
>> + "stp q24, q25, [%0, #16 * 24]\n\t"
>> + "stp q26, q27, [%0, #16 * 26]\n\t"
>> + "stp q28, q29, [%0, #16 * 28]\n\t"
>> + "stp q30, q31, [%0, #16 * 30]\n\t"
>> + :: "r" ((char *)(&v->arch.vfp.fpregs)): "memory");
>> +
>> + v->arch.vfp.fpsr = READ_SYSREG32(FPSR);
>> + v->arch.vfp.fpcr = READ_SYSREG32(FPCR);
>> + v->arch.vfp.fpexc32_el2 = READ_SYSREG32(FPEXC32_EL2);
>> }
>>
>> void vfp_restore_state(struct vcpu *v)
>> {
>> /* TODO: implement it */
>> + if ( !cpu_has_fp )
>> + return;
>> +
>> + asm volatile("ldp q0, q1, [%0, #16 * 0]\n\t"
>> + "ldp q2, q3, [%0, #16 * 2]\n\t"
>> + "ldp q4, q5, [%0, #16 * 4]\n\t"
>> + "ldp q6, q7, [%0, #16 * 6]\n\t"
>> + "ldp q8, q9, [%0, #16 * 8]\n\t"
>> + "ldp q10, q11, [%0, #16 * 10]\n\t"
>> + "ldp q12, q13, [%0, #16 * 12]\n\t"
>> + "ldp q14, q15, [%0, #16 * 14]\n\t"
>> + "ldp q16, q17, [%0, #16 * 16]\n\t"
>> + "ldp q18, q19, [%0, #16 * 18]\n\t"
>> + "ldp q20, q21, [%0, #16 * 20]\n\t"
>> + "ldp q22, q23, [%0, #16 * 22]\n\t"
>> + "ldp q24, q25, [%0, #16 * 24]\n\t"
>> + "ldp q26, q27, [%0, #16 * 26]\n\t"
>> + "ldp q28, q29, [%0, #16 * 28]\n\t"
>> + "ldp q30, q31, [%0, #16 * 30]\n\t"
>> + :: "r" ((char *)(&v->arch.vfp.fpregs)): "memory");
>> +
>> + WRITE_SYSREG32(v->arch.vfp.fpsr, FPSR);
>> + WRITE_SYSREG32(v->arch.vfp.fpcr, FPCR);
>> + WRITE_SYSREG32(v->arch.vfp.fpexc32_el2, FPEXC32_EL2);
>> }
>> diff --git a/xen/include/asm-arm/arm64/vfp.h b/xen/include/asm-arm/arm64/vfp.h
>> index 3733d2c..373f156 100644
>> --- a/xen/include/asm-arm/arm64/vfp.h
>> +++ b/xen/include/asm-arm/arm64/vfp.h
>> @@ -3,6 +3,10 @@
>>
>> struct vfp_state
>> {
>> + uint64_t fpregs[64];
>> + uint32_t fpcr;
>> + uint32_t fpexc32_el2;
>> + uint32_t fpsr;
>> };
>>
>> #endif /* _ARM_ARM64_VFP_H */
>
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] xen: arm: arm64: Adding VFP save/restore support.
2014-02-06 10:15 ` Ian Campbell
2014-02-06 10:41 ` Pranavkumar Sawargaonkar
2014-02-06 10:50 ` Pranavkumar Sawargaonkar
@ 2014-02-06 10:53 ` George Dunlap
2014-02-06 12:40 ` Ian Campbell
2 siblings, 1 reply; 14+ messages in thread
From: George Dunlap @ 2014-02-06 10:53 UTC (permalink / raw)
To: Ian Campbell, Pranavkumar Sawargaonkar
Cc: patches, patches, stefano.stabellini, Anup Patel, xen-devel
On 02/06/2014 10:15 AM, Ian Campbell wrote:
> On Thu, 2014-02-06 at 12:58 +0530, Pranavkumar Sawargaonkar wrote:
>> This patch adds VFP save/restore support form arm64 across context switch.
>>
>> Signed-off-by: Pranavkumar Sawargaonkar <pranavkumar@linaro.org>
>> Signed-off-by: Anup Patel <anup.patel@linaro.org>
> This should go in for 4.4 -- not context switching floating point
> registers is obviously a big problem. (bit embarrassed that I forgot
> about this...)
Yes, absolutely.
Release-acked-by: George Dunlap <george.dunlap@eu.citrix.com>
>
>> ---
>> xen/arch/arm/arm64/vfp.c | 49 +++++++++++++++++++++++++++++++++++++++
>> xen/include/asm-arm/arm64/vfp.h | 4 ++++
>> 2 files changed, 53 insertions(+)
>>
>> diff --git a/xen/arch/arm/arm64/vfp.c b/xen/arch/arm/arm64/vfp.c
>> index 74e6a50..8c1479a 100644
>> --- a/xen/arch/arm/arm64/vfp.c
>> +++ b/xen/arch/arm/arm64/vfp.c
>> @@ -1,13 +1,62 @@
>> #include <xen/sched.h>
>> #include <asm/processor.h>
>> +#include <asm/cpufeature.h>
>> #include <asm/vfp.h>
>>
>> void vfp_save_state(struct vcpu *v)
>> {
>> /* TODO: implement it */
> You can probably remove this comment, and the one in restore, unless
> there is something still left to do?
>
> Actually, I'll do it on commit, so:
> Acked-by: Ian Campbell <ian.campbell@citrix.com>
>
>> + if ( !cpu_has_fp )
>> + return;
>> +
>> + asm volatile("stp q0, q1, [%0, #16 * 0]\n\t"
>> + "stp q2, q3, [%0, #16 * 2]\n\t"
>> + "stp q4, q5, [%0, #16 * 4]\n\t"
>> + "stp q6, q7, [%0, #16 * 6]\n\t"
>> + "stp q8, q9, [%0, #16 * 8]\n\t"
>> + "stp q10, q11, [%0, #16 * 10]\n\t"
>> + "stp q12, q13, [%0, #16 * 12]\n\t"
>> + "stp q14, q15, [%0, #16 * 14]\n\t"
>> + "stp q16, q17, [%0, #16 * 16]\n\t"
>> + "stp q18, q19, [%0, #16 * 18]\n\t"
>> + "stp q20, q21, [%0, #16 * 20]\n\t"
>> + "stp q22, q23, [%0, #16 * 22]\n\t"
>> + "stp q24, q25, [%0, #16 * 24]\n\t"
>> + "stp q26, q27, [%0, #16 * 26]\n\t"
>> + "stp q28, q29, [%0, #16 * 28]\n\t"
>> + "stp q30, q31, [%0, #16 * 30]\n\t"
>> + :: "r" ((char *)(&v->arch.vfp.fpregs)): "memory");
>> +
>> + v->arch.vfp.fpsr = READ_SYSREG32(FPSR);
>> + v->arch.vfp.fpcr = READ_SYSREG32(FPCR);
>> + v->arch.vfp.fpexc32_el2 = READ_SYSREG32(FPEXC32_EL2);
>> }
>>
>> void vfp_restore_state(struct vcpu *v)
>> {
>> /* TODO: implement it */
>> + if ( !cpu_has_fp )
>> + return;
>> +
>> + asm volatile("ldp q0, q1, [%0, #16 * 0]\n\t"
>> + "ldp q2, q3, [%0, #16 * 2]\n\t"
>> + "ldp q4, q5, [%0, #16 * 4]\n\t"
>> + "ldp q6, q7, [%0, #16 * 6]\n\t"
>> + "ldp q8, q9, [%0, #16 * 8]\n\t"
>> + "ldp q10, q11, [%0, #16 * 10]\n\t"
>> + "ldp q12, q13, [%0, #16 * 12]\n\t"
>> + "ldp q14, q15, [%0, #16 * 14]\n\t"
>> + "ldp q16, q17, [%0, #16 * 16]\n\t"
>> + "ldp q18, q19, [%0, #16 * 18]\n\t"
>> + "ldp q20, q21, [%0, #16 * 20]\n\t"
>> + "ldp q22, q23, [%0, #16 * 22]\n\t"
>> + "ldp q24, q25, [%0, #16 * 24]\n\t"
>> + "ldp q26, q27, [%0, #16 * 26]\n\t"
>> + "ldp q28, q29, [%0, #16 * 28]\n\t"
>> + "ldp q30, q31, [%0, #16 * 30]\n\t"
>> + :: "r" ((char *)(&v->arch.vfp.fpregs)): "memory");
>> +
>> + WRITE_SYSREG32(v->arch.vfp.fpsr, FPSR);
>> + WRITE_SYSREG32(v->arch.vfp.fpcr, FPCR);
>> + WRITE_SYSREG32(v->arch.vfp.fpexc32_el2, FPEXC32_EL2);
>> }
>> diff --git a/xen/include/asm-arm/arm64/vfp.h b/xen/include/asm-arm/arm64/vfp.h
>> index 3733d2c..373f156 100644
>> --- a/xen/include/asm-arm/arm64/vfp.h
>> +++ b/xen/include/asm-arm/arm64/vfp.h
>> @@ -3,6 +3,10 @@
>>
>> struct vfp_state
>> {
>> + uint64_t fpregs[64];
>> + uint32_t fpcr;
>> + uint32_t fpexc32_el2;
>> + uint32_t fpsr;
>> };
>>
>> #endif /* _ARM_ARM64_VFP_H */
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] xen: arm: arm64: Adding VFP save/restore support.
2014-02-06 10:53 ` George Dunlap
@ 2014-02-06 12:40 ` Ian Campbell
0 siblings, 0 replies; 14+ messages in thread
From: Ian Campbell @ 2014-02-06 12:40 UTC (permalink / raw)
To: George Dunlap
Cc: Anup Patel, patches, patches, xen-devel, stefano.stabellini,
Pranavkumar Sawargaonkar
On Thu, 2014-02-06 at 10:53 +0000, George Dunlap wrote:
> On 02/06/2014 10:15 AM, Ian Campbell wrote:
> > On Thu, 2014-02-06 at 12:58 +0530, Pranavkumar Sawargaonkar wrote:
> >> This patch adds VFP save/restore support form arm64 across context switch.
> >>
> >> Signed-off-by: Pranavkumar Sawargaonkar <pranavkumar@linaro.org>
> >> Signed-off-by: Anup Patel <anup.patel@linaro.org>
> > This should go in for 4.4 -- not context switching floating point
> > registers is obviously a big problem. (bit embarrassed that I forgot
> > about this...)
>
> Yes, absolutely.
>
> Release-acked-by: George Dunlap <george.dunlap@eu.citrix.com>
Applied, thanks all.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] xen: arm: arm64: Adding VFP save/restore support.
2014-02-06 7:28 [PATCH] xen: arm: arm64: Adding VFP save/restore support Pranavkumar Sawargaonkar
2014-02-06 10:15 ` Ian Campbell
@ 2014-02-06 12:44 ` Julien Grall
2014-02-06 12:57 ` Ian Campbell
1 sibling, 1 reply; 14+ messages in thread
From: Julien Grall @ 2014-02-06 12:44 UTC (permalink / raw)
To: Pranavkumar Sawargaonkar, xen-devel
Cc: stefano.stabellini, patches, ian.campbell, Anup Patel, patches
Hello,
On 06/02/14 07:28, Pranavkumar Sawargaonkar wrote:
> This patch adds VFP save/restore support form arm64 across context switch.
>
> Signed-off-by: Pranavkumar Sawargaonkar <pranavkumar@linaro.org>
> Signed-off-by: Anup Patel <anup.patel@linaro.org>
> ---
> xen/arch/arm/arm64/vfp.c | 49 +++++++++++++++++++++++++++++++++++++++
> xen/include/asm-arm/arm64/vfp.h | 4 ++++
> 2 files changed, 53 insertions(+)
>
> diff --git a/xen/arch/arm/arm64/vfp.c b/xen/arch/arm/arm64/vfp.c
> index 74e6a50..8c1479a 100644
> --- a/xen/arch/arm/arm64/vfp.c
> +++ b/xen/arch/arm/arm64/vfp.c
> @@ -1,13 +1,62 @@
> #include <xen/sched.h>
> #include <asm/processor.h>
> +#include <asm/cpufeature.h>
> #include <asm/vfp.h>
>
> void vfp_save_state(struct vcpu *v)
> {
> /* TODO: implement it */
> + if ( !cpu_has_fp )
> + return;
> +
> + asm volatile("stp q0, q1, [%0, #16 * 0]\n\t"
> + "stp q2, q3, [%0, #16 * 2]\n\t"
> + "stp q4, q5, [%0, #16 * 4]\n\t"
> + "stp q6, q7, [%0, #16 * 6]\n\t"
> + "stp q8, q9, [%0, #16 * 8]\n\t"
> + "stp q10, q11, [%0, #16 * 10]\n\t"
> + "stp q12, q13, [%0, #16 * 12]\n\t"
> + "stp q14, q15, [%0, #16 * 14]\n\t"
> + "stp q16, q17, [%0, #16 * 16]\n\t"
> + "stp q18, q19, [%0, #16 * 18]\n\t"
> + "stp q20, q21, [%0, #16 * 20]\n\t"
> + "stp q22, q23, [%0, #16 * 22]\n\t"
> + "stp q24, q25, [%0, #16 * 24]\n\t"
> + "stp q26, q27, [%0, #16 * 26]\n\t"
> + "stp q28, q29, [%0, #16 * 28]\n\t"
> + "stp q30, q31, [%0, #16 * 30]\n\t"
> + :: "r" ((char *)(&v->arch.vfp.fpregs)): "memory");
I remember we had a discussion when I have implemented vfp context
switch for arm32 for the memory constraints
(http://lists.xen.org/archives/html/xen-devel/2013-06/msg00110.html).
I think you should use "=Q" also here to avoid cloberring the whole memory.
At the same time, is it necessary the (char *)?
> +
> + v->arch.vfp.fpsr = READ_SYSREG32(FPSR);
> + v->arch.vfp.fpcr = READ_SYSREG32(FPCR);
> + v->arch.vfp.fpexc32_el2 = READ_SYSREG32(FPEXC32_EL2);
> }
>
> void vfp_restore_state(struct vcpu *v)
> {
> /* TODO: implement it */
> + if ( !cpu_has_fp )
> + return;
> +
> + asm volatile("ldp q0, q1, [%0, #16 * 0]\n\t"
> + "ldp q2, q3, [%0, #16 * 2]\n\t"
> + "ldp q4, q5, [%0, #16 * 4]\n\t"
> + "ldp q6, q7, [%0, #16 * 6]\n\t"
> + "ldp q8, q9, [%0, #16 * 8]\n\t"
> + "ldp q10, q11, [%0, #16 * 10]\n\t"
> + "ldp q12, q13, [%0, #16 * 12]\n\t"
> + "ldp q14, q15, [%0, #16 * 14]\n\t"
> + "ldp q16, q17, [%0, #16 * 16]\n\t"
> + "ldp q18, q19, [%0, #16 * 18]\n\t"
> + "ldp q20, q21, [%0, #16 * 20]\n\t"
> + "ldp q22, q23, [%0, #16 * 22]\n\t"
> + "ldp q24, q25, [%0, #16 * 24]\n\t"
> + "ldp q26, q27, [%0, #16 * 26]\n\t"
> + "ldp q28, q29, [%0, #16 * 28]\n\t"
> + "ldp q30, q31, [%0, #16 * 30]\n\t"
> + :: "r" ((char *)(&v->arch.vfp.fpregs)): "memory");
Same here.
Regards,
--
Julien Grall
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] xen: arm: arm64: Adding VFP save/restore support.
2014-02-06 12:44 ` Julien Grall
@ 2014-02-06 12:57 ` Ian Campbell
2014-02-06 13:08 ` Julien Grall
0 siblings, 1 reply; 14+ messages in thread
From: Ian Campbell @ 2014-02-06 12:57 UTC (permalink / raw)
To: Julien Grall
Cc: Anup Patel, patches, patches, xen-devel, stefano.stabellini,
Pranavkumar Sawargaonkar
On Thu, 2014-02-06 at 12:44 +0000, Julien Grall wrote:
> > + :: "r" ((char *)(&v->arch.vfp.fpregs)): "memory");
>
> I remember we had a discussion when I have implemented vfp context
> switch for arm32 for the memory constraints
> (http://lists.xen.org/archives/html/xen-devel/2013-06/msg00110.html).
>
> I think you should use "=Q" also here to avoid cloberring the whole memory.
Yes, I forgot to say: I think getting something in now is the priority,
which is why I committed it, but this should be tightened up, probably
for 4.5 unless the difference is benchmarkable.
> At the same time, is it necessary the (char *)?
I missed that, yes I suspect it is unnecessary.
Ian.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] xen: arm: arm64: Adding VFP save/restore support.
2014-02-06 12:57 ` Ian Campbell
@ 2014-02-06 13:08 ` Julien Grall
2014-02-06 13:11 ` Ian Campbell
0 siblings, 1 reply; 14+ messages in thread
From: Julien Grall @ 2014-02-06 13:08 UTC (permalink / raw)
To: Ian Campbell
Cc: Anup Patel, patches, patches, xen-devel, stefano.stabellini,
Pranavkumar Sawargaonkar
On 06/02/14 12:57, Ian Campbell wrote:
> On Thu, 2014-02-06 at 12:44 +0000, Julien Grall wrote:
>>> + :: "r" ((char *)(&v->arch.vfp.fpregs)): "memory");
>>
>> I remember we had a discussion when I have implemented vfp context
>> switch for arm32 for the memory constraints
>> (http://lists.xen.org/archives/html/xen-devel/2013-06/msg00110.html).
>>
>> I think you should use "=Q" also here to avoid cloberring the whole memory.
>
> Yes, I forgot to say: I think getting something in now is the priority,
> which is why I committed it, but this should be tightened up, probably
> for 4.5 unless the difference is benchmarkable.
The fix is very simple (a matter of 2 lines changes). I would prefer to
delay this patch for a couple of days and having a correct
implementation from the beginning, so we will not forgot to change the
code for Xen 4.5.
Moreover Pranav usually answer quickly :).
--
Julien Grall
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] xen: arm: arm64: Adding VFP save/restore support.
2014-02-06 13:08 ` Julien Grall
@ 2014-02-06 13:11 ` Ian Campbell
2014-02-07 5:31 ` Pranavkumar Sawargaonkar
2014-02-07 15:28 ` George Dunlap
0 siblings, 2 replies; 14+ messages in thread
From: Ian Campbell @ 2014-02-06 13:11 UTC (permalink / raw)
To: Julien Grall
Cc: Anup Patel, patches, patches, xen-devel, stefano.stabellini,
Pranavkumar Sawargaonkar
On Thu, 2014-02-06 at 13:08 +0000, Julien Grall wrote:
>
> On 06/02/14 12:57, Ian Campbell wrote:
> > On Thu, 2014-02-06 at 12:44 +0000, Julien Grall wrote:
> >>> + :: "r" ((char *)(&v->arch.vfp.fpregs)): "memory");
> >>
> >> I remember we had a discussion when I have implemented vfp context
> >> switch for arm32 for the memory constraints
> >> (http://lists.xen.org/archives/html/xen-devel/2013-06/msg00110.html).
> >>
> >> I think you should use "=Q" also here to avoid cloberring the whole memory.
> >
> > Yes, I forgot to say: I think getting something in now is the priority,
> > which is why I committed it, but this should be tightened up, probably
> > for 4.5 unless the difference is benchmarkable.
>
> The fix is very simple (a matter of 2 lines changes). I would prefer to
> delay this patch for a couple of days and having a correct
> implementation from the beginning, so we will not forgot to change the
> code for Xen 4.5.
And I would rather close this rather large hole right now and not wait
for two more days when we are looking at doing what might be the final
rc soon.
I had already applied before you said anything, so the point is moot.
Anyway, if someone wants to submit for 4.4 with a case for a release
exception then I'm sure George will consider it.
Otherwise this thread is now in my QUEUE-4.5 folder so I'll get a
reminder shortly after the release when I go through that.
> Moreover Pranav usually answer quickly :).
If he's awake/at work, it's out of office hours for him now.
Ian.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] xen: arm: arm64: Adding VFP save/restore support.
2014-02-06 13:11 ` Ian Campbell
@ 2014-02-07 5:31 ` Pranavkumar Sawargaonkar
2014-02-07 10:43 ` Pranavkumar Sawargaonkar
2014-02-07 15:28 ` George Dunlap
1 sibling, 1 reply; 14+ messages in thread
From: Pranavkumar Sawargaonkar @ 2014-02-07 5:31 UTC (permalink / raw)
To: Ian Campbell
Cc: Anup Patel, Patch Tracking, Julien Grall, patches, xen-devel,
stefano.stabellini
Hi Ian,
On 6 February 2014 18:41, Ian Campbell <Ian.Campbell@citrix.com> wrote:
> On Thu, 2014-02-06 at 13:08 +0000, Julien Grall wrote:
>>
>> On 06/02/14 12:57, Ian Campbell wrote:
>> > On Thu, 2014-02-06 at 12:44 +0000, Julien Grall wrote:
>> >>> + :: "r" ((char *)(&v->arch.vfp.fpregs)): "memory");
>> >>
>> >> I remember we had a discussion when I have implemented vfp context
>> >> switch for arm32 for the memory constraints
>> >> (http://lists.xen.org/archives/html/xen-devel/2013-06/msg00110.html).
>> >>
>> >> I think you should use "=Q" also here to avoid cloberring the whole memory.
>> >
>> > Yes, I forgot to say: I think getting something in now is the priority,
>> > which is why I committed it, but this should be tightened up, probably
>> > for 4.5 unless the difference is benchmarkable.
>>
>> The fix is very simple (a matter of 2 lines changes). I would prefer to
>> delay this patch for a couple of days and having a correct
>> implementation from the beginning, so we will not forgot to change the
>> code for Xen 4.5.
>
> And I would rather close this rather large hole right now and not wait
> for two more days when we are looking at doing what might be the final
> rc soon.
>
> I had already applied before you said anything, so the point is moot.
>
> Anyway, if someone wants to submit for 4.4 with a case for a release
> exception then I'm sure George will consider it.
>
> Otherwise this thread is now in my QUEUE-4.5 folder so I'll get a
> reminder shortly after the release when I go through that.
>
>> Moreover Pranav usually answer quickly :).
>
> If he's awake/at work, it's out of office hours for him now.
: ) :) , sorry somehow I missed this yesterday.
If "=Q" is really critical i can quickly send you a new patch against
your commit in staging branch
(http://xenbits.xen.org/gitweb/?p=xen.git;a=commit;h=712eb2e04da2cbcd9908f74ebd47c6df60d6d12f)
>
> Ian.
>
Thanks,
Pranav
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] xen: arm: arm64: Adding VFP save/restore support.
2014-02-07 5:31 ` Pranavkumar Sawargaonkar
@ 2014-02-07 10:43 ` Pranavkumar Sawargaonkar
0 siblings, 0 replies; 14+ messages in thread
From: Pranavkumar Sawargaonkar @ 2014-02-07 10:43 UTC (permalink / raw)
To: Ian Campbell
Cc: Anup Patel, Patch Tracking, Julien Grall, patches, xen-devel,
stefano.stabellini
Hi Ian/ Julien,
On 7 February 2014 11:01, Pranavkumar Sawargaonkar
<pranavkumar@linaro.org> wrote:
> Hi Ian,
>
> On 6 February 2014 18:41, Ian Campbell <Ian.Campbell@citrix.com> wrote:
>> On Thu, 2014-02-06 at 13:08 +0000, Julien Grall wrote:
>>>
>>> On 06/02/14 12:57, Ian Campbell wrote:
>>> > On Thu, 2014-02-06 at 12:44 +0000, Julien Grall wrote:
>>> >>> + :: "r" ((char *)(&v->arch.vfp.fpregs)): "memory");
>>> >>
>>> >> I remember we had a discussion when I have implemented vfp context
>>> >> switch for arm32 for the memory constraints
>>> >> (http://lists.xen.org/archives/html/xen-devel/2013-06/msg00110.html).
>>> >>
>>> >> I think you should use "=Q" also here to avoid cloberring the whole memory.
>>> >
>>> > Yes, I forgot to say: I think getting something in now is the priority,
>>> > which is why I committed it, but this should be tightened up, probably
>>> > for 4.5 unless the difference is benchmarkable.
>>>
>>> The fix is very simple (a matter of 2 lines changes). I would prefer to
>>> delay this patch for a couple of days and having a correct
>>> implementation from the beginning, so we will not forgot to change the
>>> code for Xen 4.5.
>>
>> And I would rather close this rather large hole right now and not wait
>> for two more days when we are looking at doing what might be the final
>> rc soon.
>>
>> I had already applied before you said anything, so the point is moot.
>>
>> Anyway, if someone wants to submit for 4.4 with a case for a release
>> exception then I'm sure George will consider it.
>>
>> Otherwise this thread is now in my QUEUE-4.5 folder so I'll get a
>> reminder shortly after the release when I go through that.
>>
>>> Moreover Pranav usually answer quickly :).
>>
>> If he's awake/at work, it's out of office hours for him now.
>
> : ) :) , sorry somehow I missed this yesterday.
>
> If "=Q" is really critical i can quickly send you a new patch against
> your commit in staging branch
> (http://xenbits.xen.org/gitweb/?p=xen.git;a=commit;h=712eb2e04da2cbcd9908f74ebd47c6df60d6d12f)
Posted a new patch with the desired fix -
"xen: arm: arm64: Fix memory cloberring issues during VFP save restore."
>>
>> Ian.
>>
> Thanks,
> Pranav
Thanks,
Pranav
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] xen: arm: arm64: Adding VFP save/restore support.
2014-02-06 13:11 ` Ian Campbell
2014-02-07 5:31 ` Pranavkumar Sawargaonkar
@ 2014-02-07 15:28 ` George Dunlap
2014-02-07 15:33 ` Ian Campbell
1 sibling, 1 reply; 14+ messages in thread
From: George Dunlap @ 2014-02-07 15:28 UTC (permalink / raw)
To: Ian Campbell
Cc: Anup Patel, patches@linaro.org, Julien Grall, patches,
xen-devel@lists.xen.org, Stefano Stabellini,
Pranavkumar Sawargaonkar
On Thu, Feb 6, 2014 at 1:11 PM, Ian Campbell <Ian.Campbell@citrix.com> wrote:
> On Thu, 2014-02-06 at 13:08 +0000, Julien Grall wrote:
>>
>> On 06/02/14 12:57, Ian Campbell wrote:
>> > On Thu, 2014-02-06 at 12:44 +0000, Julien Grall wrote:
>> >>> + :: "r" ((char *)(&v->arch.vfp.fpregs)): "memory");
>> >>
>> >> I remember we had a discussion when I have implemented vfp context
>> >> switch for arm32 for the memory constraints
>> >> (http://lists.xen.org/archives/html/xen-devel/2013-06/msg00110.html).
>> >>
>> >> I think you should use "=Q" also here to avoid cloberring the whole memory.
>> >
>> > Yes, I forgot to say: I think getting something in now is the priority,
>> > which is why I committed it, but this should be tightened up, probably
>> > for 4.5 unless the difference is benchmarkable.
>>
>> The fix is very simple (a matter of 2 lines changes). I would prefer to
>> delay this patch for a couple of days and having a correct
>> implementation from the beginning, so we will not forgot to change the
>> code for Xen 4.5.
>
> And I would rather close this rather large hole right now and not wait
> for two more days when we are looking at doing what might be the final
> rc soon.
>
> I had already applied before you said anything, so the point is moot.
But just for future reference: Be on your guard against the "hurry and
get in" mentality; it's likely to be counterproductive. I'd rather
have *more* care taken with the patches at this point than normally.
If that means making a case to delay the release, that's what it will
take. This would obviously have been a complete blocker -- there's no
way we could in good release without FPU support for guests. :-)
-George
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] xen: arm: arm64: Adding VFP save/restore support.
2014-02-07 15:28 ` George Dunlap
@ 2014-02-07 15:33 ` Ian Campbell
0 siblings, 0 replies; 14+ messages in thread
From: Ian Campbell @ 2014-02-07 15:33 UTC (permalink / raw)
To: George Dunlap
Cc: Anup Patel, patches@linaro.org, Julien Grall, patches,
xen-devel@lists.xen.org, Stefano Stabellini,
Pranavkumar Sawargaonkar
On Fri, 2014-02-07 at 15:28 +0000, George Dunlap wrote:
> On Thu, Feb 6, 2014 at 1:11 PM, Ian Campbell <Ian.Campbell@citrix.com> wrote:
> > On Thu, 2014-02-06 at 13:08 +0000, Julien Grall wrote:
> >>
> >> On 06/02/14 12:57, Ian Campbell wrote:
> >> > On Thu, 2014-02-06 at 12:44 +0000, Julien Grall wrote:
> >> >>> + :: "r" ((char *)(&v->arch.vfp.fpregs)): "memory");
> >> >>
> >> >> I remember we had a discussion when I have implemented vfp context
> >> >> switch for arm32 for the memory constraints
> >> >> (http://lists.xen.org/archives/html/xen-devel/2013-06/msg00110.html).
> >> >>
> >> >> I think you should use "=Q" also here to avoid cloberring the whole memory.
> >> >
> >> > Yes, I forgot to say: I think getting something in now is the priority,
> >> > which is why I committed it, but this should be tightened up, probably
> >> > for 4.5 unless the difference is benchmarkable.
> >>
> >> The fix is very simple (a matter of 2 lines changes). I would prefer to
> >> delay this patch for a couple of days and having a correct
> >> implementation from the beginning, so we will not forgot to change the
> >> code for Xen 4.5.
> >
> > And I would rather close this rather large hole right now and not wait
> > for two more days when we are looking at doing what might be the final
> > rc soon.
> >
> > I had already applied before you said anything, so the point is moot.
>
> But just for future reference: Be on your guard against the "hurry and
> get in" mentality; it's likely to be counterproductive. I'd rather
> have *more* care taken with the patches at this point than normally.
This was not a case of a careless rush to get something in. It was my
opinion that the minor shortcoming wasn't worth waiting for compared
with the benefit of getting that patch in sooner rather than later.
Note that the patch was not in any way wrong.
> If that means making a case to delay the release, that's what it will
> take. This would obviously have been a complete blocker -- there's no
> way we could in good release without FPU support for guests. :-)
>
> -George
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2014-02-07 15:33 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-06 7:28 [PATCH] xen: arm: arm64: Adding VFP save/restore support Pranavkumar Sawargaonkar
2014-02-06 10:15 ` Ian Campbell
2014-02-06 10:41 ` Pranavkumar Sawargaonkar
2014-02-06 10:50 ` Pranavkumar Sawargaonkar
2014-02-06 10:53 ` George Dunlap
2014-02-06 12:40 ` Ian Campbell
2014-02-06 12:44 ` Julien Grall
2014-02-06 12:57 ` Ian Campbell
2014-02-06 13:08 ` Julien Grall
2014-02-06 13:11 ` Ian Campbell
2014-02-07 5:31 ` Pranavkumar Sawargaonkar
2014-02-07 10:43 ` Pranavkumar Sawargaonkar
2014-02-07 15:28 ` George Dunlap
2014-02-07 15:33 ` Ian Campbell
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.