From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: usb HC busted? From: Mathias Nyman Message-Id: <06226ecb-baad-cc36-e9e3-797dabb0aa5e@linux.intel.com> Date: Wed, 6 Jun 2018 17:12:21 +0300 To: Sudip Mukherjee Cc: Mathias Nyman , linux-usb@vger.kernel.org, lukaszx.szulc@intel.com, Christoph Hellwig , Marek Szyprowski , iommu@lists.linux-foundation.org, Andy Shevchenko List-ID: T24gMDQuMDYuMjAxOCAxODoyOCwgU3VkaXAgTXVraGVyamVlIHdyb3RlOgo+IE9uIFRodSwgTWF5 IDI0LCAyMDE4IGF0IDA0OjM1OjM0UE0gKzAzMDAsIE1hdGhpYXMgTnltYW4gd3JvdGU6Cj4+Cj4+ IExvZyBzaG93IHR3byByaW5ncyBoYXZpbmcgdGhlIHNhbWUgVFJCIHNlZ21lbnQgZG1hIGFkZHJl c3MsIHRoaXMgd2lsbCBjb21wbGV0ZWx5IG1lc3MgdXAgdGhlIHRyYW5zZmVyOgo+Pgo+PiBXaGls ZSBhbGxvY2F0aW5nIHJpZ3MgdGhlIGVucXVlIHBvaW50ZXJzIGZvciB0aGUgdHdvIHJpbmdzIGFy ZSB0aGUgc2FtZToKPj4KPj4gNDYxLjg1OTMxNTogeGhjaV9yaW5nX2FsbG9jOiBJU09DIGVmYTRl NTgwOiBlbnEgMHgwMDAwMDAwMDMzMzg2MDAwKDB4MDAwMDAwMDAzMzM4NjAwMCkgZGVxIDB4MDAw MDAwMDAzMzM4NjAwMCgweDAwMDAwMDAwMzMzODYwMDApIHNlZ3MgMiBzdHJlYW0gMCAuLi5icwo+ PiA0NjEuODU5MzIwOiB4aGNpX3JpbmdfYWxsb2M6IElTT0MgZjBjZTFmMDA6IGVucSAweDAwMDAw MDAwMzMzODYwMDAoMHgwMDAwMDAwMDMzMzg2MDAwKSBkZXEgMHgwMDAwMDAwMDMzMzg2MDAwKDB4 MDAwMDAwMDAzMzM4NjAwMCkgc2VncyAyIHN0cmVhbSAwIC4uLgo+Pgo+PiBTbyBzb21ldGhpbmcg Z29lcyByZWFsbHkgd3Jvbmcgd2hlbiBhbGxvY2F0aW5nIG9yIHNldHRpbmcgdXAgdGhlIHJpbmdz IGluIG9uZSBvZiB0aGVzZSBmdW5jdGlvbnM6Cj4+Cj4+IFRvIHZlcmlmeSBhbmQgcnVsZSBvdXQg ZG1hX3Bvb2xfemFsbG9jKCksIGNvdWxkIHlvdSBhcHBseSB0aGUgYXR0YWNoZWQgcGF0Y2ggYW5k IHJlcHJvZHVjZSB3aXRoIG5ldyBsb2dzPwo+IAo+IEkgc3Bva2UgdG9vIHNvb24gaW4gbXkgeWVz dGVyZGF5J3MgbWFpbC4gV2Ugd2VyZSBhYmxlIHRvIHJlcHJvZHVjZSBpdAo+IG9uIHRoZSBhdXRv bWF0ZWQgdGVzdHMuIFRoZSBsb2cgYW5kIHRoZSB0cmFjZSBpcyBhdDoKPiBodHRwczovL2RyaXZl Lmdvb2dsZS5jb20vb3Blbj9pZD0xaC0zci0xbGZqZzhvYmxCR2t6ZFJJcTh6M1pOZ0daeC0KPiAK PiBXaWxsIHJlcXVlc3QgeW91IHRvIGhhdmUgYSBsb29rIGF0IGl0Lgo+IAoKT2RkIGFuZCB1bmxp a2VseSwgYnV0IHRvIG1lIHRoaXMgbG9va3MgbGlrZSBzb21lIGlzc3VlIGluIGFsbG9jYXRpbmcg ZG1hIG1lbW9yeQpmcm9tIHBvb2wgdXNpbmcgZG1hX3Bvb2xfemFsbG9jKCkKCkFkZGluZyBwZW9w bGUgd2l0aCBETUEga25vd2xlZGdlIHRvIGNjLCBtYXliZSBzb21lb25lIGtub3dzIHdoYXQgaXMg Z29pbmcgb24uCgpIZXJlJ3MgdGhlIHN0b3J5OgpTdWRpcCBzZWVzIHVzYiBpc3N1ZXMgb24gYSBJ bnRlbCBBdG9tIGJhc2VkIGJvYXJkIHdpdGggNC4xNC4yIGtlcm5lbC4KQWxsIHRyYWNpbmcgcG9p bnRzIHRvIGRtYV9wb29sX3phbGxvYygpIHJldHVybmluZyB0aGUgc2FtZSBkbWEgYWRkcmVzcyBi bG9jayBvbgpjb25zZWN1dGl2ZSBjYWxscy4KCkluIHRoZSBmYWlsaW5nIGNhc2UgZG1hX3Bvb2xf emFsbG9jKCkgaXMgY2FsbGVkIDMgLSA2dXMgYXBhcnQuCgo8Li4uPi0yNjM2MiBbMDAyXSAuLi4u ICAxMTg2Ljc1NjczOTogeGhjaV9yaW5nX21lbV9kZXRhaWw6IE1BVFRVIHhoY2lfc2VnbWVudF9h bGxvYyBkbWEgQCAweDAwMDAwMDAwMmQ5MmIwMDAKPC4uLj4tMjYzNjIgWzAwMl0gLi4uLiAgMTE4 Ni43NTY3NDU6IHhoY2lfcmluZ19tZW1fZGV0YWlsOiBNQVRUVSB4aGNpX3NlZ21lbnRfYWxsb2Mg ZG1hIEAgMHgwMDAwMDAwMDJkOTJiMDAwCjwuLi4+LTI2MzYyIFswMDJdIC4uLi4gIDExODYuNzU2 NzQ4OiB4aGNpX3JpbmdfbWVtX2RldGFpbDogTUFUVFUgeGhjaV9zZWdtZW50X2FsbG9jIGRtYSBA IDB4MDAwMDAwMDAyZDkyYjAwMAoKZG1hX3Bvb2xfemFsbG9jKCkgaXMgY2FsbGVkIGZyb20geGhj aV9zZWdtZW50X2FsbG9jKCkgaW4gZHJpdmVycy91c2IvaG9zdC94aGNpLW1lbS5jCnNlZToKaHR0 cHM6Ly9lbGl4aXIuYm9vdGxpbi5jb20vbGludXgvdjQuMTQuMi9zb3VyY2UvZHJpdmVycy91c2Iv aG9zdC94aGNpLW1lbS5jI0w1MgoKcHJpbnRzIGFib3ZlIGFyZSBjdXN0b20gdHJhY2VzIGFkZGVk IHJpZ2h0IGFmdGVyIGRtYV9wb29sX3phbGxvYygpCkBAIC00NCwxMCArNDQsMTUgQEAgc3RhdGlj IHN0cnVjdCB4aGNpX3NlZ21lbnQgKnhoY2lfc2VnbWVudF9hbGxvYyhzdHJ1Y3QgeGhjaV9oY2Qg KnhoY2ksCiAgCQlyZXR1cm4gTlVMTDsKICAJfQogIAorCXhoY2lfZGJnX3RyYWNlKHhoY2ksICB0 cmFjZV94aGNpX3JpbmdfbWVtX2RldGFpbCwKKwkJICAgICAgICJNQVRUVSB4aGNpX3NlZ21lbnRf YWxsb2MgZG1hIEAgJXBhZCIsICZkbWEpOworCgpBbnkgaWRlYSB3aGF0J3MgZ29pbmcgb24/CmRt YV9wb29sX2FsbG9jKCkgaGFzIGEgY29tbWVudCB0aGF0IGl0IGRyb3BzICZwb29sLT5sb2NrIGlm IGl0IG5lZWRzIHRvIGFsbG9jYXRlCmEgcGFnZSwgY2FuIGl0IGJlIHJlbGF0ZWQ/CgpUaGFua3MK LU1hdGhpYXMKLS0tClRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBsaXN0OiBzZW5kIHRoZSBsaW5l ICJ1bnN1YnNjcmliZSBsaW51eC11c2IiIGluCnRoZSBib2R5IG9mIGEgbWVzc2FnZSB0byBtYWpv cmRvbW9Admdlci5rZXJuZWwub3JnCk1vcmUgbWFqb3Jkb21vIGluZm8gYXQgIGh0dHA6Ly92Z2Vy Lmtlcm5lbC5vcmcvbWFqb3Jkb21vLWluZm8uaHRtbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mathias Nyman Subject: Re: usb HC busted? Date: Wed, 6 Jun 2018 17:12:21 +0300 Message-ID: <06226ecb-baad-cc36-e9e3-797dabb0aa5e@linux.intel.com> References: <20180518100650.kfw6wijpncpvqx7j@debian> <6790b352-add3-5531-115c-15db6c9c744d@intel.com> <20180518130458.v73syr3fltdzdzzi@debian> <881d576b-c7c1-ef74-c6bc-68b81371e7e0@intel.com> <20180523212956.n4ztasdffg2aeaku@debian> <80eace7a-976d-65a5-a353-54a2b18edd06@linux.intel.com> <20180604152848.db3msouyi4ektvv6@debian> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20180604152848.db3msouyi4ektvv6@debian> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: Sudip Mukherjee Cc: Mathias Nyman , linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Christoph Hellwig , iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, Andy Shevchenko , lukaszx.szulc-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org List-Id: iommu@lists.linux-foundation.org On 04.06.2018 18:28, Sudip Mukherjee wrote: > On Thu, May 24, 2018 at 04:35:34PM +0300, Mathias Nyman wrote: >> >> Log show two rings having the same TRB segment dma address, this will completely mess up the transfer: >> >> While allocating rigs the enque pointers for the two rings are the same: >> >> 461.859315: xhci_ring_alloc: ISOC efa4e580: enq 0x0000000033386000(0x0000000033386000) deq 0x0000000033386000(0x0000000033386000) segs 2 stream 0 ...bs >> 461.859320: xhci_ring_alloc: ISOC f0ce1f00: enq 0x0000000033386000(0x0000000033386000) deq 0x0000000033386000(0x0000000033386000) segs 2 stream 0 ... >> >> So something goes really wrong when allocating or setting up the rings in one of these functions: >> >> To verify and rule out dma_pool_zalloc(), could you apply the attached patch and reproduce with new logs? > > I spoke too soon in my yesterday's mail. We were able to reproduce it > on the automated tests. The log and the trace is at: > https://drive.google.com/open?id=1h-3r-1lfjg8oblBGkzdRIq8z3ZNgGZx- > > Will request you to have a look at it. > Odd and unlikely, but to me this looks like some issue in allocating dma memory from pool using dma_pool_zalloc() Adding people with DMA knowledge to cc, maybe someone knows what is going on. 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() @@ -44,10 +44,15 @@ static struct xhci_segment *xhci_segment_alloc(struct xhci_hcd *xhci, return NULL; } + xhci_dbg_trace(xhci, trace_xhci_ring_mem_detail, + "MATTU xhci_segment_alloc dma @ %pad", &dma); + Any idea what's going on? dma_pool_alloc() has a comment that it drops &pool->lock if it needs to allocate a page, can it be related? Thanks -Mathias