diff mbox

[PULL,v5,00/18] tcg queued patches

Message ID 8c5b8c58-c66f-90cf-b74d-d1bea58a9b3b@twiddle.net
State New
Headers show

Commit Message

Richard Henderson Sept. 15, 2016, 9:01 p.m. UTC
On 09/15/2016 08:53 AM, Peter Maydell wrote:
> On 14 September 2016 at 17:19, Richard Henderson <rth@twiddle.net> wrote:
>> Changes since last:
>>   * Some cleanup in the size+alignment patch
>>   * Bug fixed in GETPC patch causing "make check" failure.
>>     The pc adjustment moved to the (really) very last place,
>>     where it's now applied during TARGET_HAS_PRECISE_SMC.
>>   * tcg/mips improved for r6
>>   * tcg/aarch64 improved for dmb ishld
>>   * target-arm/aarch64 emits finer grained barriers for dmb
>>
>> Retested on i686, x64, ppc64, ppc64le, arm, aarch64, s390x.
>>
>>
>> r~
>>
>>
>> The following changes since commit 507e4ddc3abf67391bcbc9624fd60b969c159b78:
>>
>>   Merge remote-tracking branch 'remotes/mjt/tags/trivial-patches-fetch' into staging (2016-09-13 17:55:35 +0100)
>>
>> are available in the git repository at:
>>
>>   git://github.com/rth7680/qemu.git tags/pull-tcg-20160914
>>
>> for you to fetch changes up to ff95d7e000739149237d201037d5918439e69626:
>>
>>   tcg: Optimize fence instructions (2016-09-13 19:15:09 -0700)
>>
>> ----------------------------------------------------------------
>> tcg queued patches
>
> I see test failures on 64-bit ARM host and 32-bit sparc guest:
>
> QTEST_QEMU_BINARY=sparc-softmmu/qemu-system-sparc
> QTEST_QEMU_IMG=qemu-img MALLOC_PERTURB_=${MALLOC_PERTURB_:-$((RANDOM %
> 255 + 1))} gtester -k --verbose -m=quick tests/prom-env-test
> tests/device-introspect-test tests/qom-test
> TEST: tests/prom-env-test... (pid=27276)
>   /sparc/prom-env/SPARCbook:
> Broken pipe
> FAIL
> GTester: last random seed: R02Sfcf6adec9d89943949516817d43161b3
> (pid=27282)
>   /sparc/prom-env/Voyager:
> Broken pipe
> FAIL
> GTester: last random seed: R02Sc2b1065bac813ab363f8b2249a2d88f6
> (pid=27287)
>   /sparc/prom-env/SS-20:
> Broken pipe
> FAIL
> GTester: last random seed: R02S5912644980758b061ac0f744063a69e9
> (pid=27292)
>
> Happened both in a test and in a rerun, so I don't *think* this is just an
> unhelpful timeout...

No, not just a timeout, like I imagined.  It's a weird sign-extension problem, 
fixed with the following.


r~
diff mbox

Patch

diff --git a/tcg/aarch64/tcg-target.inc.c b/tcg/aarch64/tcg-target.inc.c
index 388cd93..1939d35 100644
--- a/tcg/aarch64/tcg-target.inc.c
+++ b/tcg/aarch64/tcg-target.inc.c
@@ -1115,7 +1115,7 @@  static void tcg_out_tlb_read
                       TCG_REG_X3, addr_reg, s_mask - a_mask);
          x3 = TCG_REG_X3;
      }
-    tlb_mask = TARGET_PAGE_MASK | a_mask;
+    tlb_mask = (uint64_t)TARGET_PAGE_MASK | a_mask;

      /* Extract the TLB index from the address into X0.
         X0<CPU_TLB_BITS:0> =