1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
Regression in 7.2.0rc3: No snow by efi firmware in advent calendar 2020, door 15 anymore
Description of problem:
Advent calendar 2020, door 15 is expected to produce snow on the terminal while executing the provided efi firmware:
> snow in micropython on slimbootloader by eldon
> -------------------------------------------
>
> Today's advent is a custom efi firmware build of a new bootloader from intel called
> slimbootloader[1], a recent project by intel which has adapted micropython[2] as a
> utility for configuration and board testing. This build, however, will show snowfall on
> the console for a while. Eventually an exception drops the firmware into the micropython
> repl.
>
> [1] https://slimbootloader.github.io/supported-hardware/qemu.html
> [2] http://docs.micropython.org/en/latest/index.html
Snow does not fall anymore as it did with 7.1.0, it seems like execution is stopped/not started
Steps to reproduce:
- Build & Install from git source
```
/home/helge/qemu-project/qemu/configure --prefix=/home/helge/qemu-project/install \
--target-list=x86_64-softmmu --disable-linux-user
make -j2
make install
```
- Execute
```
PATH="/home/helge/qemu-project/install/bin" qemu-system-x86_64 \
-m 256M -machine q35 -serial mon:stdio -vga none \
-drive if=pflash,format=raw,file=snow.bin -boot a
```
Additional information:
Performing git bisect starting with tag v7.1.0 as good and tag v7.2.0-rc3 as bad reveals 92ec056a6b2fc5d5a5593121c5d9475d2a2461d6 as culprit:
```
$ git bisect start c4ffd91aba1c3d878e99a3e7ba8aad4826728ece 621da7789083b80d6f1ff1c0fb499334007b4f51
binäre Suche: danach noch 965 Commits zum Testen übrig (ungefähr 10 Schritte)
[2ba341b3694cf3cff7b8a1df4cc765900d5c4f60] Merge tag 'kraxel-20221013-pull-request' of https://gitlab.com/kraxel/qemu into staging
$ git bisect good
binäre Suche: danach noch 482 Commits zum Testen übrig (ungefähr 9 Schritte)
[05c049f12b88370de7289bf39b14088c7d656caa] hw/isa/piix3: Remove extra ';' outside of functions
$ git bisect bad
binäre Suche: danach noch 228 Commits zum Testen übrig (ungefähr 8 Schritte)
[08a5d04606292b3cf6f5756bf2a095654a290626] Merge tag 'pull-tcg-20221026' of https://gitlab.com/rth7680/qemu into staging
$ git bisect bad
binäre Suche: danach noch 126 Commits zum Testen übrig (ungefähr 7 Schritte)
[168122419ed1c4087748e21131a523c6d9b632e1] target/arm: Change gen_goto_tb to work on displacements
$ git bisect bad
binäre Suche: danach noch 69 Commits zum Testen übrig (ungefähr 6 Schritte)
[2c65091fd9d387b8dca8115dbdd9c3c61f658a9e] Merge tag 'pull-ppc-20221017' of https://gitlab.com/danielhb/qemu into staging
$ git bisect good
binäre Suche: danach noch 34 Commits zum Testen übrig (ungefähr 5 Schritte)
[92ec056a6b2fc5d5a5593121c5d9475d2a2461d6] target/i386: reimplement 0x0f 0x60-0x6f, add AVX
$ git bisect bad
binäre Suche: danach noch 17 Commits zum Testen übrig (ungefähr 4 Schritte)
[8629e77be5f8106b3497cc197fbd57a12ae6333f] target/i386: Use probe_access_full for final stage2 translation
$ git bisect good
binäre Suche: danach noch 8 Commits zum Testen übrig (ungefähr 3 Schritte)
[20581aadec5e5a9d6836e4612b6f44a7cbda7d16] target/i386: validate VEX prefixes via the instructions' exception classes
$ git bisect good
binäre Suche: danach noch 4 Commits zum Testen übrig (ungefähr 2 Schritte)
[f05f9789f57d5394fc118fe31aa2a9f563311140] target/i386: extend helpers to support VEX.V 3- and 4- operand encodings
$ git bisect good
binäre Suche: danach noch 2 Commits zum Testen übrig (ungefähr 1 Schritt)
[620f75566a5d81d7b82b3788b83d0b95c7d21dcd] target/i386: provide 3-operand versions of unary scalar helpers
$ git bisect good
binäre Suche: danach noch 0 Commits zum Testen übrig (ungefähr 1 Schritt)
[b98f886c8f8661773047197d132efec97810b37a] target/i386: Introduce 256-bit vector helpers
$ git bisect good
92ec056a6b2fc5d5a5593121c5d9475d2a2461d6 is the first bad commit
commit 92ec056a6b2fc5d5a5593121c5d9475d2a2461d6
Author: Paolo Bonzini <pbonzini@redhat.com>
Date: Tue Sep 20 05:42:45 2022 -0400
target/i386: reimplement 0x0f 0x60-0x6f, add AVX
These are both MMX and SSE/AVX instructions, except for vmovdqu. In both
cases the inputs and output is in s->ptr{0,1,2}, so the only difference
between MMX, SSE, and AVX is which helper to call.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
target/i386/tcg/decode-new.c.inc | 42 ++++++++
target/i386/tcg/emit.c.inc | 202 +++++++++++++++++++++++++++++++++++++++
target/i386/tcg/translate.c | 19 +++-
3 files changed, 262 insertions(+), 1 deletion(-)
```
|