qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
To: Chen Fan <chen.fan.fnst@cn.fujitsu.com>, qemu-devel@nongnu.org
Cc: Alex Williamson <alex.williamson@redhat.com>
Subject: Re: [Qemu-devel] [RFC PATCH 2/4] pcie-aer: Fix command pcie_aer_inject_error is invalid
Date: Mon, 12 Jan 2015 15:56:16 +0200	[thread overview]
Message-ID: <54B3D280.90205@gmail.com> (raw)
In-Reply-To: <dc4eb00521217a02e368af354288dd20b544a720.1421028274.git.chen.fan.fnst@cn.fujitsu.com>

On 01/12/2015 05:04 AM, Chen Fan wrote:
> in spec "PCI Express 3.0" section 6.2.6 Figure 6-3 virtual bridge part,
> the flowchart showing tell us SERR# enable at Bridge Control register
> associate with system error at Secondary Status register can send error
> message. but bridge_control from dev->config is NULL, and SERR# was set
> in dev->wmask in pcie_aer_init()
wmask denotes the register bits that can be written by the guest.

If you are referring to:
        pci_word_test_and_set_mask(dev->wmask + PCI_BRIDGE_CONTROL,
                                   PCI_BRIDGE_CTL_SERR);
that means that the OS *is able* to turn on/off SERR forwarding.


  which was implemented by root port and
> swith devices, so we should add wmask (for w/r) bit set for bridge control.
> we can user command like:
> qemu_system_x86_64:
> -device ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,id=bridge1
> -device x3130-upstream,bus=bridge1,id=up.1,addr=00.0
> -device xio3130-downstream,bus=up.1,id=down.1,port=1,addr=00.0,chassis=5
>
> (qemu) pcie_aer_inject_error net0 POISON_TLP
>
> after that,
> guest can output the error message.
>
> Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com>
> ---
>   hw/pci/pcie_aer.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/hw/pci/pcie_aer.c b/hw/pci/pcie_aer.c
> index 7ca077a..571dc92 100644
> --- a/hw/pci/pcie_aer.c
> +++ b/hw/pci/pcie_aer.c
> @@ -231,7 +231,8 @@ pcie_aer_msg_alldev(PCIDevice *dev, const PCIEAERMsg *msg)
>    */
>   static bool pcie_aer_msg_vbridge(PCIDevice *dev, const PCIEAERMsg *msg)
>   {
> -    uint16_t bridge_control = pci_get_word(dev->config + PCI_BRIDGE_CONTROL);
Here we check if the Guest OS/firmware actually turned the #SERR forwarding on.

> +    uint16_t bridge_control = pci_get_word(dev->config + PCI_BRIDGE_CONTROL) |
> +                              pci_get_word(dev->wmask + PCI_BRIDGE_CONTROL);
I don't think that this check is correct given the above comments.
Please correct me if I mislead you,
Thanks,
Marcel


>
>       if (pcie_aer_msg_is_uncor(msg)) {
>           /* Received System Error */
>

  reply	other threads:[~2015-01-12 13:56 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-12  3:04 [Qemu-devel] [RFC PATCH 0/4] pass aer error to guest Chen Fan
2015-01-12  3:04 ` [Qemu-devel] [RFC PATCH 1/4] pcie_aer: fix typos in pcie_aer_inject_error comment Chen Fan
2015-01-12  3:04 ` [Qemu-devel] [RFC PATCH 2/4] pcie-aer: Fix command pcie_aer_inject_error is invalid Chen Fan
2015-01-12 13:56   ` Marcel Apfelbaum [this message]
2015-01-15  6:54     ` Chen Fan
2015-01-16  7:56     ` Chen Fan
2015-01-21  9:56       ` Chen Fan
2015-01-21 16:32         ` Marcel Apfelbaum
2015-01-12  3:04 ` [Qemu-devel] [RFC PATCH 3/4] vfio-pci: add aer capability support Chen Fan
2015-01-12 13:14   ` Paolo Bonzini
2015-01-15  8:45     ` Chen Fan
2015-01-12 15:26   ` Alex Williamson
2015-01-15  8:40     ` Chen Fan
2015-01-12  3:04 ` [Qemu-devel] [RFC PATCH 4/4] vfio-pci: pass the aer error to guest Chen Fan
2015-01-12 15:24   ` Alex Williamson
2015-01-28  8:51     ` Chen Fan

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=54B3D280.90205@gmail.com \
    --to=marcel.apfelbaum@gmail.com \
    --cc=alex.williamson@redhat.com \
    --cc=chen.fan.fnst@cn.fujitsu.com \
    --cc=marcel@redhat.com \
    --cc=qemu-devel@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).