[PATCH 10/23] plugins/lockstep: make mixed-mode safe

Alex Bennée posted 23 patches 6 months ago
There is a newer version of this series
[PATCH 10/23] plugins/lockstep: make mixed-mode safe
Posted by Alex Bennée 6 months ago
The ExecState is shared across the socket and if we want to compare
say 64 bit and 32 bit binaries we need the two to use the same sizes
for things.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 contrib/plugins/lockstep.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/contrib/plugins/lockstep.c b/contrib/plugins/lockstep.c
index 111ec3fa27..761bcdf363 100644
--- a/contrib/plugins/lockstep.c
+++ b/contrib/plugins/lockstep.c
@@ -57,7 +57,7 @@ typedef struct {
 /* The execution state we compare */
 typedef struct {
     uint64_t pc;
-    unsigned long insn_count;
+    uint64_t insn_count;
 } ExecState;
 
 typedef struct {
@@ -148,7 +148,7 @@ static void report_divergance(ExecState *us, ExecState *them)
 
         g_string_printf(out,
                         "Δ insn_count @ 0x%016" PRIx64
-                        " (%ld) vs 0x%016" PRIx64 " (%ld)\n",
+                        " (%"PRId64") vs 0x%016" PRIx64 " (%"PRId64")\n",
                         us->pc, us->insn_count, them->pc, them->insn_count);
 
         for (entry = log, i = 0;
-- 
2.39.2


Re: [PATCH 10/23] plugins/lockstep: make mixed-mode safe
Posted by Richard Henderson 6 months ago
On 6/28/24 05:42, Alex Bennée wrote:
> The ExecState is shared across the socket and if we want to compare
> say 64 bit and 32 bit binaries we need the two to use the same sizes
> for things.
> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>   contrib/plugins/lockstep.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/contrib/plugins/lockstep.c b/contrib/plugins/lockstep.c
> index 111ec3fa27..761bcdf363 100644
> --- a/contrib/plugins/lockstep.c
> +++ b/contrib/plugins/lockstep.c
> @@ -57,7 +57,7 @@ typedef struct {
>   /* The execution state we compare */
>   typedef struct {
>       uint64_t pc;
> -    unsigned long insn_count;
> +    uint64_t insn_count;
>   } ExecState;

Or long long, but I suppose this is more explicit about the width.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


r~

>   
>   typedef struct {
> @@ -148,7 +148,7 @@ static void report_divergance(ExecState *us, ExecState *them)
>   
>           g_string_printf(out,
>                           "Δ insn_count @ 0x%016" PRIx64
> -                        " (%ld) vs 0x%016" PRIx64 " (%ld)\n",
> +                        " (%"PRId64") vs 0x%016" PRIx64 " (%"PRId64")\n",
>                           us->pc, us->insn_count, them->pc, them->insn_count);
>   
>           for (entry = log, i = 0;