From: Mathias Nyman <mathias.nyman-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
To: Sudip Mukherjee
<sudipm.mukherjee-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Andy Shevchenko
<andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
Cc: Mathias Nyman
<mathias.nyman-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>,
Andy Shevchenko
<andy.shevchenko-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
lukaszx.szulc-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org
Subject: Re: usb HC busted?
Date: Thu, 21 Jun 2018 14:01:30 +0300 [thread overview]
Message-ID: <2b4fe87a-3706-0aa8-2b61-a9c1d1352a7a@linux.intel.com> (raw)
In-Reply-To: <20180621005332.5uy74tkjoel6w4xy@debian>
On 21.06.2018 03:53, Sudip Mukherjee wrote:
> Hi Mathias, Andy,
>
> On Thu, Jun 07, 2018 at 10:40:03AM +0300, Mathias Nyman wrote:
>> On 06.06.2018 19:45, Sudip Mukherjee wrote:
>>> Hi Andy,
>>>
>>> And we meet again. :)
>>>
>>> On Wed, Jun 06, 2018 at 06:36:35PM +0300, Andy Shevchenko wrote:
>>>> On Wed, 2018-06-06 at 17:12 +0300, Mathias Nyman wrote:
>>>>> On 04.06.2018 18:28, Sudip Mukherjee wrote:
>>>>>> On Thu, May 24, 2018 at 04:35:34PM +0300, Mathias Nyman wrote:
>>>>>>>
>>>>
>>>>> Odd and unlikely, but to me this looks like some issue in allocating
>>>>> dma memory
>>>>> from pool using dma_pool_zalloc()
>>>>>
>>>>>
>>>>> Here's the story:
>>>>> Sudip sees usb issues on a Intel Atom based board with 4.14.2 kernel.
>>>>> All tracing points to dma_pool_zalloc() returning the same dma address
>>>>> block on
>>>>> consecutive calls.
>>>>>
>>>>> In the failing case dma_pool_zalloc() is called 3 - 6us apart.
>>>>>
>>>>> <...>-26362 [002] .... 1186.756739: xhci_ring_mem_detail: MATTU
>>>>> xhci_segment_alloc dma @ 0x000000002d92b000
>>>>> <...>-26362 [002] .... 1186.756745: xhci_ring_mem_detail: MATTU
>>>>> xhci_segment_alloc dma @ 0x000000002d92b000
>>>>> <...>-26362 [002] .... 1186.756748: xhci_ring_mem_detail: MATTU
>>>>> xhci_segment_alloc dma @ 0x000000002d92b000
>>>>>
>>>>> dma_pool_zalloc() is called from xhci_segment_alloc() in
>>>>> drivers/usb/host/xhci-mem.c
>>>>> see:
>>>>> https://elixir.bootlin.com/linux/v4.14.2/source/drivers/usb/host/xhci-
>>>>> mem.c#L52
>>>>>
>>>>> prints above are custom traces added right after dma_pool_zalloc()
>>>>
>>>> For better understanding it would be good to have dma_pool_free() calls
>>>> debugged as well.
>>>
>>
>> Sudip has a full (394M unpacked) trace at:
>> https://drive.google.com/open?id=1h-3r-1lfjg8oblBGkzdRIq8z3ZNgGZx-
>>
>
> <snip>
>
>> But then it gets stuck, for the whole ring2 dma_pool_zalloc() just returns the same dma address as the last segment for
>> ring1:0x2d92b000. Last part of trace snippet is just another ring being freed.
>
> A gentle ping on this. Any idea on what the problem might be and any
> possible fix?
>
I tried to reproduce it by quickly hacking xhci to allocate and free 50 segments each time
we normally allocate one segment from dmapool.
I let it run for 3 days on a Atom based platform, but could not reproduce it.
xhci testhack can be found here:
git://git.kernel.org/pub/scm/linux/kernel/git/mnyman/xhci.git dmapool-test
https://git.kernel.org/pub/scm/linux/kernel/git/mnyman/xhci.git/log/?h=dmapool-test
Tested by just leaving the following running for a few days:
while true; do echo 0 > authorized; sleep 3; echo 1 > authorized; sleep 3; done;
For some usb device (for example: /sys/bus/usb/devices/1-8)
Then grep logs for "MATTU dmatest match! "
Can you share a bit more details on the platform you are using, and what types of test you are running.
Does my test above trigger the case? (show "MATTU dmatest match!")
-Mathias
next prev parent reply other threads:[~2018-06-21 11:01 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20180518100650.kfw6wijpncpvqx7j@debian>
[not found] ` <6790b352-add3-5531-115c-15db6c9c744d@intel.com>
[not found] ` <20180518130458.v73syr3fltdzdzzi@debian>
[not found] ` <881d576b-c7c1-ef74-c6bc-68b81371e7e0@intel.com>
[not found] ` <20180523212956.n4ztasdffg2aeaku@debian>
[not found] ` <80eace7a-976d-65a5-a353-54a2b18edd06@linux.intel.com>
[not found] ` <20180604152848.db3msouyi4ektvv6@debian>
2018-06-06 14:12 ` usb HC busted? Mathias Nyman
[not found] ` <06226ecb-baad-cc36-e9e3-797dabb0aa5e-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2018-06-06 15:36 ` Andy Shevchenko
[not found] ` <42ec4ab07d96b4302b875ac9c5eb76675bf85690.camel-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2018-06-06 16:45 ` Sudip Mukherjee
2018-06-07 7:40 ` Mathias Nyman
[not found] ` <2e8829c2-850d-6bca-5f0c-58a809dc9499-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2018-06-08 9:07 ` Sudip Mukherjee
2018-06-21 0:53 ` Sudip Mukherjee
2018-06-21 11:01 ` Mathias Nyman [this message]
[not found] ` <2b4fe87a-3706-0aa8-2b61-a9c1d1352a7a-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2018-06-25 16:15 ` Sudip Mukherjee
2018-06-27 11:59 ` Sudip Mukherjee
2018-06-27 12:20 ` Sudip Mukherjee
2018-06-29 11:41 ` Mathias Nyman
[not found] ` <4b269009-7593-a41f-9f0f-203ee174b52e-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2018-06-30 21:07 ` Sudip Mukherjee
2018-07-17 11:41 ` Sudip Mukherjee
2018-07-17 12:04 ` Greg KH
[not found] ` <20180717120411.GB28592-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2018-07-17 13:20 ` Sudip Mukherjee
2018-07-17 13:53 ` Greg KH
2018-07-17 14:31 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1807171029310.1689-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2018-07-17 15:52 ` Greg KH
[not found] ` <20180717155259.GB2416-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2018-07-17 15:59 ` Sudip Mukherjee
2018-07-17 17:01 ` Sudip Mukherjee
2018-07-17 14:28 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1807171022001.1689-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2018-07-17 14:40 ` Sudip Mukherjee
2018-07-17 14:49 ` Sudip Mukherjee
2018-07-17 15:08 ` Alan Stern
2018-07-17 15:10 ` Sudip Mukherjee
2018-07-19 10:59 ` Mathias Nyman
[not found] ` <f7801c24-fa98-6338-0b26-33a0ac9498bb-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2018-07-19 11:34 ` Sudip Mukherjee
2018-07-19 15:42 ` Mathias Nyman
[not found] ` <ab814c88-0857-5444-57da-34c21b8d7f6c-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2018-07-19 17:32 ` Sudip Mukherjee
2018-07-20 11:10 ` Mathias Nyman
[not found] ` <d3f5575c-c75b-ea16-6da9-b2fe3cc9c102-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2018-07-20 12:54 ` Sudip Mukherjee
2018-07-21 10:55 ` Sudip Mukherjee
2018-07-19 14:57 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1807191046180.1308-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2018-07-20 11:46 ` Mathias Nyman
[not found] ` <f8cfa055-cfd8-db66-a386-72bf904e17cd-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2018-07-20 14:09 ` Alan Stern
2018-06-06 16:42 ` Sudip Mukherjee
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=2b4fe87a-3706-0aa8-2b61-a9c1d1352a7a@linux.intel.com \
--to=mathias.nyman-vuqaysv1563yd54fqh9/ca@public.gmane.org \
--cc=andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=andy.shevchenko-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=hch-jcswGhMUV9g@public.gmane.org \
--cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=lukaszx.szulc-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=mathias.nyman-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=sudipm.mukherjee-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.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