From: Gavin Shan <gwshan@linux.vnet.ibm.com>
To: "Guilherme G. Piccoli" <gpiccoli@linux.vnet.ibm.com>
Cc: mpe@ellerman.id.au, linuxppc-dev@lists.ozlabs.org,
gwshan@linux.vnet.ibm.com, benh@kernel.crashing.org,
nfont@linux.vnet.ibm.com, paulus@samba.org
Subject: Re: [PATCH 2/2] powerpc/pseries: Check if EEH is enabled on DDW mechanism code
Date: Wed, 3 Feb 2016 10:48:11 +1100 [thread overview]
Message-ID: <20160202234811.GA17911@gwshan> (raw)
In-Reply-To: <1453234700-27593-3-git-send-email-gpiccoli@linux.vnet.ibm.com>
On Tue, Jan 19, 2016 at 06:18:20PM -0200, Guilherme G. Piccoli wrote:
>The Dynamic DMA Window (DDW) mechanism relies on EEH to obtain the
>configuration address of devices. For example, the functions query_ddw()
>and create_ddw() make use of eeh_dev struct. So, the dependency is
>intrinsic - DDW mechanism will fail if EEH is not enabled.
>
>Despite this dependency, no check for EEH availability is performed in DDW
>code. This patch adds a check based on eeh_enabled() function, so if EEH is
>not enabled before eeh_dev struct use, DDW will fallback to default iommu
>mechanism and won't fail.
>
>One use case for this patch is when we disable EEH globally via kernel
>command-line ("eeh=off") - without the patch, a device probe can hit a kernel
>oops because EEH is disabled but DDW will try to use it.
>
>Signed-off-by: Guilherme G. Piccoli <gpiccoli@linux.vnet.ibm.com>
>---
> arch/powerpc/platforms/pseries/iommu.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
>diff --git a/arch/powerpc/platforms/pseries/iommu.c b/arch/powerpc/platforms/pseries/iommu.c
>index bd98ce2..1ff55cc 100644
>--- a/arch/powerpc/platforms/pseries/iommu.c
>+++ b/arch/powerpc/platforms/pseries/iommu.c
>@@ -1224,8 +1224,10 @@ static int dma_set_mask_pSeriesLP(struct device *dev, u64 dma_mask)
>
> pdev = to_pci_dev(dev);
>
>- /* only attempt to use a new window if 64-bit DMA is requested */
>- if (!disable_ddw && dma_mask == DMA_BIT_MASK(64)) {
>+ /* We should check if EEH is enabled here, since DDW mechanism has
>+ * an intrinsic dependency of EEH config addr information. Also, we
>+ * only attempt to use a new window if 64-bit DMA is requested */
>+ if (eeh_enabled() && !disable_ddw && dma_mask == DMA_BIT_MASK(64)) {
> dn = pci_device_to_OF_node(pdev);
> dev_dbg(dev, "node is %s\n", dn->full_name);
>
There are two types of addresses: (1) PCI config address (2) PE config address.
(1) is used to indentify one PCI device which is included in the PE. (2) is the
PCI config address of PE's primary bus in pHyp. Both of them can be used to identify
the PE. It means the (1) PCI config address, which is retrieved from pci_dn, can be
passed to hypervisor. Then we don't have to disable DDW when EEH is disabled.
Guilherme, did you hit the crash on pHyp or PowerKVM?
Thanks,
Gavin
>--
>2.1.0
>
next prev parent reply other threads:[~2016-02-02 23:49 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-19 20:18 [PATCH 0/2] Two patches regarding EEH availability checks - DLPAR/DDW Guilherme G. Piccoli
2016-01-19 20:18 ` [PATCH 1/2] powerpc/eeh: Check for EEH availability in eeh_add_device_early() Guilherme G. Piccoli
2016-02-02 22:44 ` Gavin Shan
2016-02-03 11:54 ` Guilherme G. Piccoli
2016-02-04 5:27 ` Gavin Shan
2016-01-19 20:18 ` [PATCH 2/2] powerpc/pseries: Check if EEH is enabled on DDW mechanism code Guilherme G. Piccoli
2016-02-02 23:48 ` Gavin Shan [this message]
2016-02-03 12:26 ` Guilherme G. Piccoli
2016-02-04 5:30 ` Gavin Shan
2016-04-07 0:23 ` Guilherme G. Piccoli
2016-02-01 12:47 ` [PATCH 0/2] Two patches regarding EEH availability checks - DLPAR/DDW Guilherme G. Piccoli
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=20160202234811.GA17911@gwshan \
--to=gwshan@linux.vnet.ibm.com \
--cc=benh@kernel.crashing.org \
--cc=gpiccoli@linux.vnet.ibm.com \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
--cc=nfont@linux.vnet.ibm.com \
--cc=paulus@samba.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).