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: UAS: fix alignment of scatter/gather segments From: Alan Stern Message-Id: Date: Mon, 29 Apr 2019 15:42:00 -0400 (EDT) To: Oliver Neukum Cc: David Laight , "gregKH@linuxfoundation.org" , "linux-usb@vger.kernel.org" List-ID: T24gTW9uLCAyOSBBcHIgMjAxOSwgT2xpdmVyIE5ldWt1bSB3cm90ZToKCj4gT24gTW8sIDIwMTkt MDQtMjkgYXQgMTM6NTUgLTA0MDAsIEFsYW4gU3Rlcm4gd3JvdGU6Cj4gPiBPbiBNb24sIDI5IEFw ciAyMDE5LCBPbGl2ZXIgTmV1a3VtIHdyb3RlOgo+ID4gCj4gPiA+IE9uIE1vLCAyMDE5LTA0LTI5 IGF0IDEyOjA4IC0wNDAwLCBBbGFuIFN0ZXJuIHdyb3RlOgo+ID4gPiA+IE9uIE1vbiwgMjkgQXBy IDIwMTksIE9saXZlciBOZXVrdW0gd3JvdGU6Cj4gPiA+ID4gCj4gPiA+ID4gPiBPbiBNbywgMjAx OS0wNC0yOSBhdCAxNTowNiArMDAwMCwgRGF2aWQgTGFpZ2h0IHdyb3RlOgo+ID4gPiA+IAo+ID4g PiA+ID4gQnV0IHRoZSBzdGF0ZW1lbnQgdGhlIG9sZCBjb21tZW50IG1hZGUgYXJlIG5vIGxvbmdl ciBjb3JyZWN0Lgo+ID4gPiA+IAo+ID4gPiA+IFBlcmhhcHMgRGF2aWQgd291bGQgYmUgc2F0aXNm aWVkIGlmIHRoZSBjb21tZW50IHdlcmUgY2hhbmdlZCB0byBzYXkgCj4gPiA+ID4gdGhhdCBfc29t ZV8gVVNCIGNvbnRyb2xsZXIgZHJpdmVycyBoYXZlIHRoaXMgdW51c3VhbCBhbGlnbm1lbnQgCj4g PiA+ID4gcmVxdWlyZW1lbnQuCj4gPiA+IAo+ID4gPiBJdCB3b3VsZCBzZWVtIHRvIG1lIHRoYXQg ZXZlcnkgY29udHJvbGxlciB0aGF0IGRvZXMgbm90IGRvCj4gPiA+IHNjYXR0ZXIvZ2F0aGVyIGhh cyB0aGlzIHJlcXVpcmVtZW50LiBJbiBvdGhlciB3b3JkcywgdGhpcyBpcwo+ID4gPiB0aGUgdHJ1 ZSByZXF1aXJlbWVudCBvZiBVU0IuIEl0IGRvZXMgbm90IGNvbWUgZnJvbSB0aGUKPiA+ID4gY29u dHJvbGxlci4gSXQgY29tZXMgZnJvbSB0aGUgcHJvdG9jb2wncyBuZWVkIHRvIG5vdAo+ID4gPiBz ZW5kIGEgc2hvcnQgcGFja2FnZS4KPiA+IAo+ID4gQXJlIHlvdSBzdXJlIHRoYXQgeEhDSSBoYXMg dGhpcyByZXF1aXJlbWVudD8gIEkgaGF2ZW4ndCBjaGVja2VkIHRoZQo+IAo+IEkgYW0gc3VyZSB0 aGF0IGl0IGhhcyBub3QuIFVBUyB3b3VsZCBuZXZlciBoYXZlIHdvcmtlZC4KPiBMaWtlIGluIHRo ZSBjYXNlIG9mIHN0b3JhZ2UgdGhpcyBwYXRjaCBpcyBuZWNlc3NhcnkKPiBmb3IgdmlydHVhbCBj b250cm9sbGVycy4KCk9rYXksIHllcywgSSBhZ3JlZSB3aXRoIHdoYXQgeW91IHNheS4gIFdpdGgg dGhlIGFkZGl0aW9uIHRoYXQgc29tZQpjb250cm9sbGVycyB3aGljaCBfZG9fIHN1cHBvcnQgc2Nh dHRlci1nYXRoZXIgYWxzbyBoYXZlIHRoaXMKcmVxdWlyZW1lbnQuCgpJbiBmYWN0LCB4aGNpLWhj ZCBtYXkgYmUgdGhlIG9ubHkgZHJpdmVyIHRoYXQgZG9lc24ndCBuZWVkIHRoaXMgc3BlY2lhbCAK YWxpZ25tZW50LgoKQWxhbiBTdGVybgoKPiA+IHNwZWMuICBJIGtub3cgdGhhdCBVSENJLCBPSENJ LCBhbmQgRUhDSSBkbyBuZWVkIHRoaXMgYWxpZ25tZW50IChhbmQKPiA+IE9IQ0kgYW5kIEVIQ0kg ZG8gaW4gZmFjdCBoYXZlIGhhcmR3YXJlIHN1cHBvcnQgZm9yIHNjYXR0ZXItZ2F0aGVyKS4KPiA+ IAo+ID4gTW9yZSBwcmVjaXNlbHksIHdoYXQgbWF0dGVycyBpcyB3aGV0aGVyIHRoZSBjb250cm9s bGVyIGlzIGFibGUgdG8gbWVyZ2UKPiA+IHR3byBkaWZmZXJlbnQgRE1BIHNlZ21lbnRzIGludG8g YSBzaW5nbGUgcGFja2V0LiAgVUhDSSBjYW4ndC4gIE9IQ0kgYW5kCj4gCj4gQ29ycmVjdC4gSG93 ZXZlciwgd2UgY2Fubm90IGJsaW5kbHkgYXNzdW1lIGluIGEgY2xhc3MgZHJpdmVyIHRoYXQKPiBj ZXJ0YWluIGNvbnRyb2xsZXJzIHdpbGwgYmUgdXNlZC4KPiAKPiA+IEVIQ0kgY2FuLCBidXQgb25s eSBpZiB0aGUgZmlyc3Qgc2VnbWVudCBlbmRzIGF0IGEgcGFnZSBib3VuZGFyeSBhbmQgdGhlCj4g PiBzZWNvbmQgYmVnaW5zIGF0IGEgcGFnZSBib3VuZGFyeSAtLSBpdCdzIGVhc2llciBqdXN0IHRv IHNheSB0aGF0IHRoZQo+ID4gc2VnbWVudHMgaGF2ZSB0byBiZSBtYXhwYWNrZXQtYWxpZ25lZC4K PiA+IAo+ID4gPiBUaGUgc2Vjb25kLCBvbGQsIGNvbW1lbnQgaXMgYWJvdXQgY29udHJvbGxlcnMu Cj4gPiAKPiA+IFdlbGwsIGlmIHRoZSBkcml2ZXJzIHdvdWxkIHVzZSBib3VuY2UgYnVmZmVycyB0 byB3b3JrIGFyb3VuZCB0aGUgCj4gPiBjb250cm9sbGVycycgaXNzdWVzIHRoZW4gdGhleSB3b3Vs ZG4ndCBoYXZlIHRoaXMgc3BlY2lhbCByZXF1aXJlbWVudC4gIAo+ID4gU28gaXQgcmVhbGx5IGlz IGEgY29tYmluYXRpb24gb2Ygd2hhdCB0aGUgaGFyZHdhcmUgY2FuIGRvIGFuZCB3aGF0IHRoZSAK PiA+IGRyaXZlciBjYW4gZG8uCj4gCj4gWWVzLCBidXQgdGhlIHBvaW50IG9mIHVzaW5nIGFuIEFQ SSB0byBzcGVjaWZ5IHJlc3RyaWN0aW9ucyB0byB0aGUKPiB1cHBlciBsYXllciBpcyB0byBhdm9p ZCB1c2luZyBib3VuY2UgYnVmZmVycy4gQmVzaWRlcywgYm91bmNlCj4gYnVmZmVycyBpbiBibG9j ayBJTyBpcyBpbnRlcmVzdGluZyBpbiB0ZXJtcyBvZiBWTSBpbXBsaWNhdGlvbnMuCj4gCj4gCVJl Z2FyZHMKPiAJCU9saXZlcgo+IAo+IAo+Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.9 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C05EEC43219 for ; Mon, 29 Apr 2019 19:42:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9614C2075E for ; Mon, 29 Apr 2019 19:42:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729164AbfD2TmB (ORCPT ); Mon, 29 Apr 2019 15:42:01 -0400 Received: from iolanthe.rowland.org ([192.131.102.54]:55018 "HELO iolanthe.rowland.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1728928AbfD2TmB (ORCPT ); Mon, 29 Apr 2019 15:42:01 -0400 Received: (qmail 8527 invoked by uid 2102); 29 Apr 2019 15:42:00 -0400 Received: from localhost (sendmail-bs@127.0.0.1) by localhost with SMTP; 29 Apr 2019 15:42:00 -0400 Date: Mon, 29 Apr 2019 15:42:00 -0400 (EDT) From: Alan Stern X-X-Sender: stern@iolanthe.rowland.org To: Oliver Neukum cc: David Laight , "gregKH@linuxfoundation.org" , "linux-usb@vger.kernel.org" Subject: Re: [PATCH] UAS: fix alignment of scatter/gather segments In-Reply-To: <1556563340.20085.28.camel@suse.com> Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Message-ID: <20190429194200.Q_-CvZWkFuhkspI4qv4NeBnlNPZ0s94f2sIvcsWmw4c@z> On Mon, 29 Apr 2019, Oliver Neukum wrote: > On Mo, 2019-04-29 at 13:55 -0400, Alan Stern wrote: > > On Mon, 29 Apr 2019, Oliver Neukum wrote: > > > > > On Mo, 2019-04-29 at 12:08 -0400, Alan Stern wrote: > > > > On Mon, 29 Apr 2019, Oliver Neukum wrote: > > > > > > > > > On Mo, 2019-04-29 at 15:06 +0000, David Laight wrote: > > > > > > > > > But the statement the old comment made are no longer correct. > > > > > > > > Perhaps David would be satisfied if the comment were changed to say > > > > that _some_ USB controller drivers have this unusual alignment > > > > requirement. > > > > > > It would seem to me that every controller that does not do > > > scatter/gather has this requirement. In other words, this is > > > the true requirement of USB. It does not come from the > > > controller. It comes from the protocol's need to not > > > send a short package. > > > > Are you sure that xHCI has this requirement? I haven't checked the > > I am sure that it has not. UAS would never have worked. > Like in the case of storage this patch is necessary > for virtual controllers. Okay, yes, I agree with what you say. With the addition that some controllers which _do_ support scatter-gather also have this requirement. In fact, xhci-hcd may be the only driver that doesn't need this special alignment. Alan Stern > > spec. I know that UHCI, OHCI, and EHCI do need this alignment (and > > OHCI and EHCI do in fact have hardware support for scatter-gather). > > > > More precisely, what matters is whether the controller is able to merge > > two different DMA segments into a single packet. UHCI can't. OHCI and > > Correct. However, we cannot blindly assume in a class driver that > certain controllers will be used. > > > EHCI can, but only if the first segment ends at a page boundary and the > > second begins at a page boundary -- it's easier just to say that the > > segments have to be maxpacket-aligned. > > > > > The second, old, comment is about controllers. > > > > Well, if the drivers would use bounce buffers to work around the > > controllers' issues then they wouldn't have this special requirement. > > So it really is a combination of what the hardware can do and what the > > driver can do. > > Yes, but the point of using an API to specify restrictions to the > upper layer is to avoid using bounce buffers. Besides, bounce > buffers in block IO is interesting in terms of VM implications. > > Regards > Oliver > > >