* [PATCH] target/arm: Restrict translation disabled alignment check to VMSA
@ 2024-04-22 17:07 Richard Henderson
2024-04-22 17:09 ` Richard Henderson
2024-04-25 19:18 ` Peter Maydell
0 siblings, 2 replies; 8+ messages in thread
From: Richard Henderson @ 2024-04-22 17:07 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell, Clément Chigot, qemu-stable
For cpus using PMSA, when the MPU is disabled, the default memory
type is Normal, Non-cachable.
Fixes: 59754f85ed3 ("target/arm: Do memory type alignment check when translation disabled")
Reported-by: Clément Chigot <chigot@adacore.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
Since v9 will likely be tagged tomorrow without this fixed,
Cc: qemu-stable@nongnu.org
---
target/arm/tcg/hflags.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/target/arm/tcg/hflags.c b/target/arm/tcg/hflags.c
index 5da1b0fc1d..66de30b828 100644
--- a/target/arm/tcg/hflags.c
+++ b/target/arm/tcg/hflags.c
@@ -38,8 +38,16 @@ static bool aprofile_require_alignment(CPUARMState *env, int el, uint64_t sctlr)
}
/*
- * If translation is disabled, then the default memory type is
- * Device(-nGnRnE) instead of Normal, which requires that alignment
+ * With PMSA, when the MPU is disabled, all memory types in the
+ * default map is Normal.
+ */
+ if (arm_feature(env, ARM_FEATURE_PMSA)) {
+ return false;
+ }
+
+ /*
+ * With VMSA, if translation is disabled, then the default memory type
+ * is Device(-nGnRnE) instead of Normal, which requires that alignment
* be enforced. Since this affects all ram, it is most efficient
* to handle this during translation.
*/
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH] target/arm: Restrict translation disabled alignment check to VMSA
2024-04-22 17:07 [PATCH] target/arm: Restrict translation disabled alignment check to VMSA Richard Henderson
@ 2024-04-22 17:09 ` Richard Henderson
2024-04-22 21:02 ` Philippe Mathieu-Daudé
2024-04-25 19:18 ` Peter Maydell
1 sibling, 1 reply; 8+ messages in thread
From: Richard Henderson @ 2024-04-22 17:09 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell, Clément Chigot, qemu-stable
On 4/22/24 10:07, Richard Henderson wrote:
> For cpus using PMSA, when the MPU is disabled, the default memory
> type is Normal, Non-cachable.
>
> Fixes: 59754f85ed3 ("target/arm: Do memory type alignment check when translation disabled")
> Reported-by: Clément Chigot <chigot@adacore.com>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
>
> Since v9 will likely be tagged tomorrow without this fixed,
> Cc: qemu-stable@nongnu.org
>
> ---
> target/arm/tcg/hflags.c | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/target/arm/tcg/hflags.c b/target/arm/tcg/hflags.c
> index 5da1b0fc1d..66de30b828 100644
> --- a/target/arm/tcg/hflags.c
> +++ b/target/arm/tcg/hflags.c
> @@ -38,8 +38,16 @@ static bool aprofile_require_alignment(CPUARMState *env, int el, uint64_t sctlr)
> }
>
> /*
> - * If translation is disabled, then the default memory type is
> - * Device(-nGnRnE) instead of Normal, which requires that alignment
> + * With PMSA, when the MPU is disabled, all memory types in the
> + * default map is Normal.
> + */
> + if (arm_feature(env, ARM_FEATURE_PMSA)) {
> + return false;
> + }
> +
> + /*
> + * With VMSA, if translation is disabled, then the default memory type
> + * is Device(-nGnRnE) instead of Normal, which requires that alignment
> * be enforced. Since this affects all ram, it is most efficient
> * to handle this during translation.
> */
Oh, I meant to add: since the armv7 manual has both VMSA and PMSA sections, and the
language about default Device type and alignment traps, is in the VMSA section.
This will at least fix our two r-profile cpus.
r~
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] target/arm: Restrict translation disabled alignment check to VMSA
2024-04-22 17:09 ` Richard Henderson
@ 2024-04-22 21:02 ` Philippe Mathieu-Daudé
2024-04-23 7:16 ` Clément Chigot
0 siblings, 1 reply; 8+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-04-22 21:02 UTC (permalink / raw)
To: Richard Henderson, qemu-devel
Cc: peter.maydell, Clément Chigot, qemu-stable
On 22/4/24 19:09, Richard Henderson wrote:
> On 4/22/24 10:07, Richard Henderson wrote:
>> For cpus using PMSA, when the MPU is disabled, the default memory
>> type is Normal, Non-cachable.
>>
>> Fixes: 59754f85ed3 ("target/arm: Do memory type alignment check when
>> translation disabled")
>> Reported-by: Clément Chigot <chigot@adacore.com>
>> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
>> ---
>>
>> Since v9 will likely be tagged tomorrow without this fixed,
>> Cc: qemu-stable@nongnu.org
>>
>> ---
>> target/arm/tcg/hflags.c | 12 ++++++++++--
>> 1 file changed, 10 insertions(+), 2 deletions(-)
>>
>> diff --git a/target/arm/tcg/hflags.c b/target/arm/tcg/hflags.c
>> index 5da1b0fc1d..66de30b828 100644
>> --- a/target/arm/tcg/hflags.c
>> +++ b/target/arm/tcg/hflags.c
>> @@ -38,8 +38,16 @@ static bool aprofile_require_alignment(CPUARMState
>> *env, int el, uint64_t sctlr)
>> }
>> /*
>> - * If translation is disabled, then the default memory type is
>> - * Device(-nGnRnE) instead of Normal, which requires that alignment
>> + * With PMSA, when the MPU is disabled, all memory types in the
>> + * default map is Normal.
>> + */
>> + if (arm_feature(env, ARM_FEATURE_PMSA)) {
>> + return false;
>> + }
>> +
>> + /*
>> + * With VMSA, if translation is disabled, then the default memory
>> type
>> + * is Device(-nGnRnE) instead of Normal, which requires that
>> alignment
>> * be enforced. Since this affects all ram, it is most efficient
>> * to handle this during translation.
>> */
>
> Oh, I meant to add: since the armv7 manual has both VMSA and PMSA
> sections, and the language about default Device type and alignment
> traps, is in the VMSA section.
To the best of my knowledge,
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] target/arm: Restrict translation disabled alignment check to VMSA
2024-04-22 21:02 ` Philippe Mathieu-Daudé
@ 2024-04-23 7:16 ` Clément Chigot
0 siblings, 0 replies; 8+ messages in thread
From: Clément Chigot @ 2024-04-23 7:16 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: Richard Henderson, qemu-devel, peter.maydell, qemu-stable
On Mon, Apr 22, 2024 at 11:02 PM Philippe Mathieu-Daudé
<philmd@linaro.org> wrote:
>
> On 22/4/24 19:09, Richard Henderson wrote:
> > On 4/22/24 10:07, Richard Henderson wrote:
> >> For cpus using PMSA, when the MPU is disabled, the default memory
> >> type is Normal, Non-cachable.
> >>
> >> Fixes: 59754f85ed3 ("target/arm: Do memory type alignment check when
> >> translation disabled")
> >> Reported-by: Clément Chigot <chigot@adacore.com>
> >> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> >> ---
> >>
> >> Since v9 will likely be tagged tomorrow without this fixed,
> >> Cc: qemu-stable@nongnu.org
> >>
> >> ---
> >> target/arm/tcg/hflags.c | 12 ++++++++++--
> >> 1 file changed, 10 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/target/arm/tcg/hflags.c b/target/arm/tcg/hflags.c
> >> index 5da1b0fc1d..66de30b828 100644
> >> --- a/target/arm/tcg/hflags.c
> >> +++ b/target/arm/tcg/hflags.c
> >> @@ -38,8 +38,16 @@ static bool aprofile_require_alignment(CPUARMState
> >> *env, int el, uint64_t sctlr)
> >> }
> >> /*
> >> - * If translation is disabled, then the default memory type is
> >> - * Device(-nGnRnE) instead of Normal, which requires that alignment
> >> + * With PMSA, when the MPU is disabled, all memory types in the
> >> + * default map is Normal.
> >> + */
> >> + if (arm_feature(env, ARM_FEATURE_PMSA)) {
> >> + return false;
> >> + }
> >> +
> >> + /*
> >> + * With VMSA, if translation is disabled, then the default memory
> >> type
> >> + * is Device(-nGnRnE) instead of Normal, which requires that
> >> alignment
> >> * be enforced. Since this affects all ram, it is most efficient
> >> * to handle this during translation.
> >> */
> >
> > Oh, I meant to add: since the armv7 manual has both VMSA and PMSA
> > sections, and the language about default Device type and alignment
> > traps, is in the VMSA section.
>
> To the best of my knowledge,
> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Thanks for the patch.
Tested-by: Clément Chigot <chigot@adacore.com>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] target/arm: Restrict translation disabled alignment check to VMSA
2024-04-22 17:07 [PATCH] target/arm: Restrict translation disabled alignment check to VMSA Richard Henderson
2024-04-22 17:09 ` Richard Henderson
@ 2024-04-25 19:18 ` Peter Maydell
1 sibling, 0 replies; 8+ messages in thread
From: Peter Maydell @ 2024-04-25 19:18 UTC (permalink / raw)
To: Richard Henderson; +Cc: qemu-devel, Clément Chigot, qemu-stable
On Mon, 22 Apr 2024 at 18:07, Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> For cpus using PMSA, when the MPU is disabled, the default memory
> type is Normal, Non-cachable.
>
> Fixes: 59754f85ed3 ("target/arm: Do memory type alignment check when translation disabled")
> Reported-by: Clément Chigot <chigot@adacore.com>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
>
> Since v9 will likely be tagged tomorrow without this fixed,
> Cc: qemu-stable@nongnu.org
Applied to target-arm.next (with the cc:stable added in and a couple of
trivial tweaks to the comment/commit message), thanks.
-- PMM
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 0/5] tcg: Misc improvements
@ 2024-04-24 17:09 Richard Henderson
2024-04-24 17:09 ` [PATCH] target/arm: Restrict translation disabled alignment check to VMSA Richard Henderson
0 siblings, 1 reply; 8+ messages in thread
From: Richard Henderson @ 2024-04-24 17:09 UTC (permalink / raw)
To: qemu-devel
One patch to allow two output operands from gvec expansion,
to be used by target/arm for updating QC.
One patch to record the result of the generic breakpoint
search so target translators do not need to repeat it.
Three small optimization patches.
r~
Richard Henderson (5):
tcg: Add write_aofs to GVecGen3i
tcg/i386: Simplify immediate 8-bit logical vector shifts
tcg/i386: Optimize setcond of TST{EQ,NE} with 0xffffffff
tcg/optimize: Optimize setcond with zmask
accel/tcg: Introduce CF_BP_PAGE
include/exec/translation-block.h | 1 +
include/tcg/tcg-op-gvec-common.h | 2 +
accel/tcg/cpu-exec.c | 2 +-
tcg/optimize.c | 110 +++++++++++++++++++++++++++++++
tcg/tcg-op-gvec.c | 30 ++++++---
tcg/i386/tcg-target.c.inc | 78 ++++++++--------------
6 files changed, 165 insertions(+), 58 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH] target/arm: Restrict translation disabled alignment check to VMSA
2024-04-24 17:09 [PATCH 0/5] tcg: Misc improvements Richard Henderson
@ 2024-04-24 17:09 ` Richard Henderson
2024-05-03 14:58 ` Philippe Mathieu-Daudé
0 siblings, 1 reply; 8+ messages in thread
From: Richard Henderson @ 2024-04-24 17:09 UTC (permalink / raw)
To: qemu-devel; +Cc: Clément Chigot, qemu-stable
For cpus using PMSA, when the MPU is disabled, the default memory
type is Normal, Non-cachable.
Fixes: 59754f85ed3 ("target/arm: Do memory type alignment check when translation disabled")
Reported-by: Clément Chigot <chigot@adacore.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
Since v9 will likely be tagged tomorrow without this fixed,
Cc: qemu-stable@nongnu.org
---
target/arm/tcg/hflags.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/target/arm/tcg/hflags.c b/target/arm/tcg/hflags.c
index 5da1b0fc1d..66de30b828 100644
--- a/target/arm/tcg/hflags.c
+++ b/target/arm/tcg/hflags.c
@@ -38,8 +38,16 @@ static bool aprofile_require_alignment(CPUARMState *env, int el, uint64_t sctlr)
}
/*
- * If translation is disabled, then the default memory type is
- * Device(-nGnRnE) instead of Normal, which requires that alignment
+ * With PMSA, when the MPU is disabled, all memory types in the
+ * default map is Normal.
+ */
+ if (arm_feature(env, ARM_FEATURE_PMSA)) {
+ return false;
+ }
+
+ /*
+ * With VMSA, if translation is disabled, then the default memory type
+ * is Device(-nGnRnE) instead of Normal, which requires that alignment
* be enforced. Since this affects all ram, it is most efficient
* to handle this during translation.
*/
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH] target/arm: Restrict translation disabled alignment check to VMSA
2024-04-24 17:09 ` [PATCH] target/arm: Restrict translation disabled alignment check to VMSA Richard Henderson
@ 2024-05-03 14:58 ` Philippe Mathieu-Daudé
2024-05-03 14:59 ` Richard Henderson
0 siblings, 1 reply; 8+ messages in thread
From: Philippe Mathieu-Daudé @ 2024-05-03 14:58 UTC (permalink / raw)
To: Richard Henderson, qemu-devel; +Cc: Clément Chigot, qemu-stable
On 24/4/24 19:09, Richard Henderson wrote:
> For cpus using PMSA, when the MPU is disabled, the default memory
> type is Normal, Non-cachable.
>
> Fixes: 59754f85ed3 ("target/arm: Do memory type alignment check when translation disabled")
> Reported-by: Clément Chigot <chigot@adacore.com>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
>
> Since v9 will likely be tagged tomorrow without this fixed,
> Cc: qemu-stable@nongnu.org
>
> ---
> target/arm/tcg/hflags.c | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/target/arm/tcg/hflags.c b/target/arm/tcg/hflags.c
> index 5da1b0fc1d..66de30b828 100644
> --- a/target/arm/tcg/hflags.c
> +++ b/target/arm/tcg/hflags.c
> @@ -38,8 +38,16 @@ static bool aprofile_require_alignment(CPUARMState *env, int el, uint64_t sctlr)
> }
>
> /*
> - * If translation is disabled, then the default memory type is
> - * Device(-nGnRnE) instead of Normal, which requires that alignment
> + * With PMSA, when the MPU is disabled, all memory types in the
> + * default map is Normal.
> + */
> + if (arm_feature(env, ARM_FEATURE_PMSA)) {
> + return false;
> + }
> +
> + /*
> + * With VMSA, if translation is disabled, then the default memory type
> + * is Device(-nGnRnE) instead of Normal, which requires that alignment
> * be enforced. Since this affects all ram, it is most efficient
> * to handle this during translation.
> */
This one is in target-arm.next:
https://lore.kernel.org/qemu-devel/CAFEAcA98UrBLsAXKzLSkUnC2G_RZd56veqUkSGSttoADfkEKGA@mail.gmail.com/
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] target/arm: Restrict translation disabled alignment check to VMSA
2024-05-03 14:58 ` Philippe Mathieu-Daudé
@ 2024-05-03 14:59 ` Richard Henderson
0 siblings, 0 replies; 8+ messages in thread
From: Richard Henderson @ 2024-05-03 14:59 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel; +Cc: Clément Chigot, qemu-stable
On 5/3/24 07:58, Philippe Mathieu-Daudé wrote:
> On 24/4/24 19:09, Richard Henderson wrote:
>> For cpus using PMSA, when the MPU is disabled, the default memory
>> type is Normal, Non-cachable.
>>
>> Fixes: 59754f85ed3 ("target/arm: Do memory type alignment check when translation disabled")
>> Reported-by: Clément Chigot <chigot@adacore.com>
>> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
>> ---
>>
>> Since v9 will likely be tagged tomorrow without this fixed,
>> Cc: qemu-stable@nongnu.org
>>
>> ---
>> target/arm/tcg/hflags.c | 12 ++++++++++--
>> 1 file changed, 10 insertions(+), 2 deletions(-)
>>
>> diff --git a/target/arm/tcg/hflags.c b/target/arm/tcg/hflags.c
>> index 5da1b0fc1d..66de30b828 100644
>> --- a/target/arm/tcg/hflags.c
>> +++ b/target/arm/tcg/hflags.c
>> @@ -38,8 +38,16 @@ static bool aprofile_require_alignment(CPUARMState *env, int el,
>> uint64_t sctlr)
>> }
>> /*
>> - * If translation is disabled, then the default memory type is
>> - * Device(-nGnRnE) instead of Normal, which requires that alignment
>> + * With PMSA, when the MPU is disabled, all memory types in the
>> + * default map is Normal.
>> + */
>> + if (arm_feature(env, ARM_FEATURE_PMSA)) {
>> + return false;
>> + }
>> +
>> + /*
>> + * With VMSA, if translation is disabled, then the default memory type
>> + * is Device(-nGnRnE) instead of Normal, which requires that alignment
>> * be enforced. Since this affects all ram, it is most efficient
>> * to handle this during translation.
>> */
>
> This one is in target-arm.next:
> https://lore.kernel.org/qemu-devel/CAFEAcA98UrBLsAXKzLSkUnC2G_RZd56veqUkSGSttoADfkEKGA@mail.gmail.com/
Yes, that was a stray patch that accidentally got re-posted with this series.
r~
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2024-05-03 14:59 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-22 17:07 [PATCH] target/arm: Restrict translation disabled alignment check to VMSA Richard Henderson
2024-04-22 17:09 ` Richard Henderson
2024-04-22 21:02 ` Philippe Mathieu-Daudé
2024-04-23 7:16 ` Clément Chigot
2024-04-25 19:18 ` Peter Maydell
-- strict thread matches above, loose matches on Subject: below --
2024-04-24 17:09 [PATCH 0/5] tcg: Misc improvements Richard Henderson
2024-04-24 17:09 ` [PATCH] target/arm: Restrict translation disabled alignment check to VMSA Richard Henderson
2024-05-03 14:58 ` Philippe Mathieu-Daudé
2024-05-03 14:59 ` Richard Henderson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).