Message ID | 20171206093050.25308-1-alex.bennee@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | [RFC] target/sh4/translate.c: fix TCG leak during gusa sequence | expand |
Hi Alex! Wow, thanks! I wanted to run your suggested test today as I ran out of time yesterday and now you already fixed it :-). Thanks a lot! Adrian > On Dec 6, 2017, at 10:30 AM, Alex Bennée <alex.bennee@linaro.org> wrote: > > This fixes bug #1735384 while running java under qemu-sh4. When debug > was enabled it showed a problem with TCG temps. Once fixed I was able > to run java -version normally. > > Reported-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> > Suggested-by: Richard Henderson <richard.henderson@linaro.org> > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > --- > target/sh4/translate.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/target/sh4/translate.c b/target/sh4/translate.c > index 703020fe87..b4b5c822d0 100644 > --- a/target/sh4/translate.c > +++ b/target/sh4/translate.c > @@ -2189,7 +2189,7 @@ static int decode_gusa(DisasContext *ctx, CPUSH4State *env, int *pmax_insns) > } > > /* If op_src is not a valid register, then op_arg was a constant. */ > - if (op_src < 0) { > + if (op_src < 0 && !TCGV_IS_UNUSED(op_arg)) { > tcg_temp_free_i32(op_arg); > } > > -- > 2.15.1 > > -- > You received this bug notification because you are subscribed to the bug > report. > https://bugs.launchpad.net/bugs/1735384 > > Title: > OpenJDK JVM segfaults on qemu-sh4 (regression) > > Status in QEMU: > New > > Bug description: > Some of the recent changes introduced a regression which makes the > OpenJDK JVM crash on qemu-sh4: > > (sid-sh4-sbuild)root@nofan:/# java -version > qemu: uncaught target signal 11 (Segmentation fault) - core dumped > Segmentation fault > (sid-sh4-sbuild)root@nofan:/# > > An older version works fine: > > (sid-sh4-sbuild)root@nofan:/# java -version > openjdk version "9.0.1" > OpenJDK Runtime Environment (build 9.0.1+11-Debian-1) > OpenJDK Zero VM (build 9.0.1+11-Debian-1, interpreted mode) > (sid-sh4-sbuild)root@nofan:/# > > Haven't had time for bisecting this yet. > > Adrian > > To manage notifications about this bug go to: > https://bugs.launchpad.net/qemu/+bug/1735384/+subscriptions -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1735384 Title: OpenJDK JVM segfaults on qemu-sh4 (regression) Status in QEMU: New Bug description: Some of the recent changes introduced a regression which makes the OpenJDK JVM crash on qemu-sh4: (sid-sh4-sbuild)root@nofan:/# java -version qemu: uncaught target signal 11 (Segmentation fault) - core dumped Segmentation fault (sid-sh4-sbuild)root@nofan:/# An older version works fine: (sid-sh4-sbuild)root@nofan:/# java -version openjdk version "9.0.1" OpenJDK Runtime Environment (build 9.0.1+11-Debian-1) OpenJDK Zero VM (build 9.0.1+11-Debian-1, interpreted mode) (sid-sh4-sbuild)root@nofan:/# Haven't had time for bisecting this yet. Adrian To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1735384/+subscriptions
On 12/06/2017 10:30 AM, Alex Bennée wrote: > This fixes bug #1735384 while running java under qemu-sh4. When debug > was enabled it showed a problem with TCG temps. Once fixed I was able > to run java -version normally. > > Reported-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> > Suggested-by: Richard Henderson <richard.henderson@linaro.org> > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> I can confirm that this fixes the issue for me, too. So, just in case: Tested-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer - glaubitz@debian.org `. `' Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913 -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1735384 Title: OpenJDK JVM segfaults on qemu-sh4 (regression) Status in QEMU: New Bug description: Some of the recent changes introduced a regression which makes the OpenJDK JVM crash on qemu-sh4: (sid-sh4-sbuild)root@nofan:/# java -version qemu: uncaught target signal 11 (Segmentation fault) - core dumped Segmentation fault (sid-sh4-sbuild)root@nofan:/# An older version works fine: (sid-sh4-sbuild)root@nofan:/# java -version openjdk version "9.0.1" OpenJDK Runtime Environment (build 9.0.1+11-Debian-1) OpenJDK Zero VM (build 9.0.1+11-Debian-1, interpreted mode) (sid-sh4-sbuild)root@nofan:/# Haven't had time for bisecting this yet. Adrian To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1735384/+subscriptions
John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> writes: > Hi Alex! > > Wow, thanks! I wanted to run your suggested test today as I ran out of > time yesterday and now you already fixed it :-). Can you confirm you've tested it and your happy it works? > > Thanks a lot! > > Adrian > >> On Dec 6, 2017, at 10:30 AM, Alex Bennée <alex.bennee@linaro.org> wrote: >> >> This fixes bug #1735384 while running java under qemu-sh4. When debug >> was enabled it showed a problem with TCG temps. Once fixed I was able >> to run java -version normally. >> >> Reported-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> >> Suggested-by: Richard Henderson <richard.henderson@linaro.org> >> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> >> --- >> target/sh4/translate.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/target/sh4/translate.c b/target/sh4/translate.c >> index 703020fe87..b4b5c822d0 100644 >> --- a/target/sh4/translate.c >> +++ b/target/sh4/translate.c >> @@ -2189,7 +2189,7 @@ static int decode_gusa(DisasContext *ctx, CPUSH4State *env, int *pmax_insns) >> } >> >> /* If op_src is not a valid register, then op_arg was a constant. */ >> - if (op_src < 0) { >> + if (op_src < 0 && !TCGV_IS_UNUSED(op_arg)) { >> tcg_temp_free_i32(op_arg); >> } >> >> -- >> 2.15.1 >> >> -- >> You received this bug notification because you are subscribed to the bug >> report. >> https://bugs.launchpad.net/bugs/1735384 >> >> Title: >> OpenJDK JVM segfaults on qemu-sh4 (regression) >> >> Status in QEMU: >> New >> >> Bug description: >> Some of the recent changes introduced a regression which makes the >> OpenJDK JVM crash on qemu-sh4: >> >> (sid-sh4-sbuild)root@nofan:/# java -version >> qemu: uncaught target signal 11 (Segmentation fault) - core dumped >> Segmentation fault >> (sid-sh4-sbuild)root@nofan:/# >> >> An older version works fine: >> >> (sid-sh4-sbuild)root@nofan:/# java -version >> openjdk version "9.0.1" >> OpenJDK Runtime Environment (build 9.0.1+11-Debian-1) >> OpenJDK Zero VM (build 9.0.1+11-Debian-1, interpreted mode) >> (sid-sh4-sbuild)root@nofan:/# >> >> Haven't had time for bisecting this yet. >> >> Adrian >> >> To manage notifications about this bug go to: >> https://bugs.launchpad.net/qemu/+bug/1735384/+subscriptions -- Alex Bennée
On 12/06/2017 11:52 AM, Alex Bennée wrote: >> Wow, thanks! I wanted to run your suggested test today as I ran out of >> time yesterday and now you already fixed it :-). > > Can you confirm you've tested it and your happy it works? I already confirmed it, but in case my previous mail got lost: Tested-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> And, yes, I'm happy it works :-). Can now switch back to using the latest qemu snapshot for building packages for Debian sh4. Adrian -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer - glaubitz@debian.org `. `' Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913 -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1735384 Title: OpenJDK JVM segfaults on qemu-sh4 (regression) Status in QEMU: New Bug description: Some of the recent changes introduced a regression which makes the OpenJDK JVM crash on qemu-sh4: (sid-sh4-sbuild)root@nofan:/# java -version qemu: uncaught target signal 11 (Segmentation fault) - core dumped Segmentation fault (sid-sh4-sbuild)root@nofan:/# An older version works fine: (sid-sh4-sbuild)root@nofan:/# java -version openjdk version "9.0.1" OpenJDK Runtime Environment (build 9.0.1+11-Debian-1) OpenJDK Zero VM (build 9.0.1+11-Debian-1, interpreted mode) (sid-sh4-sbuild)root@nofan:/# Haven't had time for bisecting this yet. Adrian To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1735384/+subscriptions
On 12/06/2017 01:30 AM, Alex Bennée wrote: > This fixes bug #1735384 while running java under qemu-sh4. When debug > was enabled it showed a problem with TCG temps. Once fixed I was able > to run java -version normally. > > Reported-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> > Suggested-by: Richard Henderson <richard.henderson@linaro.org> > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > --- Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Cc: stable, as the bug is present in 2.10 too. r~ > target/sh4/translate.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/target/sh4/translate.c b/target/sh4/translate.c > index 703020fe87..b4b5c822d0 100644 > --- a/target/sh4/translate.c > +++ b/target/sh4/translate.c > @@ -2189,7 +2189,7 @@ static int decode_gusa(DisasContext *ctx, CPUSH4State *env, int *pmax_insns) > } > > /* If op_src is not a valid register, then op_arg was a constant. */ > - if (op_src < 0) { > + if (op_src < 0 && !TCGV_IS_UNUSED(op_arg)) { > tcg_temp_free_i32(op_arg); > } > >
On 2017-12-06 09:30, Alex Bennée wrote: > This fixes bug #1735384 while running java under qemu-sh4. When debug > was enabled it showed a problem with TCG temps. Once fixed I was able > to run java -version normally. > > Reported-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> > Suggested-by: Richard Henderson <richard.henderson@linaro.org> > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > --- > target/sh4/translate.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/target/sh4/translate.c b/target/sh4/translate.c > index 703020fe87..b4b5c822d0 100644 > --- a/target/sh4/translate.c > +++ b/target/sh4/translate.c > @@ -2189,7 +2189,7 @@ static int decode_gusa(DisasContext *ctx, CPUSH4State *env, int *pmax_insns) > } > > /* If op_src is not a valid register, then op_arg was a constant. */ > - if (op_src < 0) { > + if (op_src < 0 && !TCGV_IS_UNUSED(op_arg)) { > tcg_temp_free_i32(op_arg); > } I guess this happens when trying to match the exchange pattern, so this looks correct to me. Reviewed-by: Aurelien Jarno <aurelien@aurel32.net> -- Aurelien Jarno GPG: 4096R/1DDD8C9B aurelien@aurel32.net http://www.aurel32.net
diff --git a/target/sh4/translate.c b/target/sh4/translate.c index 703020fe87..b4b5c822d0 100644 --- a/target/sh4/translate.c +++ b/target/sh4/translate.c @@ -2189,7 +2189,7 @@ static int decode_gusa(DisasContext *ctx, CPUSH4State *env, int *pmax_insns) } /* If op_src is not a valid register, then op_arg was a constant. */ - if (op_src < 0) { + if (op_src < 0 && !TCGV_IS_UNUSED(op_arg)) { tcg_temp_free_i32(op_arg); }
This fixes bug #1735384 while running java under qemu-sh4. When debug was enabled it showed a problem with TCG temps. Once fixed I was able to run java -version normally. Reported-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> Suggested-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> --- target/sh4/translate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.15.1