Hi Cedric,
Sorry for the late reply, I am on vacation this week, will try to look
at this, but reply might be late.

On 25/08/08 02:32PM, Cédric Le Goater wrote:
> On 8/8/25 13:59, Aditya Gupta wrote:
> > Overview
> > ============
> > 
> > Add support for Power11 powernv machine type.
> > 
> > > <...snip...>
>
> Booting a PowerNV11 machine crashes QEMU. See below.
> 
> Are you testing with petitboot kexecing a distro kernel from disk ?
> Please do and also start a KVM guest. Please check your tests.

No, I ran the qemu functional tests, and few boot tests with different
options.

The functional test already attaches a e1000e device, somehow that
didn't trigger the same error that you saw (maybe the kernel used
doesn't have support for that device).
Will add a test to try petitboot kexec scenario also, so we don't hit
these kind of issues in future.

Regarding KVM guest, iirc we can't start KVM guest for PowerNV yet right
?

About the error, seems xive2 always expecting powernv10 chip, I will
have to rethink how should I use the same xive2 for powernv11.

Thank you for testing this Cedric !

- Aditya G

> 
> Thanks,
> 
> C.
> 
> 
> [    6.806342] e1000e 0001:02:03.0 eth0: MAC: 3, PHY: 8, PBA No: 000000-000
> [    6.844448] e1000e 0001:02:03.0 enP1p2s3: renamed from eth0
> ../include/hw/ppc/pnv_chip.h:110:PNV10_CHIP: Object 0x555556ab0cf0 is not an 
> instance of type pnv10-chip
> 
> Thread 1 "qemu-system-ppc" received signal SIGABRT, Aborted.
> 0x00007ffff6a8d02c in __pthread_kill_implementation () from /lib64/libc.so.6
> Missing rpms, try: dnf --enablerepo='*debug*' install 
> capstone-debuginfo-4.0.2-10.el9.x86_64 gnutls-debuginfo-3.8.3-9.el9.x86_64 
> pixman-debuginfo-0.40.0-6.el9.x86_64 zlib-debuginfo-1.2.11-40.el9.x86_64 
> lzo-debuginfo-2.10-7.el9.x86_64 SDL2-debuginfo-2.26.0-1.el9.x86_64 
> libpmem-debuginfo-1.12.1-1.el9.x86_64 libfdt-debuginfo-1.6.0-7.el9.x86_64 
> numactl-libs-debuginfo-2.0.19-1.el9.x86_64 
> glib2-debuginfo-2.68.4-16.el9_6.2.x86_64 libzstd-debuginfo-1.5.5-1.el9.x86_64 
> libslirp-debuginfo-4.4.0-8.el9.x86_64 
> elfutils-libs-debuginfo-0.193-1.el9.x86_64 
> ncurses-libs-debuginfo-6.2-12.20210508.el9.x86_64 
> usbredir-debuginfo-0.13.0-2.el9.x86_64 libusbx-debuginfo-1.0.26-1.el9.x86_64 
> glibc-debuginfo-2.34-221.el9.x86_64 p11-kit-debuginfo-0.25.3-3.el9.x86_64 
> libidn2-debuginfo-2.3.0-7.el9.x86_64 
> libunistring-debuginfo-0.9.10-15.el9.x86_64 
> libtasn1-debuginfo-4.16.0-9.el9.x86_64 nettle-debuginfo-3.10.1-1.el9.x86_64 
> ndctl-libs-debuginfo-78-2.el9.x86_64 daxctl-libs-debuginfo-78-2.el9.x86_64 
> libmount-debuginfo-2.37.4-21.el9.x86_64 libselinux-debuginfo-3.6-3.el9.x86_64 
> libffi-debuginfo-3.4.2-8.el9.x86_64 pcre-debuginfo-8.44-4.el9.x86_64 
> elfutils-libelf-debuginfo-0.193-1.el9.x86_64 
> xz-libs-debuginfo-5.2.5-8.el9_0.x86_64 
> bzip2-libs-debuginfo-1.0.8-10.el9_5.x86_64 
> systemd-libs-debuginfo-252-53.el9.x86_64 
> libuuid-debuginfo-2.37.4-21.el9.x86_64 kmod-libs-debuginfo-28-10.el9.x86_64 
> libblkid-debuginfo-2.37.4-21.el9.x86_64 pcre2-debuginfo-10.40-6.el9.x86_64 
> libgcc-debuginfo-11.5.0-9.el9.x86_64 openssl-libs-debuginfo-3.5.1-3.el9.x86_64
> (gdb) bt
> #0  0x00007ffff6a8d02c in __pthread_kill_implementation () at /lib64/libc.so.6
> #1  0x00007ffff6a3fb86 in raise () at /lib64/libc.so.6
> #2  0x00007ffff6a29873 in abort () at /lib64/libc.so.6
> #3  0x0000555555d62988 in object_dynamic_cast_assert
>     (obj=0x555556ab0cf0, typename=typename@entry=0x5555560528a5 "pnv10-chip", 
> file=file@entry=0x555556051628 
> "/home/legoater/work/qemu/qemu.git/include/hw/ppc/pnv_chip.h", 
> line=line@entry=110, func=func@entry=0x55555606a2c8 <__func__.27> 
> "PNV10_CHIP")
>     at ../qom/object.c:925
> #4  0x0000555555cfe852 in PNV10_CHIP (obj=<optimized out>) at 
> /home/legoater/work/qemu/qemu.git/include/hw/ppc/pnv_chip.h:110
> #5  pnv_xive2_get_remote (fwd_addr=<optimized out>, vsd_type=2) at 
> ../hw/intc/pnv_xive2.c:113
> #6  pnv_xive2_vst_addr (idx=15, blk=<optimized out>, type=2, xive=<optimized 
> out>) at ../hw/intc/pnv_xive2.c:265
> #7  pnv_xive2_vst_addr (xive=<optimized out>, type=2, blk=<optimized out>, 
> idx=15) at ../hw/intc/pnv_xive2.c:244
> #8  0x0000555555cfec35 in pnv_xive2_vst_read (xive=0x555556ab1500, type=2, 
> blk=1 '\001', idx=15, data=0x7fffffffcf20)
>     at ../hw/intc/pnv_xive2.c:286
> #9  0x0000555555d06a69 in xive2_router_get_end (end=0x7fffffffcf20, 
> end_idx=15, end_blk=1 '\001', xrtr=0x555556ab1500)
>     at ../hw/intc/xive2.c:1437
> #10 xive2_router_end_notify
>     (xrtr=xrtr@entry=0x555556ab1500, end_blk=1 '\001', end_idx=15, 
> end_data=97, redistribute=redistribute@entry=false)
>     at ../hw/intc/xive2.c:1669
> #11 0x0000555555d06990 in xive2_notify (xrtr=0x555556ab1500, lisn=1040385, 
> pq_checked=<optimized out>)
>     at ../hw/intc/xive2.c:1955
> #12 0x0000555555add8bb in memory_region_write_accessor
>     (mr=mr@entry=0x555556ab3e00, addr=136365408256, 
> value=value@entry=0x7fffffffd0e8, size=size@entry=8, shift=<optimized out>, 
> mask=mask@entry=18446744073709551615, attrs=...) at ../system/memory.c:490
> #13 0x0000555555adf1a2 in access_with_adjusted_size
>     (addr=addr@entry=136365408256, value=value@entry=0x7fffffffd0e8, 
> size=size@entry=8, access_size_min=<optimized out>, 
> access_size_max=<optimized out>, access_fn=0x555555add850 
> <memory_region_write_accessor>, mr=0x555556ab3e00, attrs=...)
>     at ../system/memory.c:561
> #14 0x0000555555ae0164 in memory_region_dispatch_write 
> (mr=mr@entry=0x555556ab3e00, addr=136365408256, data=<optimized out>,
>     data@entry=0, op=<optimized out>, attrs=attrs@entry=...) at 
> ../system/memory.c:1553
> #15 0x0000555555ae8357 in address_space_stq_internal
>     (as=<optimized out>, addr=addr@entry=1694483783811072, val=val@entry=0, 
> attrs=..., result=result@entry=0x7fffffffd1f4, 
> endian=endian@entry=DEVICE_BIG_ENDIAN) at ../system/memory_ldst.c.inc:479
> #16 0x0000555555aeef0b in address_space_stq_be
>     (as=<optimized out>, addr=addr@entry=1694483783811072, val=val@entry=0, 
> attrs=...,
>     attrs@entry=..., result=result@entry=0x7fffffffd1f4) at 
> ../system/memory_ldst.c.inc:524
> #17 0x0000555555d2159c in pnv_phb4_xive_notify_abt (pq_checked=false, 
> srcno=<optimized out>, phb=0x5555574bc500)
>     at ../hw/pci-host/pnv_phb4.c:1650
> #18 pnv_phb4_xive_notify (xf=<optimized out>, srcno=<optimized out>, 
> pq_checked=<optimized out>)
>     at ../hw/pci-host/pnv_phb4.c:1686
> #19 0x0000555555d203f0 in qemu_irq_pulse (irq=0x5555574c8440) at 
> /home/legoater/work/qemu/qemu.git/include/hw/irq.h:33
> #20 pnv_phb4_msi_write (opaque=<optimized out>, addr=<optimized out>, 
> data=<optimized out>, size=<optimized out>)
>     at ../hw/pci-host/pnv_phb4.c:1423
> #21 0x0000555555add8bb in memory_region_write_accessor
>     (mr=mr@entry=0x55555d8c76b0, addr=0, value=value@entry=0x7fffffffd318, 
> size=size@entry=4, shift=<optimized out>, mask=mask@entry=4294967295, 
> attrs=...) at ../system/memory.c:490
> #22 0x0000555555adf23b in access_with_adjusted_size
>     (addr=addr@entry=0, value=value@entry=0x7fffffffd318, size=size@entry=4, 
> access_size_min=<optimized out>, access_size_max=<optimized out>, 
> access_fn=0x555555add850 <memory_region_write_accessor>, mr=0x55555d8c76b0, 
> attrs=...)
>     at ../system/memory.c:566
> #23 0x0000555555ae0164 in memory_region_dispatch_write 
> (mr=mr@entry=0x55555d8c76b0, addr=0, data=<optimized out>,
>     data@entry=1, op=op@entry=MO_32, attrs=attrs@entry=...) at 
> ../system/memory.c:1553
> #24 0x0000555555aee333 in address_space_stl_internal
>     (endian=DEVICE_LITTLE_ENDIAN, result=0x0, attrs=..., val=1, 
> addr=<optimized out>, as=<optimized out>)
>     at ../system/memory_ldst.c.inc:319
> #25 address_space_stl_le (as=<optimized out>, addr=<optimized out>, val=1, 
> attrs=..., result=0x0)
>     at ../system/memory_ldst.c.inc:357
> #26 0x0000555555ef3c05 in aio_bh_call (bh=bh@entry=0x55555d0d59e0) at 
> ../util/async.c:172
> #27 0x0000555555ef3d35 in aio_bh_poll (ctx=ctx@entry=0x55555667ad50) at 
> ../util/async.c:219
> #28 0x0000555555edcede in aio_dispatch (ctx=0x55555667ad50) at 
> ../util/aio-posix.c:436
> #29 0x0000555555ef3a7e in aio_ctx_dispatch (source=<optimized out>, 
> callback=<optimized out>, user_data=<optimized out>)
>     at ../util/async.c:361
> #30 0x00007ffff76c0f4f in g_main_context_dispatch () at 
> /lib64/libglib-2.0.so.0
> #31 0x0000555555ef5058 in glib_pollfds_poll () at ../util/main-loop.c:287
> #32 os_host_main_loop_wait (timeout=0) at ../util/main-loop.c:310
> #33 main_loop_wait (nonblocking=nonblocking@entry=0) at 
> ../util/main-loop.c:589
> #34 0x0000555555af89b3 in qemu_main_loop () at ../system/runstate.c:905
> #35 0x0000555555e4273c in qemu_default_main (opaque=opaque@entry=0x0) at 
> ../system/main.c:50
> #36 0x000055555589eddd in main (argc=<optimized out>, argv=<optimized out>) 
> at ../system/main.c:93
> 

Reply via email to