qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [BUG] nanoMIPS support problem related to extract2 support for i386 TCG target
@ 2019-07-12 18:09 Aleksandar Markovic
  2019-07-12 18:19 ` Aleksandar Markovic
  2019-07-13  7:21 ` Alex Bennée
  0 siblings, 2 replies; 5+ messages in thread
From: Aleksandar Markovic @ 2019-07-12 18:09 UTC (permalink / raw)
  To: Richard Henderson, QEMU Developers, Peter Maydell

Hello, Richard, Peter, and others.

As a part of activities before 4.1 release, I tested nanoMIPS support
in QEMU (which was officially fully integrated in 4.0, is currently
limited to system mode only, and was tested in a similar fashion right
prior to 4.0).

This support appears to be broken now. Following command line works in
4.0, but results in kernel panic for the current tip of the tree:

~/Build/qemu-test-revert-c6fb8c0cf704/mipsel-softmmu/qemu-system-mipsel
-cpu I7200 -kernel generic_nano32r6el_page4k -M malta -serial stdio -m
1G -hda nanomips32r6_le_sf_2017.05-03-59-gf5595d6.ext4 -append
"mem=256m@0x0 rw console=ttyS0 vga=cirrus vesa=0x111 root=/dev/sda"

(kernel and rootfs image files used in this commend line can be
downloaded from the locations mentioned in our user guide)

The quick bisect points to the commit:

commit c6fb8c0cf704c4a1a48c3e99e995ad4c58150dab
Author: Richard Henderson <richard.henderson@linaro.org>
Date:   Mon Feb 25 11:42:35 2019 -0800

    tcg/i386: Support INDEX_op_extract2_{i32,i64}

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

Please advise on further actions.

Yours,
Aleksandar


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [BUG] nanoMIPS support problem related to extract2 support for i386 TCG target
  2019-07-12 18:09 [Qemu-devel] [BUG] nanoMIPS support problem related to extract2 support for i386 TCG target Aleksandar Markovic
@ 2019-07-12 18:19 ` Aleksandar Markovic
  2019-07-12 19:07   ` Aleksandar Markovic
  2019-07-13  7:21 ` Alex Bennée
  1 sibling, 1 reply; 5+ messages in thread
From: Aleksandar Markovic @ 2019-07-12 18:19 UTC (permalink / raw)
  To: Richard Henderson, QEMU Developers, Peter Maydell

On Fri, Jul 12, 2019 at 8:09 PM Aleksandar Markovic
<aleksandar.m.mail@gmail.com> wrote:
>
> Hello, Richard, Peter, and others.
>
> As a part of activities before 4.1 release, I tested nanoMIPS support
> in QEMU (which was officially fully integrated in 4.0, is currently
> limited to system mode only, and was tested in a similar fashion right
> prior to 4.0).
>
> This support appears to be broken now. Following command line works in
> 4.0, but results in kernel panic for the current tip of the tree:
>
> ~/Build/qemu-test-revert-c6fb8c0cf704/mipsel-softmmu/qemu-system-mipsel
> -cpu I7200 -kernel generic_nano32r6el_page4k -M malta -serial stdio -m
> 1G -hda nanomips32r6_le_sf_2017.05-03-59-gf5595d6.ext4 -append
> "mem=256m@0x0 rw console=ttyS0 vga=cirrus vesa=0x111 root=/dev/sda"
>
> (kernel and rootfs image files used in this commend line can be
> downloaded from the locations mentioned in our user guide)
>
> The quick bisect points to the commit:
>
> commit c6fb8c0cf704c4a1a48c3e99e995ad4c58150dab
> Author: Richard Henderson <richard.henderson@linaro.org>
> Date:   Mon Feb 25 11:42:35 2019 -0800
>
>     tcg/i386: Support INDEX_op_extract2_{i32,i64}
>
>     Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
>
> Please advise on further actions.
>

Just to add a data point:

If the following change is applied:

diff --git a/tcg/i386/tcg-target.h b/tcg/i386/tcg-target.h
index 928e8b8..b6a4cf2 100644
--- a/tcg/i386/tcg-target.h
+++ b/tcg/i386/tcg-target.h
@@ -124,7 +124,7 @@ extern bool have_avx2;
 #define TCG_TARGET_HAS_deposit_i32      1
 #define TCG_TARGET_HAS_extract_i32      1
 #define TCG_TARGET_HAS_sextract_i32     1
-#define TCG_TARGET_HAS_extract2_i32     1
+#define TCG_TARGET_HAS_extract2_i32     0
 #define TCG_TARGET_HAS_movcond_i32      1
 #define TCG_TARGET_HAS_add2_i32         1
 #define TCG_TARGET_HAS_sub2_i32         1
@@ -163,7 +163,7 @@ extern bool have_avx2;
 #define TCG_TARGET_HAS_deposit_i64      1
 #define TCG_TARGET_HAS_extract_i64      1
 #define TCG_TARGET_HAS_sextract_i64     0
-#define TCG_TARGET_HAS_extract2_i64     1
+#define TCG_TARGET_HAS_extract2_i64     0
 #define TCG_TARGET_HAS_movcond_i64      1
 #define TCG_TARGET_HAS_add2_i64         1
 #define TCG_TARGET_HAS_sub2_i64         1

... the problem disappears.


> Yours,
> Aleksandar


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [BUG] nanoMIPS support problem related to extract2 support for i386 TCG target
  2019-07-12 18:19 ` Aleksandar Markovic
