[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug 1920784] Re: qemu-system-ppc64le fails with kvm acceleration
From: |
Christian Ehrhardt |
Subject: |
[Bug 1920784] Re: qemu-system-ppc64le fails with kvm acceleration |
Date: |
Tue, 23 Mar 2021 11:04:42 -0000 |
Hi Sadoon,
thanks for the report!
There isn't much to find about this issue yet.
One automatic syscaller crash report [1].
On the emulation side there is [2][3].
On the glibc side we have [4][5] adding the use of it with [6] being a fix.
All those seem to be in glibc 2.33 - so I'd expect with [6] it should only
be issued on power9 which in turn should HW-support the instruction.
I was trying to recreate this on power8 and power9 machines.
As expected on power8 just nothing happens (the instruction isn't used due to
[6]).
TBH I first wondered if these Sforza chips [7][8][9] you mentioned are
fully identical to a classic IBM p9 box - but I was indeed able to reproduce
the issue just fine on an IBM-sold P9
dmesg:
[ 1516.438442] Facility 'SCV' unavailable (12), exception at 0x76c9f84c49a0,
MSR=900000000280f033
[ 1516.438472] qemu-system-ppc[42884]: illegal instruction (4) at 76c9f84c49a0
nip 76c9f84c49a0 lr 1f12839d9f0 code 1 in libc-2.33.so[76c9f8380000+220000]
[ 1516.438489] qemu-system-ppc[42884]: code: e8010010 7c0803a6 4e800020
60420000 7ca42b78 4bffed65 60000000 38210020
[ 1516.438493] qemu-system-ppc[42884]: code: e8010010 7c0803a6 4e800020
60420000 <44000001> 4bffffb8 60000000 60420000
The chip I used for this test is:
Model: 2.2 (pvr 004e 1202)
Model name: POWER9, altivec supported
The syscall this crashes in belongs to the ioctl
(gdb) bt
#0 __GI___ioctl (fd=<optimized out>, request=536915584) at
../sysdeps/unix/sysv/linux/powerpc/ioctl.c:56
#1 0x00000cb63ef7d9f0 in kvm_vcpu_ioctl (cpu=cpu@entry=0x7d0f48010010,
type=type@entry=536915584) at ../../accel/kvm/kvm-all.c:2654
#2 0x00000cb63ef7dbdc in kvm_cpu_exec (cpu=0x7d0f48010010) at
../../accel/kvm/kvm-all.c:2491
#3 0x00000cb63ee78344 in kvm_vcpu_thread_fn (arg=0x7d0f48010010) at
../../accel/kvm/kvm-cpus.c:49
#4 0x00000cb63f1d14bc in qemu_thread_start (args=<optimized out>) at
../../util/qemu-thread-posix.c:521
#5 0x00007d0f4ac69114 in start_thread (arg=0x7d0f23dfe720) at
pthread_create.c:473
#6 0x00007d0f4ab755c0 in clone () at
../sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S:103
And jumping into the code of the __GI___ioctl we can clearly see
the scv instruction is indeed there in the executed code path:
0x7ffff66c4984 <__GI___ioctl+292> bl 0x7ffff66c36e8
<__GI___tcgetattr+8>
0x7ffff66c4988 <__GI___ioctl+296> nop
0x7ffff66c498c <__GI___ioctl+300> addi r1,r1,32
0x7ffff66c4990 <__GI___ioctl+304> ld r0,16(r1)
0x7ffff66c4994 <__GI___ioctl+308> mtlr r0
0x7ffff66c4998 <__GI___ioctl+312> blr
0x7ffff66c499c <__GI___ioctl+316> ori r2,r2,0
>0x7ffff66c49a0 <__GI___ioctl+320> scv 0
[1]:
https://webcache.googleusercontent.com/search?q=cache:uS0jhPekyqMJ:https://syzkaller-ppc64.appspot.com/text%3Ftag%3DCrashReport%26x%3D17d99883000000+&cd=2&hl=de&ct=clnk&gl=uk
[2]:
https://git.qemu.org/?p=qemu.git;a=commit;h=3c89b8d6ac5b8728cd7620f9885bd953edd18a11
[3]: https://lists.gnu.org/archive/html/qemu-devel/2021-03/msg05425.html
[4]:
https://sourceware.org/git/?p=glibc.git;a=commit;h=68ab82f56690ada86ac1e0c46bad06ba189a10ef
[5]:
https://sourceware.org/git/?p=glibc.git;a=commit;h=41f013cef24884604c303435dd1915be2ea5c0e0
[6]:
https://sourceware.org/git/?p=glibc.git;a=commit;h=527c89cd32f8522859f58343be3d3dc8f754b783
[7]: https://wiki.raptorcs.com/wiki/Sforza
[8]: https://wiki.raptorcs.com/wiki/Talos_II
[9]: https://wiki.raptorcs.com/wiki/POWER9
[10]: https://lwn.net/Articles/822867/
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1920784
Title:
qemu-system-ppc64le fails with kvm acceleration
Status in QEMU:
New
Status in The Ubuntu-power-systems project:
New
Status in glibc package in Ubuntu:
New
Status in qemu package in Ubuntu:
Confirmed
Bug description:
(Suspected glibc issue!)
qemu-system-ppc64(le) fails when invoked with kvm acceleration with
error "illegal instruction"
> qemu-system-ppc64(le) -M pseries,accel=kvm
Illegal instruction (core dumped)
In dmesg:
Facility 'SCV' unavailable (12), exception at 0x7624f8134c0c,
MSR=900000000280f033
Version-Release number of selected component (if applicable):
qemu 5.2.0
Linux kernel 5.11
glibc 2.33
all latest updates as of submitting the bug report
How reproducible:
Always
Steps to Reproduce:
1. Run qemu with kvm acceleration
Actual results:
Illegal instruction
Expected results:
Normal VM execution
Additional info:
The machine is a Raptor Talos II Lite with a Sforza V1 8-core, but was also
observed on a Raptor Blackbird with the same processor.
This was also observed on Fedora 34 beta, which uses glibc 2.33
Also tested on ArchPOWER (unofficial port of Arch Linux for ppc64le) with
glibc 2.33
Fedora 33 and Ubuntu 20.10, both using glibc 2.32 do not have this issue, and
downgrading the Linux kernel from 5.11 to 5.4 LTS on ArchPOWER solved the
problem. Kernel 5.9 and 5.10 have the same issue when combined with glibc2.33
ProblemType: Bug
DistroRelease: Ubuntu 21.04
Package: qemu-system 1:5.2+dfsg-6ubuntu2
ProcVersionSignature: Ubuntu 5.11.0-11.12-generic 5.11.0
Uname: Linux 5.11.0-11-generic ppc64le
.sys.firmware.opal.msglog: Error: [Errno 13] Permission denied:
'/sys/firmware/opal/msglog'
ApportVersion: 2.20.11-0ubuntu60
Architecture: ppc64el
CasperMD5CheckResult: pass
CurrentDesktop: Unity:Unity7:ubuntu
Date: Mon Mar 22 14:48:39 2021
InstallationDate: Installed on 2021-03-22 (0 days ago)
InstallationMedia: Ubuntu-Server 21.04 "Hirsute Hippo" - Alpha ppc64el
(20210321)
KvmCmdLine: COMMAND STAT EUID RUID PID PPID %CPU COMMAND
ProcKernelCmdLine: root=UUID=f3d03315-0944-4a02-9c87-09c00eba9fa1 ro
ProcLoadAvg: 1.20 0.73 0.46 1/1054 6071
ProcSwaps:
Filename Type Size Used
Priority
/swap.img file 8388544 0
-2
ProcVersion: Linux version 5.11.0-11-generic (buildd@bos02-ppc64el-002) (gcc
(Ubuntu 10.2.1-20ubuntu1) 10.2.1 20210220, GNU ld (GNU Binutils for Ubuntu)
2.36.1) #12-Ubuntu SMP Mon Mar 1 19:26:20 UTC 2021
SourcePackage: qemu
UpgradeStatus: No upgrade log present (probably fresh install)
VarLogDump_list: total 0
acpidump:
cpu_cores: Number of cores present = 8
cpu_coreson: Number of cores online = 8
cpu_smt: SMT=4
To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1920784/+subscriptions
- [Bug 1920784] Re: qemu-system-ppc64le fails with kvm acceleration, Christian Ehrhardt , 2021/03/23
- [Bug 1920784] Re: qemu-system-ppc64le fails with kvm acceleration, Christian Ehrhardt , 2021/03/23
- [Bug 1920784] Re: qemu-system-ppc64le fails with kvm acceleration, Christian Ehrhardt , 2021/03/23
- [Bug 1920784] Re: qemu-system-ppc64le fails with kvm acceleration,
Christian Ehrhardt <=
- [Bug 1920784] Re: qemu-system-ppc64le fails with kvm acceleration, Frank Heimes, 2021/03/23
- [Bug 1920784] Re: qemu-system-ppc64le fails with kvm acceleration, Christian Ehrhardt , 2021/03/23
- [Bug 1920784] Re: qemu-system-ppc64le fails with kvm acceleration, Christian Ehrhardt , 2021/03/23
- [Bug 1920784] Re: qemu-system-ppc64le fails with kvm acceleration, Laurent Vivier, 2021/03/23
- [Bug 1920784] Re: qemu-system-ppc64le fails with kvm acceleration, Laurent Vivier, 2021/03/23
- [Bug 1920784] Re: qemu-system-ppc64le fails with kvm acceleration, Frank Heimes, 2021/03/23
- [Bug 1920784] Re: qemu-system-ppc64le fails with kvm acceleration, sadoon albader, 2021/03/23
- [Bug 1920784] Re: qemu-system-ppc64le fails with kvm acceleration, Christian Ehrhardt , 2021/03/24
- [Bug 1920784] Re: qemu-system-ppc64le fails with kvm acceleration, Christian Ehrhardt , 2021/03/24
- [Bug 1920784] Re: qemu-system-ppc64le fails with kvm acceleration, Frank Heimes, 2021/03/24