linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Stanislaw Gruszka <sgruszka@redhat.com>
To: Joerg Roedel <joro@8bytes.org>
Cc: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>,
	Rosen Penev <rosenp@gmail.com>,
	linux-wireless <linux-wireless@vger.kernel.org>,
	Samuel Sieb <samuel@sieb.net>,
	Alexander Duyck <alexander.h.duyck@linux.intel.com>,
	iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org
Subject: Re: MT76x2U crashes XHCI driver on AMD Ryzen system
Date: Mon, 4 Mar 2019 08:10:38 +0100	[thread overview]
Message-ID: <20190304071037.GA2787@redhat.com> (raw)
In-Reply-To: <20190228134029.GC1594@8bytes.org>

On Thu, Feb 28, 2019 at 02:40:29PM +0100, Joerg Roedel wrote:
> On Thu, Feb 28, 2019 at 01:19:48PM +0100, Stanislaw Gruszka wrote:
> > Nevermind, the patch is wrong, s->dma_address is initalized in sg_num_pages().
> 
> Yes, it is. In sg_num_pages() the offset into the IOMMU mapping is
> stored in s->dma_address, taking also the segment boundary mask into
> account. map_sg() later only adds the base-address to that.

I have some more info about the issues in
https://bugzilla.kernel.org/show_bug.cgi?id=202673 

We have some bugs in mt76. Apparently we should not use
page_frag_alloc() with size bigger than PAGE_SIZE as page_frag_alloc()
can fallback to single page allocation. And also we should not make
sizes unaligned as pointed in commit:
3bed3cc4156e ("net: Do not allocate page fragments that are not skb aligned"

However after fixing that mt76usb still did not work. To make things
work we had to change rx frag size from 2048 to PAGE_SIZE and change
virt_to_head_page() to virt_to_page() when setting SG's.

I think I understand why first change was needed. If we do 2 separate
dma maps of 2 different buffers in single page i.e (PAGE + off=0
and PAGE + off=2048) it causes problem. So either map_sg() return
error which mt76usb does not handle correctly or there is issue
in AMD IOMMU because two dma maps use the same page.

But I don't understand why the second change was needed. Without
it we have issue with incorrect page->_refcount . It is somehow
related with AMD IOMMU, because on different platforms we do not
have such problems.

Joerg, could you look at this ? Thanks. 

Stanislaw

  reply	other threads:[~2019-03-04  7:10 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAKxU2N9o5WeUwFMUwwXKHaPj7R+oiSKV1c2n8RtXwGNZRtw5Sw@mail.gmail.com>
     [not found] ` <CAJ0CqmVNF83bWgc+LSQ3_i=zfp-sXC5Nf=nKfqB3SWa8r7sKdQ@mail.gmail.com>
     [not found]   ` <83A1D243-9073-48D1-9F26-5A2581DCB829@gmail.com>
     [not found]     ` <CAJ0CqmUgPWNJtCW4Q__sOtB8w-YtwW+uZy7crxMNrmSgQ6OFyA@mail.gmail.com>
     [not found]       ` <1547404075.1582.0@smtp.gmail.com>
     [not found]         ` <CAJ0CqmU7k5i26g7dGPxNdts7Gm67W6qNsr4vYuW05ugsEF1ohw@mail.gmail.com>
     [not found]           ` <CAKxU2N-+CTaRdJMFVRdozJ5TTpN+_4thiDRBJBFq8gGtuRVYvA@mail.gmail.com>
     [not found]             ` <20190114091841.GA23045@localhost.localdomain>
     [not found]               ` <CAKxU2N8ioMszBCyQcH7CVhgBdW4aj7yZ+kYQe14DCV5OSAnxrg@mail.gmail.com>
     [not found]                 ` <20190115090400.GA2267@localhost.localdomain>
2019-02-18 14:37                   ` MT76x2U crashes XHCI driver on AMD Ryzen system Stanislaw Gruszka
2019-02-18 15:15                     ` Lorenzo Bianconi
2019-02-18 17:01                     ` Robin Murphy
2019-02-19 11:08                       ` Stanislaw Gruszka
2019-02-26 10:05                     ` Joerg Roedel
2019-02-26 10:34                       ` Stanislaw Gruszka
2019-02-26 10:44                         ` Joerg Roedel
2019-02-26 11:24                           ` Stanislaw Gruszka
2019-02-28  9:04                             ` Stanislaw Gruszka
2019-02-28 10:42                               ` Stanislaw Gruszka
2019-02-28 12:19                                 ` Stanislaw Gruszka
2019-02-28 13:40                                   ` Joerg Roedel
2019-03-04  7:10                                     ` Stanislaw Gruszka [this message]
2019-03-04  7:20                                       ` Rosen Penev
2019-03-11  8:43                                         ` Stanislaw Gruszka
2019-03-11  9:03                                           ` [PATCH] iommu/amd: fix sg->dma_address for sg->offset bigger than PAGE_SIZE Stanislaw Gruszka
2019-03-11 15:47                                             ` Alexander Duyck
2019-03-12  7:08                                               ` Stanislaw Gruszka
2019-03-12 15:18                                                 ` Alexander Duyck
2019-03-13  9:03                                                   ` [PATCH v2] " Stanislaw Gruszka
2019-03-18 10:17                                                     ` Joerg Roedel
2019-03-12  7:13                                           ` MT76x2U crashes XHCI driver on AMD Ryzen system Stanislaw Gruszka

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=20190304071037.GA2787@redhat.com \
    --to=sgruszka@redhat.com \
    --cc=alexander.h.duyck@linux.intel.com \
    --cc=iommu@lists.linux-foundation.org \
    --cc=joro@8bytes.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=lorenzo.bianconi@redhat.com \
    --cc=rosenp@gmail.com \
    --cc=samuel@sieb.net \
    /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).