qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Cédric Le Goater" <clg@redhat.com>
To: Aditya Gupta <adityag@linux.ibm.com>,
	Nicholas Piggin <npiggin@gmail.com>,
	Harsh Prateek Bora <harshpb@linux.ibm.com>
Cc: Mahesh J Salgaonkar <mahesh@linux.ibm.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	qemu-devel@nongnu.org, qemu-ppc@nongnu.org
Subject: Re: [PATCH v9 0/7] Power11 support for QEMU [PowerNV]
Date: Fri, 8 Aug 2025 14:32:04 +0200	[thread overview]
Message-ID: <baf6c854-832b-4a2e-922f-d34e6dadf821@redhat.com> (raw)
In-Reply-To: <20250808115929.1073910-1-adityag@linux.ibm.com>

On 8/8/25 13:59, Aditya Gupta wrote:
> Overview
> ============
> 
> Add support for Power11 powernv machine type.
> 
> As Power11 core is same as Power10, hence much of the code has been reused
> from Power10.
> 
> Split Powernv11 chip/machine code into commits introducing: chip,machine,xive,phb
> This is to try to keep the code smaller in each commit, but can squash the
> xive/phb commits into respective chip/machine commit
> 
> Power11 PSeries already added in QEMU in:
>    commit 273db89bcaf4 ("ppc/pseries: Add Power11 cpu type")
> 
> Git Tree for Testing
> ====================
> 
> QEMU: https://github.com/adi-g15-ibm/qemu/tree/p11-powernv-v9
> 
> Has been tested with following cases:
> * '-M powernv' / '-M powernv10' / '-M powernv11'
> * '-smp' option tested
> 
> skiboot with Power11 support: https://github.com/open-power/skiboot, since
> commit 785a5e3
> 
> Linux with Power11 support: https://github.com/torvalds/linux, since v6.9-rc1
> 
> Changelog
> =========
> v9:
>    + [PATCH 1/7]: apply hunks from commit cf0eb929e59cb, and commit
>      24c8fa968a6d8, for changes that were done for Power10, as those changes
>      make sense for Power11 also
>    + [PATCH 3/7]: fixed build breakage identified with QEMU CI, due to changes
>      in upstream function pointer types
> 
> v8:
>    + rebase to upstream
>    + propose myself as a powernv reviewer
> 
> v7 (https://lore.kernel.org/qemu-devel/20250327200738.1524401-1-adityag@linux.ibm.com/):
>    + use Power10 models of homer, sbe, occ, psi, lpc. As they are same.
>    + switch powernv tests to use buildroot images instead of op-build images
>    + add functional test for powernv11
>    - remove dynamic sysbus device for PHBs, so no more dynamic number of
>    PHBs in Power11 as it became complex to handle it and not much used
> 
> v6 (https://lore.kernel.org/qemu-devel/20250325112319.927190-1-adityag@linux.ibm.com/):
>    + make Pnv11Chip's parent as PnvChip, instead of Pnv10Chip
>    + rebase on upstream/master
> 
> v5 (https://lore.kernel.org/qemu-devel/57ce8d50-db92-44f0-96a9-e1297eea949f@kaod.org/):
>    + add chiptod
>    + add instance_init for P11 to use P11 models
>    + move patch introducing Pnv11Chip to the last
>    + update skiboot.lid to skiboot's upstream/master
> 
> v4:
>    + patch #5: fix memory leak in pnv_chip_power10_quad_realize
>    - no change in other patches
> 
> v3:
>    + patch #1: version power11 as power11_v2.0
>    + patch #2: split target hw/pseries code into patch #2
>    + patch #3,#4: fix regression due to Power10 and Power11 having same PCR
>    + patch #5: create pnv_chip_power11_dt_populate and split pnv_chip_power10_common_realize as per review
>    + patch #6-#11: no change
>    - remove commit to make Power11 as default
> 
> v2:
>    + split powernv patch into homer,lpc,occ,psi,sbe
>    + reduce code duplication by reusing power10 code
>    + make power11 as default
>    + rebase on qemu upstream/master
>    + add more information in commit descriptions
>    + update docs
>    + update skiboot.lid
> 
> 
> Aditya Gupta (7):
>    ppc/pnv: Introduce Pnv11Chip
>    ppc/pnv: Introduce Power11 PowerNV machine
>    ppc/pnv: Add XIVE2 controller to Power11
>    ppc/pnv: Add PHB5 PCIe Host bridge to Power11
>    ppc/pnv: Add ChipTOD model for Power11
>    tests/powernv: Switch to buildroot images instead of op-build
>    tests/powernv: Add PowerNV test for Power11
> 
>   docs/system/ppc/powernv.rst            |   9 +-
>   hw/ppc/pnv.c                           | 540 +++++++++++++++++++++++++
>   hw/ppc/pnv_chiptod.c                   |  59 +++
>   hw/ppc/pnv_core.c                      |  17 +
>   include/hw/ppc/pnv.h                   |  38 ++
>   include/hw/ppc/pnv_chip.h              |   7 +
>   include/hw/ppc/pnv_chiptod.h           |   2 +
>   include/hw/ppc/pnv_xscom.h             |  49 +++
>   tests/functional/test_ppc64_powernv.py |  34 +-
>   9 files changed, 737 insertions(+), 18 deletions(-)
> 


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.

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


  parent reply	other threads:[~2025-08-08 12:33 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-08 11:59 [PATCH v9 0/7] Power11 support for QEMU [PowerNV] Aditya Gupta
2025-08-08 11:59 ` [PATCH v9 1/7] ppc/pnv: Introduce Pnv11Chip Aditya Gupta
2025-08-08 11:59 ` [PATCH v9 2/7] ppc/pnv: Introduce Power11 PowerNV machine Aditya Gupta
2025-08-08 11:59 ` [PATCH v9 3/7] ppc/pnv: Add XIVE2 controller to Power11 Aditya Gupta
2025-08-08 11:59 ` [PATCH v9 4/7] ppc/pnv: Add PHB5 PCIe Host bridge " Aditya Gupta
2025-08-08 11:59 ` [PATCH v9 5/7] ppc/pnv: Add ChipTOD model for Power11 Aditya Gupta
2025-08-08 11:59 ` [PATCH v9 6/7] tests/powernv: Switch to buildroot images instead of op-build Aditya Gupta
2025-08-08 11:59 ` [PATCH v9 7/7] tests/powernv: Add PowerNV test for Power11 Aditya Gupta
2025-08-08 12:32 ` Cédric Le Goater [this message]
2025-08-10  6:56   ` [PATCH v9 0/7] Power11 support for QEMU [PowerNV] Aditya Gupta
2025-08-10 10:45     ` Aditya Gupta
2025-08-10 12:46       ` Access to remote XIVE2 units (was Re: [PATCH v9 0/7] Power11 support for QEMU [PowerNV]) Cédric Le Goater
2025-08-11 15:17         ` Miles Glenn
2025-08-20  6:40         ` Aditya Gupta
2025-08-28 12:04         ` Aditya Gupta
2025-08-28 21:49           ` Cédric Le Goater
2025-09-24 12:14             ` Ganesh G R
2025-09-25  6:38               ` Cédric Le Goater
2025-09-25 12:51                 ` Aditya Gupta
2025-08-11 12:16     ` [PATCH v9 0/7] Power11 support for QEMU [PowerNV] Cédric Le Goater

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=baf6c854-832b-4a2e-922f-d34e6dadf821@redhat.com \
    --to=clg@redhat.com \
    --cc=adityag@linux.ibm.com \
    --cc=harshpb@linux.ibm.com \
    --cc=maddy@linux.ibm.com \
    --cc=mahesh@linux.ibm.com \
    --cc=npiggin@gmail.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.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).