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 Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1920784

Title:
  qemu-system-ppc64le fails with kvm acceleration

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1920784/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to