From: Thomas Huth <thuth@redhat.com>
To: qianfan <qianfanguijin@163.com>,
Peter Maydell <peter.maydell@linaro.org>,
qemu-devel@nongnu.org
Cc: "Niek Linnenbank" <nieklinnenbank@gmail.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>
Subject: Re: [PULL 18/42] tests: avocado: boot_linux_console: Add test case for bpim2u
Date: Fri, 30 Jun 2023 09:27:24 +0200 [thread overview]
Message-ID: <4f749512-a395-40e4-c20e-ed4928c2cb87@redhat.com> (raw)
In-Reply-To: <b954eaad-508c-2341-eaeb-8ec4111de664@163.com>
On 30/06/2023 08.15, qianfan wrote:
>
>
> 在 2023/6/29 19:35, Thomas Huth 写道:
>> On 06/06/2023 11.47, Peter Maydell wrote:
>>> From: qianfan Zhao <qianfanguijin@163.com>
>>>
>>> Add test case for booting from initrd and sd card.
>>>
>>> Signed-off-by: qianfan Zhao <qianfanguijin@163.com>
>>> Reviewed-by: Niek Linnenbank <nieklinnenbank@gmail.com>
>>> Tested-by: Niek Linnenbank <nieklinnenbank@gmail.com>
>>> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
>>> ---
>>> tests/avocado/boot_linux_console.py | 176 ++++++++++++++++++++++++++++
>>> 1 file changed, 176 insertions(+)
>> ...
>>> + def test_arm_bpim2u_gmac(self):
>>> + """
>>> + :avocado: tags=arch:arm
>>> + :avocado: tags=accel:tcg
>>> + :avocado: tags=machine:bpim2u
>>> + :avocado: tags=device:sd
>>> + """
>>> + self.require_netdev('user')
>>> +
>>> + deb_url =
>>> ('https://apt.armbian.com/pool/main/l/linux-5.10.16-sunxi/'
>>> + 'linux-image-current-sunxi_21.02.2_armhf.deb')
>>> + deb_hash = '9fa84beda245cabf0b4fa84cf6eaa7738ead1da0'
>>> + deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash)
>>> + kernel_path = self.extract_from_deb(deb_path,
>>> + '/boot/vmlinuz-5.10.16-sunxi')
>>> + dtb_path = ('/usr/lib/linux-image-current-sunxi/'
>>> + 'sun8i-r40-bananapi-m2-ultra.dtb')
>>> + dtb_path = self.extract_from_deb(deb_path, dtb_path)
>>> + rootfs_url =
>>> ('http://storage.kernelci.org/images/rootfs/buildroot/'
>>> + 'buildroot-baseline/20221116.0/armel/rootfs.ext2.xz')
>>> + rootfs_hash = 'fae32f337c7b87547b10f42599acf109da8b6d9a'
>>> + rootfs_path_xz = self.fetch_asset(rootfs_url,
>>> asset_hash=rootfs_hash)
>>> + rootfs_path = os.path.join(self.workdir, 'rootfs.cpio')
>>> + archive.lzma_uncompress(rootfs_path_xz, rootfs_path)
>>> + image_pow2ceil_expand(rootfs_path)
>>> +
>>> + self.vm.set_console()
>>> + kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
>>> + 'console=ttyS0,115200 '
>>> + 'root=/dev/mmcblk0 rootwait rw '
>>> + 'panic=-1 noreboot')
>>> + self.vm.add_args('-kernel', kernel_path,
>>> + '-dtb', dtb_path,
>>> + '-drive', 'file=' + rootfs_path +
>>> ',if=sd,format=raw',
>>> + '-net', 'nic,model=gmac,netdev=host_gmac',
>>> + '-netdev', 'user,id=host_gmac',
>>> + '-append', kernel_command_line,
>>> + '-no-reboot')
>>> + self.vm.launch()
>>> + shell_ready = "/bin/sh: can't access tty; job control turned off"
>>> + self.wait_for_console_pattern(shell_ready)
>>> +
>>> + exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo',
>>> + 'Allwinner sun8i Family')
>>> + exec_command_and_wait_for_pattern(self, 'cat /proc/partitions',
>>> + 'mmcblk0')
>>> + exec_command_and_wait_for_pattern(self, 'ifconfig eth0 up',
>>> + 'eth0: Link is Up')
>>> + exec_command_and_wait_for_pattern(self, 'udhcpc eth0',
>>> + 'udhcpc: lease of 10.0.2.15 obtained')
>>> + exec_command_and_wait_for_pattern(self, 'ping -c 3 10.0.2.2',
>>> + '3 packets transmitted, 3 packets received, 0% packet loss')
>>> + exec_command_and_wait_for_pattern(self, 'reboot',
>>> + 'reboot: Restarting
>>> system')
>>> + # Wait for VM to shut down gracefully
>>> + self.vm.wait()
>>
>> FYI, the test_arm_bpim2u_gmac test just failed during one of my CI runs:
>>
>> https://gitlab.com/thuth/qemu/-/jobs/4565108610#L300
>>
>> Looking at the debug.log in the artifacts, it looks like the kernel was
>> hanging during boot:
>>
>> 10:53:56 DEBUG| of_cfs_init
>> 10:53:56 DEBUG| of_cfs_init: OK
>> 10:53:56 DEBUG| ALSA device list:
>> 10:53:56 DEBUG| No soundcards found.
>> 10:53:56 DEBUG| Waiting for root device /dev/mmcblk0...
>> 10:54:26 DEBUG| dcdc4: disabling
>> 10:54:26 DEBUG| dc5ldo: disabling
>> 10:54:26 DEBUG| vcc5v0: disabling
>> 10:55:15 ERROR|
>> ...
>> 10:55:15 ERROR| RuntimeError: Test interrupted by SIGTERM
>>
>> I can reproduce the problem locally on my laptop when running the test
>> repeatedly, e.g. with:
>>
>> make check-venv
>> for ((x=0;x<10;x++)); do \
>> ./tests/venv/bin/avocado run \
>> tests/avocado/boot_linux_console.py:test_arm_bpim2u_gmac ; \
>> done
>>
>> 1 out of 10 runs were failing.
>>
>> Any ideas what could be wrong in those failing cases?
> Hi:
>
> I can reproduce this issue based on master code(v8.0.0-rc1-2442-g4d541f63e9)
> with your's
> test scripts, and I have tested 50 times only failed once.
>
> Copy liunx boot logs and make a diff:
>
> $ diff ~/a/qemu_bpi_good.txt ~/a/qemu_bpi_bad.txt
...
> 288a289,291
> > mmc1: host does not support reading read-only switch, assuming write-enable
> > mmc1: new high speed SD card at address 4567
> > mmcblk1: mmc1:4567 QEMU! 64.0 MiB
> 296,298d298
> < mmc0: host does not support reading read-only switch, assuming write-enable
> < mmc0: new high speed SD card at address 4567
> < mmcblk0: mmc0:4567 QEMU! 64.0 MiB
> 322,331c322,325
> < EXT4-fs (mmcblk0): mounting ext2 file system using the ext4 subsystem
> < EXT4-fs (mmcblk0): mounted filesystem without journal. Opts: (null)
> < VFS: Mounted root (ext2 filesystem) on device 179:0.
> < devtmpfs: mounted
> < Freeing unused kernel memory: 1024K
> < Run /sbin/init as init process
> < EXT4-fs (mmcblk0): re-mounted. Opts: (null)
> < Starting syslogd: OK
> < Starting klogd: OK
> < Running sysctl: OK
> \ No newline at end of file
> ---
> > Waiting for root device /dev/mmcblk0...
> > dcdc4: disabling
> > dc5ldo: disabling
> > vcc5v0: disabling
> \ No newline at end of file
>
> The first mmc device should be mmc0, but the linux kernel named it as mmcblk1.
> So it always 'Waiting for root device /dev/mmcblk0...', that make the rootfs
> can not mounted.
>
> I'm not make sure where the problem came from.
Oh, that's ugly, I think the problem is likely that the numbering
of device names that are directly in /dev/ is never guaranteed by
the Linux kernel.
Could you please try whether this work more reliably for you
instead:
diff a/tests/avocado/boot_linux_console.py b/tests/avocado/boot_linux_console.py
--- a/tests/avocado/boot_linux_console.py
+++ b/tests/avocado/boot_linux_console.py
@@ -869,7 +869,7 @@ def test_arm_bpim2u_gmac(self):
self.vm.set_console()
kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
'console=ttyS0,115200 '
- 'root=/dev/mmcblk0 rootwait rw '
+ 'root=b300 rootwait rw '
'panic=-1 noreboot')
self.vm.add_args('-kernel', kernel_path,
'-dtb', dtb_path,
?
Thomas
next prev parent reply other threads:[~2023-06-30 7:28 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-06 9:47 [PULL 00/42] target-arm queue Peter Maydell
2023-06-06 9:47 ` [PULL 01/42] arm: move KVM breakpoints helpers Peter Maydell
2023-06-06 9:47 ` [PULL 02/42] hvf: handle access for more registers Peter Maydell
2023-06-06 9:47 ` [PULL 03/42] hvf: add breakpoint handlers Peter Maydell
2023-06-06 9:47 ` [PULL 04/42] hvf: add guest debugging handlers for Apple Silicon hosts Peter Maydell
2023-06-06 9:47 ` [PULL 05/42] hw/net/can: Introduce Xilinx Versal CANFD controller Peter Maydell
2023-06-06 9:47 ` [PULL 06/42] xlnx-versal: Connect Xilinx VERSAL CANFD controllers Peter Maydell
2023-06-06 9:47 ` [PULL 07/42] MAINTAINERS: Include canfd tests under Xilinx CAN Peter Maydell
2023-06-06 9:47 ` [PULL 08/42] tests/qtest: Introduce tests for Xilinx VERSAL CANFD controller Peter Maydell
2023-06-06 9:47 ` [PULL 09/42] hw: arm: Add bananapi M2-Ultra and allwinner-r40 support Peter Maydell
2023-06-06 9:47 ` [PULL 10/42] hw/arm/allwinner-r40: add Clock Control Unit Peter Maydell
2023-06-06 9:47 ` [PULL 11/42] hw: allwinner-r40: Complete uart devices Peter Maydell
2023-06-06 9:47 ` [PULL 12/42] hw: arm: allwinner-r40: Add i2c0 device Peter Maydell
2023-06-06 9:47 ` [PULL 13/42] hw/misc: Rename axp209 to axp22x and add support AXP221 PMU Peter Maydell
2023-06-06 9:47 ` [PULL 14/42] hw/arm/allwinner-r40: add SDRAM controller device Peter Maydell
2023-06-06 9:47 ` [PULL 15/42] hw: sd: allwinner-sdhost: Add sun50i-a64 SoC support Peter Maydell
2023-06-06 9:47 ` [PULL 16/42] hw: arm: allwinner-r40: Add emac and gmac support Peter Maydell
2023-06-06 9:47 ` [PULL 17/42] hw: arm: allwinner-sramc: Add SRAM Controller support for R40 Peter Maydell
2023-06-06 9:47 ` [PULL 18/42] tests: avocado: boot_linux_console: Add test case for bpim2u Peter Maydell
2023-06-29 11:35 ` Thomas Huth
2023-06-30 6:15 ` qianfan
2023-06-30 6:22 ` qianfan
2023-06-30 7:27 ` Thomas Huth [this message]
2023-06-30 8:45 ` qianfan
2023-06-30 8:53 ` Thomas Huth
2023-06-30 9:04 ` qianfan
2023-06-30 15:45 ` Thomas Huth
2023-07-03 11:14 ` Peter Maydell
2023-06-06 9:47 ` [PULL 19/42] docs: system: arm: Introduce bananapi_m2u Peter Maydell
2023-06-06 9:47 ` [PULL 20/42] target/arm: Add commentary for CPUARMState.exclusive_high Peter Maydell
2023-06-06 9:47 ` [PULL 21/42] target/arm: Add feature test for FEAT_LSE2 Peter Maydell
2023-06-06 9:47 ` [PULL 22/42] target/arm: Introduce finalize_memop_{atom,pair} Peter Maydell
2023-06-06 9:47 ` [PULL 23/42] target/arm: Use tcg_gen_qemu_ld_i128 for LDXP Peter Maydell
2023-06-06 9:47 ` [PULL 24/42] target/arm: Use tcg_gen_qemu_{st, ld}_i128 for do_fp_{st, ld} Peter Maydell
2023-06-06 9:47 ` [PULL 25/42] target/arm: Use tcg_gen_qemu_st_i128 for STZG, STZ2G Peter Maydell
2023-06-06 9:47 ` [PULL 26/42] target/arm: Use tcg_gen_qemu_{ld, st}_i128 in gen_sve_{ld, st}r Peter Maydell
2023-06-12 15:20 ` Jonathan Cameron via
2023-06-12 18:40 ` Mark Cave-Ayland
2023-06-13 9:26 ` Jonathan Cameron via
2023-06-06 9:47 ` [PULL 27/42] target/arm: Sink gen_mte_check1 into load/store_exclusive Peter Maydell
2023-06-06 9:48 ` [PULL 28/42] target/arm: Load/store integer pair with one tcg operation Peter Maydell
2023-06-06 9:48 ` [PULL 29/42] target/arm: Hoist finalize_memop out of do_gpr_{ld, st} Peter Maydell
2023-06-06 9:48 ` [PULL 30/42] target/arm: Hoist finalize_memop out of do_fp_{ld, st} Peter Maydell
2023-06-06 9:48 ` [PULL 31/42] target/arm: Pass memop to gen_mte_check1* Peter Maydell
2023-06-06 9:48 ` [PULL 32/42] target/arm: Pass single_memop to gen_mte_checkN Peter Maydell
2023-06-06 9:48 ` [PULL 33/42] target/arm: Check alignment in helper_mte_check Peter Maydell
2023-06-06 9:48 ` [PULL 34/42] target/arm: Add SCTLR.nAA to TBFLAG_A64 Peter Maydell
2023-06-06 9:48 ` [PULL 35/42] target/arm: Relax ordered/atomic alignment checks for LSE2 Peter Maydell
2023-06-06 9:48 ` [PULL 36/42] target/arm: Move mte check for store-exclusive Peter Maydell
2023-06-06 9:48 ` [PULL 37/42] tests/tcg/aarch64: Use stz2g in mte-7.c Peter Maydell
2023-06-06 9:48 ` [PULL 38/42] tests/tcg/multiarch: Adjust sigbus.c Peter Maydell
2023-06-06 9:48 ` [PULL 39/42] target/arm: Enable FEAT_LSE2 for -cpu max Peter Maydell
2023-06-06 9:48 ` [PULL 40/42] target/arm: allow DC CVA[D]P in user mode emulation Peter Maydell
2023-06-06 9:48 ` [PULL 41/42] tests/tcg/aarch64: add DC CVA[D]P tests Peter Maydell
2023-06-06 9:48 ` [PULL 42/42] target/arm: trap DCC access in user mode emulation Peter Maydell
2023-06-06 21:36 ` [PULL 00/42] target-arm queue Richard Henderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4f749512-a395-40e4-c20e-ed4928c2cb87@redhat.com \
--to=thuth@redhat.com \
--cc=nieklinnenbank@gmail.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=qianfanguijin@163.com \
--cc=richard.henderson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).