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: <2e8829c2-850d-6bca-5f0c-58a809dc9499@linux.intel.com> Date: Thu, 7 Jun 2018 10:40:03 +0300 To: Sudip Mukherjee , Andy Shevchenko Cc: Mathias Nyman , linux-usb@vger.kernel.org, lukaszx.szulc@intel.com, Christoph Hellwig , Marek Szyprowski , iommu@lists.linux-foundation.org List-ID: T24gMDYuMDYuMjAxOCAxOTo0NSwgU3VkaXAgTXVraGVyamVlIHdyb3RlOgo+IEhpIEFuZHksCj4g Cj4gQW5kIHdlIG1lZXQgYWdhaW4uIDopCj4gCj4gT24gV2VkLCBKdW4gMDYsIDIwMTggYXQgMDY6 MzY6MzVQTSArMDMwMCwgQW5keSBTaGV2Y2hlbmtvIHdyb3RlOgo+PiBPbiBXZWQsIDIwMTgtMDYt MDYgYXQgMTc6MTIgKzAzMDAsIE1hdGhpYXMgTnltYW4gd3JvdGU6Cj4+PiBPbiAwNC4wNi4yMDE4 IDE4OjI4LCBTdWRpcCBNdWtoZXJqZWUgd3JvdGU6Cj4+Pj4gT24gVGh1LCBNYXkgMjQsIDIwMTgg YXQgMDQ6MzU6MzRQTSArMDMwMCwgTWF0aGlhcyBOeW1hbiB3cm90ZToKPj4+Pj4KPj4KPj4+IE9k ZCBhbmQgdW5saWtlbHksIGJ1dCB0byBtZSB0aGlzIGxvb2tzIGxpa2Ugc29tZSBpc3N1ZSBpbiBh bGxvY2F0aW5nCj4+PiBkbWEgbWVtb3J5Cj4+PiBmcm9tIHBvb2wgdXNpbmcgZG1hX3Bvb2xfemFs bG9jKCkKPj4+Cj4+PiBBZGRpbmcgcGVvcGxlIHdpdGggRE1BIGtub3dsZWRnZSB0byBjYywgbWF5 YmUgc29tZW9uZSBrbm93cyB3aGF0IGlzCj4+PiBnb2luZyBvbi4KPj4+Cj4+PiBIZXJlJ3MgdGhl IHN0b3J5Ogo+Pj4gU3VkaXAgc2VlcyB1c2IgaXNzdWVzIG9uIGEgSW50ZWwgQXRvbSBiYXNlZCBi b2FyZCB3aXRoIDQuMTQuMiBrZXJuZWwuCj4+PiBBbGwgdHJhY2luZyBwb2ludHMgdG8gZG1hX3Bv b2xfemFsbG9jKCkgcmV0dXJuaW5nIHRoZSBzYW1lIGRtYSBhZGRyZXNzCj4+PiBibG9jayBvbgo+ Pj4gY29uc2VjdXRpdmUgY2FsbHMuCj4+Pgo+Pj4gSW4gdGhlIGZhaWxpbmcgY2FzZSBkbWFfcG9v bF96YWxsb2MoKSBpcyBjYWxsZWQgMyAtIDZ1cyBhcGFydC4KPj4+Cj4+PiA8Li4uPi0yNjM2MiBb MDAyXSAuLi4uICAxMTg2Ljc1NjczOTogeGhjaV9yaW5nX21lbV9kZXRhaWw6IE1BVFRVCj4+PiB4 aGNpX3NlZ21lbnRfYWxsb2MgZG1hIEAgMHgwMDAwMDAwMDJkOTJiMDAwCj4+PiA8Li4uPi0yNjM2 MiBbMDAyXSAuLi4uICAxMTg2Ljc1Njc0NTogeGhjaV9yaW5nX21lbV9kZXRhaWw6IE1BVFRVCj4+ PiB4aGNpX3NlZ21lbnRfYWxsb2MgZG1hIEAgMHgwMDAwMDAwMDJkOTJiMDAwCj4+PiA8Li4uPi0y NjM2MiBbMDAyXSAuLi4uICAxMTg2Ljc1Njc0ODogeGhjaV9yaW5nX21lbV9kZXRhaWw6IE1BVFRV Cj4+PiB4aGNpX3NlZ21lbnRfYWxsb2MgZG1hIEAgMHgwMDAwMDAwMDJkOTJiMDAwCj4+Pgo+Pj4g ZG1hX3Bvb2xfemFsbG9jKCkgaXMgY2FsbGVkIGZyb20geGhjaV9zZWdtZW50X2FsbG9jKCkgaW4K Pj4+IGRyaXZlcnMvdXNiL2hvc3QveGhjaS1tZW0uYwo+Pj4gc2VlOgo+Pj4gaHR0cHM6Ly9lbGl4 aXIuYm9vdGxpbi5jb20vbGludXgvdjQuMTQuMi9zb3VyY2UvZHJpdmVycy91c2IvaG9zdC94aGNp LQo+Pj4gbWVtLmMjTDUyCj4+Pgo+Pj4gcHJpbnRzIGFib3ZlIGFyZSBjdXN0b20gdHJhY2VzIGFk ZGVkIHJpZ2h0IGFmdGVyIGRtYV9wb29sX3phbGxvYygpCj4+Cj4+IEZvciBiZXR0ZXIgdW5kZXJz dGFuZGluZyBpdCB3b3VsZCBiZSBnb29kIHRvIGhhdmUgZG1hX3Bvb2xfZnJlZSgpIGNhbGxzCj4+ IGRlYnVnZ2VkIGFzIHdlbGwuCj4gCj4gU28sIEkgYW0gYWRkaW5nIGFub3RoZXIgdHJhY2UgZXZl bnQgZm9yIGRtYV9wb29sX2ZyZWUoKSBhbmQgY29udGludWluZwo+IHdpdGggdGhlIHRlc3QuIElz IHRoZXJlIGFueXRoaW5nIGVsc2UgdGhhdCBJIHNob3VsZCBiZSBhZGRpbmcgYXMgZGVidWc/Cj4g CgpUaGUgcGF0Y2ggdHJhY2VkIGJvdGggZG1hX3Bvb2xfemFsbG9jKCkgYW5kIGRtYV9wb29sX2Zy ZWUoKSBjYWxscyBmcm9tIHhoY2ksCm5vIG5lZWQgdG8gcmV0cnkuCgpTdWRpcCBoYXMgYSBmdWxs ICgzOTRNIHVucGFja2VkKSB0cmFjZSBhdDoKaHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL29wZW4/ aWQ9MWgtM3ItMWxmamc4b2JsQkdremRSSXE4ejNaTmdHWngtCgpJbnRlcmVzdGluZyBwYXJ0IGlz OgoKPC4uLj4tMjYzNjIgWzAwMl0gLi4uLiAgMTE4Ni43NTY3Mjg6IHhoY2lfcmluZ19tZW1fZGV0 YWlsOiBNQVRUVSB4aGNpX3NlZ21lbnRfYWxsb2MgZG1hIEAgMHgwMDAwMDAwMDJkMzRkMDAwCjwu Li4+LTI2MzYyIFswMDJdIC4uLi4gIDExODYuNzU2NzM1OiB4aGNpX3JpbmdfbWVtX2RldGFpbDog TUFUVFUgeGhjaSBzZWdtZW50IGFsbG9jIHNlZy0+ZG1hIEAgMHgwMDAwMDAwMDJkMzRkMDAwCjwu Li4+LTI2MzYyIFswMDJdIC4uLi4gIDExODYuNzU2NzM5OiB4aGNpX3JpbmdfbWVtX2RldGFpbDog TUFUVFUgeGhjaV9zZWdtZW50X2FsbG9jIGRtYSBAIDB4MDAwMDAwMDAyZDkyYjAwMAo8Li4uPi0y NjM2MiBbMDAyXSAuLi4uICAxMTg2Ljc1Njc0MDogeGhjaV9yaW5nX21lbV9kZXRhaWw6IE1BVFRV IHhoY2kgc2VnbWVudCBhbGxvYyBzZWctPmRtYSBAIDB4MDAwMDAwMDAyZDkyYjAwMAo8Li4uPi0y NjM2MiBbMDAyXSAuLi4uICAxMTg2Ljc1Njc0MzogeGhjaV9yaW5nX2FsbG9jOiBJU09DIGVlZmEw NTgwOiBlbnEgMHgwMDAwMDAwMDJkMzRkMDAwKDB4MDAwMDAwMDAyZDM0ZDAwMCkgZGVxIDB4MDAw MDAwMDAyZDM0ZDAwMCgweDAwMDAwMDAwMmQzNGQwMDApIHNlZ3MgMiBzdHJlYW0gMCBmcmVlX3Ry YnMgNTA5IGJvdW5jZSAxNyBjeWNsZSAxCjwuLi4+LTI2MzYyIFswMDJdIC4uLi4gIDExODYuNzU2 NzQ1OiB4aGNpX3JpbmdfbWVtX2RldGFpbDogTUFUVFUgeGhjaV9zZWdtZW50X2FsbG9jIGRtYSBA IDB4MDAwMDAwMDAyZDkyYjAwMAo8Li4uPi0yNjM2MiBbMDAyXSAuLi4uICAxMTg2Ljc1Njc0Njog eGhjaV9yaW5nX21lbV9kZXRhaWw6IE1BVFRVIHhoY2kgc2VnbWVudCBhbGxvYyBzZWctPmRtYSBA IDB4MDAwMDAwMDAyZDkyYjAwMAo8Li4uPi0yNjM2MiBbMDAyXSAuLi4uICAxMTg2Ljc1Njc0ODog eGhjaV9yaW5nX21lbV9kZXRhaWw6IE1BVFRVIHhoY2lfc2VnbWVudF9hbGxvYyBkbWEgQCAweDAw MDAwMDAwMmQ5MmIwMDAKPC4uLj4tMjYzNjIgWzAwMl0gLi4uLiAgMTE4Ni43NTY3NTE6IHhoY2lf cmluZ19tZW1fZGV0YWlsOiBNQVRUVSB4aGNpIHNlZ21lbnQgYWxsb2Mgc2VnLT5kbWEgQCAweDAw MDAwMDAwMmQ5MmIwMDAKPC4uLj4tMjYzNjIgWzAwMl0gLi4uLiAgMTE4Ni43NTY3NTI6IHhoY2lf cmluZ19hbGxvYzogSVNPQyBmMTlkN2M4MDogZW5xIDB4MDAwMDAwMDAyZDkyYjAwMCgweDAwMDAw MDAwMmQ5MmIwMDApIGRlcSAweDAwMDAwMDAwMmQ5MmIwMDAoMHgwMDAwMDAwMDJkOTJiMDAwKSBz ZWdzIDIgc3RyZWFtIDAgZnJlZV90cmJzIDUwOSBib3VuY2UgMTcgY3ljbGUgMQo8Li4uPi0yNjM2 MiBbMDAyXSBkLi4xICAxMTg2Ljc1Njc2MTogeGhjaV9xdWV1ZV90cmI6IENNRDogQ29uZmlndXJl IEVuZHBvaW50IENvbW1hbmQ6IGN0eCAwMDAwMDAwMDJjZTk2MDAwIHNsb3QgNyBmbGFncyBkOkMK PC4uLj4tMjYzNjIgWzAwMl0gZC4uMSAgMTE4Ni43NTY3NjI6IHhoY2lfaW5jX2VucTogQ01EIGVk OTMwYjgwOiBlbnEgMHgwMDAwMDAwMDJkOTNhZGIwKDB4MDAwMDAwMDAyZDkzYTAwMCkgZGVxIDB4 MDAwMDAwMDAyZDkzYWRhMCgweDAwMDAwMDAwMmQ5M2EwMDApIHNlZ3MgMSBzdHJlYW0gMCBmcmVl X3RyYnMgMjUzIGJvdW5jZSAwIFwKY3ljbGUgMQo8Li4uPi0yNjM2MiBbMDAyXSAuLi4uICAxMTg2 Ljc1NzA2NjogeGhjaV9kYmdfY29udGV4dF9jaGFuZ2U6IFN1Y2Nlc3NmdWwgRW5kcG9pbnQgQ29u ZmlndXJlIGNvbW1hbmQKPC4uLj4tMjYzNjIgWzAwMl0gLi4uLiAgMTE4Ni43NTcwNzI6IHhoY2lf cmluZ19mcmVlOiBJU09DIGVlZmQ5MzgwOiBlbnEgMHgwMDAwMDAwMDJjNDgyMDAwKDB4MDAwMDAw MDAyYzQ4MjAwMCkgZGVxIDB4MDAwMDAwMDAyYzQ4MjAwMCgweDAwMDAwMDAwMmM0ODIwMDApIHNl Z3MgMiBzdHJlYW0gMCBmcmVlX3RyYnMgNTA5IGJvdW5jZTAgY3ljbGUgMQo8Li4uPi0yNjM2MiBb MDAyXSAuLi4uICAxMTg2Ljc1NzA3NTogeGhjaV9yaW5nX21lbV9kZXRhaWw6IE1BVFRVIHhoY2kg c2VnbWVudCBmcmVlIHNlZy0+ZG1hIEAgZWUyZDIzYzgKPC4uLj4tMjYzNjIgWzAwMl0gLi4uLiAg MTE4Ni43NTcwNzg6IHhoY2lfcmluZ19tZW1fZGV0YWlsOiBNQVRUVSB4aGNpIHNlZ21lbnQgZnJl ZSBzZWctPmRtYSBAIGM3YTkzNDg4CjwuLi4+LTI2MzYyIFswMDJdIC4uLi4gIDExODYuNzU3MDgw OiB4aGNpX3JpbmdfZnJlZTogSVNPQyBlZWYwZDgwMDogZW5xIDB4MDAwMDAwMDAyYzUwYTAwMCgw eDAwMDAwMDAwMmM1MGEwMDApIGRlcSAweDAwMDAwMDAwMmM1MGEwMDAoMHgwMDAwMDAwMDJjNTBh MDAwKSBzZWdzIDIgc3RyZWFtIDAgZnJlZV90cmJzIDUwOSBib3VuY2UwIGN5Y2xlIDEKCldoYXQg aXMgc2hvd24gaXMgdGhlIGFsbG9jYXRpb24gb2YgdHdvIElTT0MgdHJhbnNmZXIgcmluZ3MsIGVh Y2ggcmluZyBoYXMgMiBzZWdtZW50cyAodHdvIGRtYV9wb29sX3phbGxvYygpIGNhbGxzIHBlciBy aW5nKQpGaXJzdCByaW5nIGxvb2tzIG5vcm1hbCwgcmluZzEgZ2V0IGRtYSBtZW1vcnkgYXQgMHgy ZDM0ZDAwMCBmb3IgZmlyc3QgcmluZyBzZWdtZW50LCBhbmQgZG1hIG1lbW9yeSBhdCAweDJkOTJi MDAwIGZvciBzZWNvbmQgc2VnbWVudC4KCkJ1dCB0aGVuIGl0IGdldHMgc3R1Y2ssIGZvciB0aGUg d2hvbGUgcmluZzIgZG1hX3Bvb2xfemFsbG9jKCkganVzdCByZXR1cm5zIHRoZSBzYW1lIGRtYSBh ZGRyZXNzIGFzIHRoZSBsYXN0IHNlZ21lbnQgZm9yCnJpbmcxOjB4MmQ5MmIwMDAuIExhc3QgcGFy dCBvZiB0cmFjZSBzbmlwcGV0IGlzIGp1c3QgYW5vdGhlciByaW5nIGJlaW5nIGZyZWVkLgoKRnVs bCB0ZXN0cGF0Y2ggbG9va2VkIGxpa2UgdGhpczoKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9o b3N0L3hoY2ktbWVtLmMgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktbWVtLmMKaW5kZXggZTVhY2U4 OS4uN2QzNDNhZCAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC94aGNpLW1lbS5jCisrKyBi L2RyaXZlcnMvdXNiL2hvc3QveGhjaS1tZW0uYwpAQCAtNDQsMTAgKzQ0LDE1IEBAIHN0YXRpYyBz dHJ1Y3QgeGhjaV9zZWdtZW50ICp4aGNpX3NlZ21lbnRfYWxsb2Moc3RydWN0IHhoY2lfaGNkICp4 aGNpLAogIAkJcmV0dXJuIE5VTEw7CiAgCX0KICAKKwl4aGNpX2RiZ190cmFjZSh4aGNpLCAgdHJh Y2VfeGhjaV9yaW5nX21lbV9kZXRhaWwsCisJCSAgICAgICAiTUFUVFUgeGhjaV9zZWdtZW50X2Fs bG9jIGRtYSBAICVwYWQiLCAmZG1hKTsKKwogIAlpZiAobWF4X3BhY2tldCkgewogIAkJc2VnLT5i b3VuY2VfYnVmID0ga3phbGxvYyhtYXhfcGFja2V0LCBmbGFncyk7CiAgCQlpZiAoIXNlZy0+Ym91 bmNlX2J1ZikgewogIAkJCWRtYV9wb29sX2ZyZWUoeGhjaS0+c2VnbWVudF9wb29sLCBzZWctPnRy YnMsIGRtYSk7CisJCQl4aGNpX2RiZ190cmFjZSh4aGNpLCAgdHJhY2VfeGhjaV9yaW5nX21lbV9k ZXRhaWwsCisJCQkJICAgICAgICJNQVRUVSB4aGNpIHNlZ21lbnQgZnJlZSBkbWEgQCAlcGFkIiwg JmRtYSk7CiAgCQkJa2ZyZWUoc2VnKTsKICAJCQlyZXR1cm4gTlVMTDsKICAJCX0KQEAgLTU4LDYg KzYzLDkgQEAgc3RhdGljIHN0cnVjdCB4aGNpX3NlZ21lbnQgKnhoY2lfc2VnbWVudF9hbGxvYyhz dHJ1Y3QgeGhjaV9oY2QgKnhoY2ksCiAgCQkJc2VnLT50cmJzW2ldLmxpbmsuY29udHJvbCB8PSBj cHVfdG9fbGUzMihUUkJfQ1lDTEUpOwogIAl9CiAgCXNlZy0+ZG1hID0gZG1hOworCXhoY2lfZGJn X3RyYWNlKHhoY2ksICB0cmFjZV94aGNpX3JpbmdfbWVtX2RldGFpbCwKKwkJICAgICAgICJNQVRU VSB4aGNpIHNlZ21lbnQgYWxsb2Mgc2VnLT5kbWEgQCAlcGFkIiwgJnNlZy0+ZG1hKTsKKwogIAlz ZWctPm5leHQgPSBOVUxMOwogIAogIAlyZXR1cm4gc2VnOwpAQCAtNjcsNiArNzUsOCBAQCBzdGF0 aWMgdm9pZCB4aGNpX3NlZ21lbnRfZnJlZShzdHJ1Y3QgeGhjaV9oY2QgKnhoY2ksIHN0cnVjdCB4 aGNpX3NlZ21lbnQgKnNlZykKICB7CiAgCWlmIChzZWctPnRyYnMpIHsKICAJCWRtYV9wb29sX2Zy ZWUoeGhjaS0+c2VnbWVudF9wb29sLCBzZWctPnRyYnMsIHNlZy0+ZG1hKTsKKwkJeGhjaV9kYmdf dHJhY2UoeGhjaSwgIHRyYWNlX3hoY2lfcmluZ19tZW1fZGV0YWlsLAorCQkJICAgICAgICJNQVRU VSB4aGNpIHNlZ21lbnQgZnJlZSBzZWctPmRtYSBAICVwIiwgJnNlZy0+ZG1hKTsKICAJCXNlZy0+ dHJicyA9IE5VTEw7CiAgCX0KICAJa2ZyZWUoc2VnLT5ib3VuY2VfYnVmKTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvdXNiL2hvc3QveGhjaS10cmFjZS5oIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLXRy YWNlLmgKaW5kZXggMzViZGQwNi4uOTUxZTM3MSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9z dC94aGNpLXRyYWNlLmgKKysrIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLXRyYWNlLmgKQEAgLTcy LDYgKzcyLDExIEBAIERFRklORV9FVkVOVCh4aGNpX2xvZ19tc2csIHhoY2lfZGJnX3JpbmdfZXhw YW5zaW9uLAogIAlUUF9BUkdTKHZhZikKICApOwogIAorREVGSU5FX0VWRU5UKHhoY2lfbG9nX21z ZywgeGhjaV9yaW5nX21lbV9kZXRhaWwsCisJVFBfUFJPVE8oc3RydWN0IHZhX2Zvcm1hdCAqdmFm KSwKKwlUUF9BUkdTKHZhZikKKyk7CisKICBERUNMQVJFX0VWRU5UX0NMQVNTKHhoY2lfbG9nX2N0 eCwKICAJVFBfUFJPVE8oc3RydWN0IHhoY2lfaGNkICp4aGNpLCBzdHJ1Y3QgeGhjaV9jb250YWlu ZXJfY3R4ICpjdHgsCiAgCQkgdW5zaWduZWQgaW50IGVwX251bSksCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mathias Nyman Subject: Re: usb HC busted? Date: Thu, 7 Jun 2018 10:40:03 +0300 Message-ID: <2e8829c2-850d-6bca-5f0c-58a809dc9499@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> <06226ecb-baad-cc36-e9e3-797dabb0aa5e@linux.intel.com> <42ec4ab07d96b4302b875ac9c5eb76675bf85690.camel@linux.intel.com> <20180606164524.n4vb7xre6rykzxih@debian> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20180606164524.n4vb7xre6rykzxih@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 , Andy Shevchenko Cc: Mathias Nyman , linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Christoph Hellwig , iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, lukaszx.szulc-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org List-Id: iommu@lists.linux-foundation.org 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() >>> >>> 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() >> >> For better understanding it would be good to have dma_pool_free() calls >> debugged as well. > > So, I am adding another trace event for dma_pool_free() and continuing > with the test. Is there anything else that I should be adding as debug? > The patch traced both dma_pool_zalloc() and dma_pool_free() calls from xhci, no need to retry. Sudip has a full (394M unpacked) trace at: https://drive.google.com/open?id=1h-3r-1lfjg8oblBGkzdRIq8z3ZNgGZx- Interesting part is: <...>-26362 [002] .... 1186.756728: xhci_ring_mem_detail: MATTU xhci_segment_alloc dma @ 0x000000002d34d000 <...>-26362 [002] .... 1186.756735: xhci_ring_mem_detail: MATTU xhci segment alloc seg->dma @ 0x000000002d34d000 <...>-26362 [002] .... 1186.756739: xhci_ring_mem_detail: MATTU xhci_segment_alloc dma @ 0x000000002d92b000 <...>-26362 [002] .... 1186.756740: xhci_ring_mem_detail: MATTU xhci segment alloc seg->dma @ 0x000000002d92b000 <...>-26362 [002] .... 1186.756743: xhci_ring_alloc: ISOC eefa0580: enq 0x000000002d34d000(0x000000002d34d000) deq 0x000000002d34d000(0x000000002d34d000) segs 2 stream 0 free_trbs 509 bounce 17 cycle 1 <...>-26362 [002] .... 1186.756745: xhci_ring_mem_detail: MATTU xhci_segment_alloc dma @ 0x000000002d92b000 <...>-26362 [002] .... 1186.756746: xhci_ring_mem_detail: MATTU xhci segment alloc seg->dma @ 0x000000002d92b000 <...>-26362 [002] .... 1186.756748: xhci_ring_mem_detail: MATTU xhci_segment_alloc dma @ 0x000000002d92b000 <...>-26362 [002] .... 1186.756751: xhci_ring_mem_detail: MATTU xhci segment alloc seg->dma @ 0x000000002d92b000 <...>-26362 [002] .... 1186.756752: xhci_ring_alloc: ISOC f19d7c80: enq 0x000000002d92b000(0x000000002d92b000) deq 0x000000002d92b000(0x000000002d92b000) segs 2 stream 0 free_trbs 509 bounce 17 cycle 1 <...>-26362 [002] d..1 1186.756761: xhci_queue_trb: CMD: Configure Endpoint Command: ctx 000000002ce96000 slot 7 flags d:C <...>-26362 [002] d..1 1186.756762: xhci_inc_enq: CMD ed930b80: enq 0x000000002d93adb0(0x000000002d93a000) deq 0x000000002d93ada0(0x000000002d93a000) segs 1 stream 0 free_trbs 253 bounce 0 \ cycle 1 <...>-26362 [002] .... 1186.757066: xhci_dbg_context_change: Successful Endpoint Configure command <...>-26362 [002] .... 1186.757072: xhci_ring_free: ISOC eefd9380: enq 0x000000002c482000(0x000000002c482000) deq 0x000000002c482000(0x000000002c482000) segs 2 stream 0 free_trbs 509 bounce0 cycle 1 <...>-26362 [002] .... 1186.757075: xhci_ring_mem_detail: MATTU xhci segment free seg->dma @ ee2d23c8 <...>-26362 [002] .... 1186.757078: xhci_ring_mem_detail: MATTU xhci segment free seg->dma @ c7a93488 <...>-26362 [002] .... 1186.757080: xhci_ring_free: ISOC eef0d800: enq 0x000000002c50a000(0x000000002c50a000) deq 0x000000002c50a000(0x000000002c50a000) segs 2 stream 0 free_trbs 509 bounce0 cycle 1 What is shown is the allocation of two ISOC transfer rings, each ring has 2 segments (two dma_pool_zalloc() calls per ring) First ring looks normal, ring1 get dma memory at 0x2d34d000 for first ring segment, and dma memory at 0x2d92b000 for second segment. 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. Full testpatch looked like this: diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c index e5ace89..7d343ad 100644 --- a/drivers/usb/host/xhci-mem.c +++ b/drivers/usb/host/xhci-mem.c @@ -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); + if (max_packet) { seg->bounce_buf = kzalloc(max_packet, flags); if (!seg->bounce_buf) { dma_pool_free(xhci->segment_pool, seg->trbs, dma); + xhci_dbg_trace(xhci, trace_xhci_ring_mem_detail, + "MATTU xhci segment free dma @ %pad", &dma); kfree(seg); return NULL; } @@ -58,6 +63,9 @@ static struct xhci_segment *xhci_segment_alloc(struct xhci_hcd *xhci, seg->trbs[i].link.control |= cpu_to_le32(TRB_CYCLE); } seg->dma = dma; + xhci_dbg_trace(xhci, trace_xhci_ring_mem_detail, + "MATTU xhci segment alloc seg->dma @ %pad", &seg->dma); + seg->next = NULL; return seg; @@ -67,6 +75,8 @@ static void xhci_segment_free(struct xhci_hcd *xhci, struct xhci_segment *seg) { if (seg->trbs) { dma_pool_free(xhci->segment_pool, seg->trbs, seg->dma); + xhci_dbg_trace(xhci, trace_xhci_ring_mem_detail, + "MATTU xhci segment free seg->dma @ %p", &seg->dma); seg->trbs = NULL; } kfree(seg->bounce_buf); diff --git a/drivers/usb/host/xhci-trace.h b/drivers/usb/host/xhci-trace.h index 35bdd06..951e371 100644 --- a/drivers/usb/host/xhci-trace.h +++ b/drivers/usb/host/xhci-trace.h @@ -72,6 +72,11 @@ DEFINE_EVENT(xhci_log_msg, xhci_dbg_ring_expansion, TP_ARGS(vaf) ); +DEFINE_EVENT(xhci_log_msg, xhci_ring_mem_detail, + TP_PROTO(struct va_format *vaf), + TP_ARGS(vaf) +); + DECLARE_EVENT_CLASS(xhci_log_ctx, TP_PROTO(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx, unsigned int ep_num), -- -Mathias