Messages in this thread Patch in this message | | | Subject | Re: Commit 282d8998e997 (srcu: Prevent expedited GPs and blocking readers from consuming CPU) cause qemu boot slow | From | "" <> | Date | Sun, 12 Jun 2022 15:40:30 +0800 |
| |
Hi, Paul
On 2022/6/12 上午12:59, Paul E. McKenney wrote: > On Sun, Jun 12, 2022 at 12:32:59AM +0800, Zhangfei Gao wrote: >> Hi, Paul >> >> When verifying qemu with acpi rmr feature on v5.19-rc1, the guest kernel >> stuck for several minutes. > Stuck for several minutes but then continues normally? Or stuck for > several minutes before you kill qemu? qemu boot stuck for several minutes, then guest can bootup normally, just slower. > > And I have to ask... What happened without the ACPI RMR feature? If no ACPI, qemu boot quickly without stuck. build/aarch64-softmmu/qemu-system-aarch64 -machine virt,gic-version=3,iommu=smmuv3 \ -enable-kvm -cpu host -m 1024 \ -kernel Image -initrd mini-rootfs.cpio.gz -nographic -append \ "rdinit=init console=ttyAMA0 earlycon=pl011,0x9000000 kpti=off"
Adding acpi=force & -bios QEMU_EFI.fd, qemu boot stuck for several minutes.
By the way, my hardware platform is aarch64.
Only change this can solve the stuck issue.
--- a/kernel/rcu/srcutree.c +++ b/kernel/rcu/srcutree.c @@ -524,6 +524,10 @@ static unsigned long srcu_get_delay(struct srcu_struct *ssp) { unsigned long jbase = SRCU_INTERVAL;
+ if (ULONG_CMP_LT(READ_ONCE(ssp->srcu_gp_seq), READ_ONCE(ssp->srcu_gp_seq_needed_exp))) + return 0; + return SRCU_INTERVAL; +
> >> And on 5.18, there is no such problem. >> >> After revert this patch, the issue solved. >> Commit 282d8998e997 (srcu: Prevent expedited GPs and blocking readers from >> consuming CPU) >> >> >> qemu cmd: >> build/aarch64-softmmu/qemu-system-aarch64 -machine >> virt,gic-version=3,iommu=smmuv3 \ >> -enable-kvm -cpu host -m 1024 \ >> -kernel Image -initrd mini-rootfs.cpio.gz -nographic -append \ >> "rdinit=init console=ttyAMA0 earlycon=pl011,0x9000000 kpti=off acpi=force" \ >> -bios QEMU_EFI.fd >> >> log: >> InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7AA4D040 >> add-symbol-file /home/linaro/work/edk2/Build/ArmVirtQemu-AARCH64/DEBUG_GCC48/AARCH64/NetworkPkg/IScsiDxe/IScsiDxe/DEBUG/IScsiDxe.dll >> 0x75459000 >> Loading driver at 0x00075458000 EntryPoint=0x00075459058 IScsiDxe.efi >> InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7AA4DE98 >> ProtectUefiImageCommon - 0x7AA4D040 >> - 0x0000000075458000 - 0x000000000003F000 >> SetUefiImageMemoryAttributes - 0x0000000075458000 - 0x0000000000001000 >> (0x0000000000004008) >> SetUefiImageMemoryAttributes - 0x0000000075459000 - 0x000000000003B000 >> (0x0000000000020008) >> SetUefiImageMemoryAttributes - 0x0000000075494000 - 0x0000000000003000 >> (0x0000000000004008) >> InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 754952C8 >> InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 75495358 >> InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 75495370 >> InstallProtocolInterface: 18A031AB-B443-4D1A-A5C0-0C09261E9F71 754952F8 >> InstallProtocolInterface: 107A772C-D5E1-11D4-9A46-0090273FC14D 75495358 >> InstallProtocolInterface: 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14 75495370 >> InstallProtocolInterface: 59324945-EC44-4C0D-B1CD-9DB139DF070C 75495348 >> InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 754953E8 >> InstallProtocolInterface: 330D4706-F2A0-4E4F-A369-B66FA8D54385 7AA4D728 >> >> >> Not sure it is either reported or solved. > This is the first I have heard of it, so thank you for reporting it. > > Do you have a way of collecting something sysrq-t output? Do you mean "echo t > /proc/sysrq-trigger", There are too much output and kernel dump can not stop.
Thanks
| |