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 10:53:56 +0200 [thread overview]
Message-ID: <be0b195b-101b-692c-672c-f16e41522853@redhat.com> (raw)
In-Reply-To: <f7d5a8eb-cd7f-e0f5-91cc-4b3840b5de2c@163.com>
On 30/06/2023 10.45, qianfan wrote:
>
>
> 在 2023/6/30 15:27, Thomas Huth 写道:
>> 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,
>>
>> ?
> Yes, this patch is useful.
>
> The rootfs can mount successful even if the mmc block enumed as mmcblk1,
> next is the
> kernel logs:
>
> mmc1: new high speed SD card at address 4567
> mmcblk1: mmc1:4567 QEMU! 64.0 MiB
> EXT4-fs (mmcblk1): mounting ext2 file system using the ext4 subsystem
> EXT4-fs (mmcblk1): mounted filesystem without journal. Opts: (null)
> VFS: Mounted root (ext2 filesystem) on device 179:0.
Great!
> But the test scripts still fail due to it always waiting mmc0blk:
>
> exec_command_and_wait_for_pattern(self, 'cat /proc/partitions', 'mmcblk0')
Ok, so the "0" likely got to be dropped here?
> Could you please explain where is the "b300" come from?
I ran the kernel once without the "root=/dev/mmcblk0 rootwait"
part in its command line. Then it prints out something like this:
VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
Please append a correct "root=" boot option; here are the available partitions:
0100 4096 ram0
(driver?)
0101 4096 ram1
(driver?)
0102 4096 ram2
(driver?)
0103 4096 ram3
(driver?)
b300 65536 mmcblk0
driver: mmcblk
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
Seems like the "b300" is stable here, no matter whether
its mmcblk0 or mmcblk1.
Thomas
next prev parent reply other threads:[~2023-06-30 8:54 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
2023-06-30 8:45 ` qianfan
2023-06-30 8:53 ` Thomas Huth [this message]
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=be0b195b-101b-692c-672c-f16e41522853@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).