@ 2019-07-12 19:07   ` Aleksandar Markovic
  0 siblings, 0 replies; 5+ messages in thread
From: Aleksandar Markovic @ 2019-07-12 19:07 UTC (permalink / raw)
  To: Richard Henderson, QEMU Developers, Peter Maydell

On Fri, Jul 12, 2019 at 8:19 PM Aleksandar Markovic
<aleksandar.m.mail@gmail.com> wrote:
>
> On Fri, Jul 12, 2019 at 8:09 PM Aleksandar Markovic
> <aleksandar.m.mail@gmail.com> wrote:
> >
> > Hello, Richard, Peter, and others.
> >
> > As a part of activities before 4.1 release, I tested nanoMIPS support
> > in QEMU (which was officially fully integrated in 4.0, is currently
> > limited to system mode only, and was tested in a similar fashion right
> > prior to 4.0).
> >
> > This support appears to be broken now. Following command line works in
> > 4.0, but results in kernel panic for the current tip of the tree:
> >
> > ~/Build/qemu-test-revert-c6fb8c0cf704/mipsel-softmmu/qemu-system-mipsel
> > -cpu I7200 -kernel generic_nano32r6el_page4k -M malta -serial stdio -m
> > 1G -hda nanomips32r6_le_sf_2017.05-03-59-gf5595d6.ext4 -append
> > "mem=256m@0x0 rw console=ttyS0 vga=cirrus vesa=0x111 root=/dev/sda"
> >
> > (kernel and rootfs image files used in this commend line can be
> > downloaded from the locations mentioned in our user guide)
> >
> > The quick bisect points to the commit:
> >
> > commit c6fb8c0cf704c4a1a48c3e99e995ad4c58150dab
> > Author: Richard Henderson <richard.henderson@linaro.org>
> > Date:   Mon Feb 25 11:42:35 2019 -0800
> >
> >     tcg/i386: Support INDEX_op_extract2_{i32,i64}
> >
> >     Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> >
> > Please advise on further actions.
> >
>
> Just to add a data point:
>
> If the following change is applied:
>
> diff --git a/tcg/i386/tcg-target.h b/tcg/i386/tcg-target.h
> index 928e8b8..b6a4cf2 100644
> --- a/tcg/i386/tcg-target.h
> +++ b/tcg/i386/tcg-target.h
> @@ -124,7 +124,7 @@ extern bool have_avx2;
>  #define TCG_TARGET_HAS_deposit_i32      1
>  #define TCG_TARGET_HAS_extract_i32      1
>  #define TCG_TARGET_HAS_sextract_i32     1
> -#define TCG_TARGET_HAS_extract2_i32     1
> +#define TCG_TARGET_HAS_extract2_i32     0
>  #define TCG_TARGET_HAS_movcond_i32      1
>  #define TCG_TARGET_HAS_add2_i32         1
>  #define TCG_TARGET_HAS_sub2_i32         1
> @@ -163,7 +163,7 @@ extern bool have_avx2;
>  #define TCG_TARGET_HAS_deposit_i64      1
>  #define TCG_TARGET_HAS_extract_i64      1
>  #define TCG_TARGET_HAS_sextract_i64     0
> -#define TCG_TARGET_HAS_extract2_i64     1
> +#define TCG_TARGET_HAS_extract2_i64     0
>  #define TCG_TARGET_HAS_movcond_i64      1
>  #define TCG_TARGET_HAS_add2_i64         1
>  #define TCG_TARGET_HAS_sub2_i64         1
>
> ... the problem disappears.
>

It looks the problem is in this code segment in of tcg_gen_deposit_i32():

        if (ofs == 0) {
            tcg_gen_extract2_i32(ret, arg1, arg2, len);
            tcg_gen_rotli_i32(ret, ret, len);
            goto done;
        }

)

If that code segment is deleted altogether (which effectively forces
usage of "fallback" part of tcg_gen_deposit_i32()), the problem also
vanishes (without changes from my previous mail).

>
> > Yours,
> > Aleksandar


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [BUG] nanoMIPS support problem related to extract2 support for i386 TCG target
  2019-07-12 18:09 [Qemu-devel] [BUG] nanoMIPS support problem related to extract2 support for i386 TCG target Aleksandar Markovic
  2019-07-12 18:19 ` Aleksandar Markovic
