qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kurz <groug@kaod.org>
To: Thomas Huth <thuth@redhat.com>
Cc: "Laurent Vivier" <lvivier@redhat.com>,
	"Markus Armbruster" <armbru@redhat.com>,
	"QEMU Developers" <qemu-devel@nongnu.org>,
	"qemu-ppc@nongnu.org" <qemu-ppc@nongnu.org>,
	"Cédric Le Goater" <clg@kaod.org>,
	"David Gibson" <dgibson@redhat.com>
Subject: Re: qemu-system-ppc64 abort()s with pcie bridges
Date: Wed, 8 Jul 2020 11:57:03 +0200	[thread overview]
Message-ID: <20200708115703.7926205a@bahia.lan> (raw)
In-Reply-To: <211dfb13-64cc-850b-4936-0f20f0157d7c@redhat.com>

On Wed, 8 Jul 2020 10:03:47 +0200
Thomas Huth <thuth@redhat.com> wrote:

> 
>  Hi,
> 
> qemu-system-ppc64 currently abort()s when it is started with a pcie
> bridge device:
> 
> $ qemu-system-ppc64 -M pseries-5.1 -device pcie-pci-bridge
> Unexpected error in object_property_find() at qom/object.c:1240:
> qemu-system-ppc64: -device pcie-pci-bridge: Property '.chassis_nr' not found
> Aborted (core dumped)
> 
> or:
> 
> $ qemu-system-ppc64 -M pseries -device dec-21154-p2p-bridge
> Unexpected error in object_property_find() at qom/object.c:1240:
> qemu-system-ppc64: -device dec-21154-p2p-bridge: Property '.chassis_nr'
> not found
> Aborted (core dumped)
> 
> That's kind of ugly, and it shows up as error when running
> scripts/device-crash-test. Is there an easy way to avoid the abort() and
> fail more gracefully here?
> 

And even worse, this can tear down a running guest with hotplug :\

(qemu) device_add pcie-pci-bridge 
Unexpected error in object_property_find() at /home/greg/Work/qemu/qemu-ppc/qom/object.c:1240:
Property '.chassis_nr' not found
Aborted (core dumped)

This is caused by recent commit:

commit 7ef1553dac8ef8dbe547b58d7420461a16be0eeb
Author: Markus Armbruster <armbru@redhat.com>
Date:   Tue May 5 17:29:25 2020 +0200

    spapr_pci: Drop some dead error handling
    
    chassis_from_bus() uses object_property_get_uint() to get property
    "chassis_nr" of the bridge device.  Failure would be a programming
    error.  Pass &error_abort, and simplify its callers.
    
    Cc: David Gibson <david@gibson.dropbear.id.au>
    Cc: qemu-ppc@nongnu.org
    Signed-off-by: Markus Armbruster <armbru@redhat.com>
    Acked-by: David Gibson <david@gibson.dropbear.id.au>
    Reviewed-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
    Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
    Message-Id: <20200505152926.18877-18-armbru@redhat.com>

Before that, we would simply print the "chassir_nr not found" error,
and in case of a cold plugged device exit.

The root cause is that the sPAPR PCI code assumes that a PCI bridge
has a "chassir_nr" property, ie. it is a standard PCI bridge. Other
PCI bridge types don't have that. Not sure yet why this information
is required, I'll check LoPAPR.

In the meantime, since we're in soft freeze, I guess we should
revert Markus's patch and add a big fat comment to explain
what's going on and maybe change the error message to something
more informative, eg. "PCIE-to-PCI bridges are not supported".

Thoughts ?

>  Thomas
> 



  reply	other threads:[~2020-07-08  9:58 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-08  8:03 qemu-system-ppc64 abort()s with pcie bridges Thomas Huth
2020-07-08  9:57 ` Greg Kurz [this message]
2020-07-09  9:28   ` Greg Kurz

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=20200708115703.7926205a@bahia.lan \
    --to=groug@kaod.org \
    --cc=armbru@redhat.com \
    --cc=clg@kaod.org \
    --cc=dgibson@redhat.com \
    --cc=lvivier@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=thuth@redhat.com \
    /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).