All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sarah Sharp <sarah.a.sharp@linux.intel.com>
To: Ming Lei <ming.lei@canonical.com>
Cc: "Bjørn Mork" <bjorn@mork.no>,
	"David Laight" <David.Laight@aculab.com>,
	"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"David Miller" <davem@davemloft.net>,
	"Dan Williams" <dan.j.williams@intel.com>,
	"Nyman, Mathias" <mathias.nyman@intel.com>,
	"Mark Lord" <mlord@pobox.com>,
	"Alan Stern" <stern@rowland.harvard.edu>,
	"Freddy Xin" <freddy@asix.com.tw>
Subject: Re: [PATCH RFC 1/1] usb: Tell xhci when usb data might be misaligned
Date: Fri, 31 Jan 2014 11:00:35 -0800	[thread overview]
Message-ID: <20140131190035.GB18262@xanatos> (raw)
In-Reply-To: <CACVXFVMVoMAH3DRiv-VYZL8VWq2Rw+fZwreVtUVm1M44HR+X8Q@mail.gmail.com>

On Fri, Jan 31, 2014 at 08:17:58AM +0800, Ming Lei wrote:
> On Fri, Jan 31, 2014 at 6:15 AM, Sarah Sharp
> <sarah.a.sharp@linux.intel.com> wrote:
> > On Thu, Jan 30, 2014 at 10:50:21PM +0100, Bjørn Mork wrote:
> >> FWIW, the plan looks fine to me.  Just adding a couple of hints to
> >> simplify the implementation.
> >>
> >> Sarah Sharp <sarah.a.sharp@linux.intel.com> writes:
> >>
> >> > Let's do this fix the right way, instead of wall papering over the
> >> > issue.  Here's what we should do:
> >> >
> >> > 1. Disable scatter-gather for the ax88179_178a driver when it's under an
> >> >    xHCI host.
> >>
> >> No need to make this conditional.  SG is only enabled in the
> >> ax88179_178a driver if udev->bus->no_sg_constraint is true, so it
> >> applies only to xHCI hosts in the first place.
> >
> > Ah, so you're suggesting just reverting commit
> > 3804fad45411b48233b48003e33a78f290d227c8 "USBNET: ax88179_178a: enable
> > tso if usb host supports sg dma"?
> 
> If I understand the problem correctly, the current issue is that xhci driver
> doesn't support the arbitrary dma length not well, but per XHCI spec, it
> should be supported, right?
> 
> If the above is correct, reverting the commit isn't correct since there isn't
> any issue about the commit, so I suggest to disable the flag in xhci
> for the buggy devices, and it may be enabled again if the problem is fixed.

Ok, I like that plan, since it means I don't have to touch any
networking code to fix this. :)

I believe that means we'll have to disable the flag for all 1.0 xHCI
hosts, since those are the ones that need TD fragments.

> >> > 2. Revert the following commits:
> >> >    f2d9b991c549 xhci: Set scatter-gather limit to avoid failed block writes.
> >> >    d6c9ea9069af xhci: Avoid infinite loop when sg urb requires too many trbs
> >> >    35773dac5f86 usb: xhci: Link TRB must not occur within a USB payload burst
> >> >
> >> > 3. Dan and Mathias can work together to come up with an overall plan to
> >> >    change the xHCI driver architecture to be fully compliant with the TD
> >> >    fragment rules.  That can be done over the next few kernel releases.
> >> >
> >> > The end result is that we don't destabilize storage or break userspace
> >> > USB drivers, we don't break people's xHCI host controllers,
> >> > the ax88179_178a USB ethernet devices still work under xHCI (a bit with
> >> > worse performance), and other USB ethernet devices still get the
> >> > performance improvement introduced in 3.12.
> >>
> >> No other usbnet drivers has enabled SG...  Which is why you have only
> >> seen this problem with the ax88179_178a devices.  So there is no
> >> performance improvement to keep.
> 
> In my test environment, the patch does improve both throughput and
> cpu utilization, if you search the previous email for the patch, you can
> see the data.

Right, I did see the performance improvement note in that commit.  Do
you know if the ARM A15 dual core board was using a 0.96 xHCI host, or a
1.0 host?  You can find out by reloading the xHCI driver with dynamic
debugging turned on:

# sudo modprobe xhci_hcd dyndbg

and then look for lines like:

[25296.765767] xhci_hcd 0000:00:14.0: HCIVERSION: 0x100

Sarah Sharp

  reply	other threads:[~2014-01-31 19:00 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-30 21:18 [PATCH RFC 1/1] usb: Tell xhci when usb data might be misaligned Sarah Sharp
2014-01-30 21:39 ` Mark Lord
2014-01-30 21:42   ` Mark Lord
2014-01-30 21:43 ` Alan Stern
2014-01-30 21:48   ` Mark Lord
2014-01-30 21:55   ` Sarah Sharp
2014-01-30 22:05     ` Bjørn Mork
2014-01-30 22:07     ` Alan Stern
2014-01-30 21:50 ` Bjørn Mork
2014-01-30 22:15   ` Sarah Sharp
2014-01-31  0:17     ` Ming Lei
2014-01-31 19:00       ` Sarah Sharp [this message]
2014-02-01  7:54         ` Ming Lei
2014-02-01 13:30           ` Mark Lord
2014-02-01 14:18             ` Ming Lei
2014-02-01 20:05               ` Mark Lord
     [not found]                 ` <52ED5381.2010106-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org>
2014-02-03  9:54                   ` David Laight
2014-02-03 17:56                     ` Sarah Sharp
2014-02-03 17:55                   ` Sarah Sharp
2014-01-31 15:22     ` David Laight
2014-01-31 10:14 ` David Laight
2014-01-31 13:21   ` Peter Stuge
2014-01-31 13:52     ` David Laight
  -- strict thread matches above, loose matches on Subject: below --
2014-01-30 16:00 David Laight
     [not found] ` <063D6719AE5E284EB5DD2968C1650D6D0F6B5486-VkEWCZq2GCInGFn1LkZF6NBPR1lH4CV8@public.gmane.org>
2014-01-30 16:17   ` Peter Stuge
     [not found]     ` <20140130161721.25560.qmail-Y+HMSxxDrH8@public.gmane.org>
2014-01-30 16:30       ` David Laight
     [not found]         ` <063D6719AE5E284EB5DD2968C1650D6D0F6B553D-VkEWCZq2GCInGFn1LkZF6NBPR1lH4CV8@public.gmane.org>
2014-01-30 16:35           ` Peter Stuge
2014-01-31  9:30             ` David Laight

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=20140131190035.GB18262@xanatos \
    --to=sarah.a.sharp@linux.intel.com \
    --cc=David.Laight@aculab.com \
    --cc=bjorn@mork.no \
    --cc=dan.j.williams@intel.com \
    --cc=davem@davemloft.net \
    --cc=freddy@asix.com.tw \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=mathias.nyman@intel.com \
    --cc=ming.lei@canonical.com \
    --cc=mlord@pobox.com \
    --cc=netdev@vger.kernel.org \
    --cc=stern@rowland.harvard.edu \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.