@ 2019-07-13  7:21 ` Alex Bennée
  2019-07-15 19:48   ` Aleksandar Markovic
  1 sibling, 1 reply; 5+ messages in thread
From: Alex Bennée @ 2019-07-13  7:21 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Richard Henderson


Aleksandar Markovic <aleksandar.m.mail@gmail.com> writes:

> Hello, Richard, Peter, and others.
>
> As a part of activities before 4.1 release, I tested nanoMIPS support
> in QEMU (which was officially fully integrated in 4.0, is currently
> limited to system mode only, and was tested in a similar fashion right
> prior to 4.0).
>
> This support appears to be broken now. Following command line works in
> 4.0, but results in kernel panic for the current tip of the tree:
>
> ~/Build/qemu-test-revert-c6fb8c0cf704/mipsel-softmmu/qemu-system-mipsel
> -cpu I7200 -kernel generic_nano32r6el_page4k -M malta -serial stdio -m
> 1G -hda nanomips32r6_le_sf_2017.05-03-59-gf5595d6.ext4 -append
> "mem=256m@0x0 rw console=ttyS0 vga=cirrus vesa=0x111 root=/dev/sda"
>
> (kernel and rootfs image files used in this commend line can be
> downloaded from the locations mentioned in our user guide)
>
> The quick bisect points to the commit:
>
> commit c6fb8c0cf704c4a1a48c3e99e995ad4c58150dab
> Author: Richard Henderson <richard.henderson@linaro.org>
> Date:   Mon Feb 25 11:42:35 2019 -0800
>
>     tcg/i386: Support INDEX_op_extract2_{i32,i64}
>
>     Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
>
> Please advise on further actions.

Please see the fix:

  Subject: [PATCH for-4.1] tcg: Fix constant folding of INDEX_op_extract2_i32
  Date: Tue,  9 Jul 2019 14:19:00 +0200
  Message-Id: <20190709121900.25644-1-richard.henderson@linaro.org>

>
> Yours,
> Aleksandar


--
Alex Bennée


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [BUG] nanoMIPS support problem related to extract2 support for i386 TCG target
  2019-07-13  7:21 ` Alex Bennée
@ 2019-07-15 19:48   ` Aleksandar Markovic
  0 siblings, 0 replies; 5+ messages in thread
From: Aleksandar Markovic @ 2019-07-15 19:48 UTC (permalink / raw)
  To: Alex Bennée; +Cc: Peter Maydell, Richard Henderson, QEMU Developers

On Sat, Jul 13, 2019 at 9:21 AM Alex Bennée <alex.bennee@linaro.org> wrote:
>
> Please see the fix:
>
>   Subject: [PATCH for-4.1] tcg: Fix constant folding of INDEX_op_extract2_i32
>   Date: Tue,  9 Jul 2019 14:19:00 +0200
>   Message-Id: <20190709121900.25644-1-richard.henderson@linaro.org>
>

Thanks, this fixed the behavior.

Sincerely,
Aleksandar

>
> >
> > Yours,
> > Aleksandar
>
>
> --
> Alex Bennée
>


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-07-15 19:48 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-07-12 18:09 [Qemu-devel] [BUG] nanoMIPS support problem related to extract2 support for i386 TCG target Aleksandar Markovic
2019-07-12 18:19 ` Aleksandar Markovic
2019-07-12 19:07   ` Aleksandar Markovic
2019-07-13  7:21 ` Alex Bennée
2019-07-15 19:48   ` Aleksandar Markovic

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).