From: Greg KH <greg@kroah.com>
To: Robert Hancock <hancockrwd@gmail.com>
Cc: linux-kernel <linux-kernel@vger.kernel.org>,
Linux-usb <linux-usb@vger.kernel.org>,
dbrownell@users.sourceforge.net
Subject: Re: [PATCH 2.6.34] ehci-hcd: add option to enable 64-bit DMA support
Date: Fri, 19 Feb 2010 20:26:27 -0800 [thread overview]
Message-ID: <20100220042627.GC13798@kroah.com> (raw)
In-Reply-To: <51f3faa71002191730s2bc8c9b2y46ce0befff771e63@mail.gmail.com>
On Fri, Feb 19, 2010 at 07:30:30PM -0600, Robert Hancock wrote:
> On Thu, Feb 18, 2010 at 9:54 PM, Greg KH <greg@kroah.com> wrote:
> > On Thu, Feb 18, 2010 at 09:46:29PM -0600, Robert Hancock wrote:
> >> On Thu, Feb 18, 2010 at 6:47 PM, Greg KH <greg@kroah.com> wrote:
> >> >> > So you did not measure it?
> >> >> >
> >> >> > Hm, I guess this change must not be necessary :)
> >> >>
> >> >> I'll try and run some tests and see what I can quantify. However, I
> >> >> only have 4GB of RAM on my machine (with a 1GB memory hole) and so a
> >> >> random memory allocation only has a 25% chance of ending up in the
> >> >> area where it would make a difference, so it may take a bit of doing.
> >> >
> >> > Without any good justification, including real tests being run, I can't
> >> > take this patch, the risk is just too high.
> >>
> >> Again, this particular patch has essentially zero risk for anyone that
> >> doesn't choose to experiment with the option. One can hardly say it
> >> presents much of a long-term maintenance burden either..
> >
> > Then don't give them the option, as it doesn't seem needed :)
> >
> > Again, it is tough to remove options once you add them, so not adding
> > them at all is the best thing to do.
>
> I don't know why you would remove the option. Even if you someday
> changed the default to 1, it would likely be a still idea to keep it
> around for debugging purposes at least.
>
> If you're complaining about options, ehci-hcd already has some which
> are quite a bit more nebulous in usefulness than this one..
Yeah, and adding another one, for no known benifit, and a known
detriment for some machines, is not a good idea.
> >> > And really, for USB 2.0 speeds, I doubt you are going to even notice
> >> > this kind of overhead, it's in the noise. ?Especially given that almost
> >> > always the limiting factor is the device itself, not the host.
> >>
> >> Well, I do have some results. This is from running this "dd
> >> if=/dev/sdg of=/dev/null bs=3800M iflag=direct" against an OCZ Rally2
> >> USB flash drive, which gets about 30 MB/sec on read, with CPU-burning
> >> tasks on all cores in the background. (The huge block size and
> >> iflag=direct is to try to force more of the IO to happen to memory
> >> above the 4GB mark.) With that workload, swiotlb_bounce shows up as
> >> between 1.5 to 4% of the CPU time spent in the kernel according to
> >> oprofile. Obviously with the 64-bit DMA enabled, that disappears. Of
> >> course, the overall kernel time is only around 2% of the total time,
> >> so that's a pretty small overall percentage.
> >
> > 2% is noise, right? ?So overall you have not really shown any
> > improvement.
>
> What threshold of performance improvement would you rather see? It's
> pretty clear that there will be a performance upside, even if small,
> and no downside.
I thought the downside was that this would break on some machines. And
debugging this is quite difficult.
> I honestly didn't expect as much resistance to a simple hardware
> feature enablement patch, that has zero impact on anyone that doesn't
> opt-in..
Again, people will opt-in, if we want them to or not, and then if
problems happen, will blame us for it. Determining that they did enable
this option, is quite difficult, right?
> >> I'll try some tests later with a faster SATA-to-IDE device that should
> >> stress things a bit more, but a huge difference doesn't seem likely.
> >> One thing that's uncertain is just how much of the IO is needing to be
> >> bounced - an even distribution of the buffer across all of physical
> >> RAM would suggest 25% in this case, but I don't know an easy way to
> >> verify that.
> >>
> >> Aside from speed considerations though, I should point out another
> >> factor: IOMMU/SWIOTLB space is in many cases a limited resource for
> >> all IO in flight at a particular time (SWIOTLB is typically 64MB). The
> >> number of hits when Googling for "Out of IOMMU space" indicates it is
> >> a problem that people do hit from time to time. From that perspective,
> >> anything that prevents unnecessary use of bounce buffers is a good
> >> thing.
> >
> > Sure, but again, for USB 2.0 stuff, we don't have many I/O in flight, as
> > they are pretty slow devices.
>
> Think that's a bit simplistic, if you have multiple devices active at
> once, or multiple controllers (not at all uncommon these days, newer
> Intel chipset machines have two EHCI controllers, with USB 1.x devices
> handled through a logical hub with TT connected to each of them) that
> can chew up more space.
I see machines with 4+ EHCI controllers quite common, and lots have a
number more than that. But I don't see how that matters here, they
aren't doing RAID over USB :)
> > USB 3.0 is different, and that's a different driver, and hopefully that
> > is all addressed already :)
>
> Doesn't look like it, from the version in current -git anyway - I
> don't see any calls to set DMA masks in the XHCI code so it will just
> default to 32-bit. I imagine that'll hurt performance at 4.8 Gbps if
> you've got lots of RAM..
Ok, we can worry about that when we get there, so far there is almost no
USB 3.0 devices out there to test with.
thanks,
greg k-h
next prev parent reply other threads:[~2010-02-20 4:31 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-18 3:10 [PATCH 2.6.34] ehci-hcd: add option to enable 64-bit DMA support Robert Hancock
2010-02-18 4:26 ` Greg KH
2010-02-18 5:13 ` Robert Hancock
2010-02-18 5:22 ` Greg KH
2010-02-19 0:33 ` Robert Hancock
2010-02-19 0:47 ` Greg KH
2010-02-19 3:46 ` Robert Hancock
2010-02-19 3:54 ` Greg KH
2010-02-20 1:30 ` Robert Hancock
2010-02-20 4:26 ` Greg KH [this message]
2010-02-20 5:39 ` David Brownell
2010-02-20 7:15 ` Robert Hancock
2010-02-20 8:07 ` David Brownell
2010-02-20 18:13 ` Robert Hancock
2010-02-23 6:48 ` Yuhong Bao
2010-02-24 0:26 ` Robert Hancock
2010-02-25 2:28 ` Tejun Heo
2010-02-25 2:41 ` Yuhong Bao
2010-02-25 2:58 ` Tejun Heo
2010-02-25 3:15 ` Yuhong Bao
2010-02-25 3:29 ` Tejun Heo
2010-02-25 4:03 ` Oliver Neukum
2010-02-25 5:25 ` Tejun Heo
2010-02-25 16:14 ` Greg KH
2010-02-25 23:15 ` Robert Hancock
2010-02-25 23:25 ` Greg KH
2010-02-26 7:01 ` Oliver Neukum
2010-02-24 3:53 ` SB600 64-bit DMA BIOS misconfiguration (formerly RE: [PATCH 2.6.34] ehci-hcd: add option to enable 64-bit DMA support) Yuhong Bao
2010-02-24 4:30 ` Robert Hancock
2010-02-24 4:33 ` Yuhong Bao
2010-02-24 13:30 ` Huang, Shane
2010-02-23 6:28 ` [PATCH 2.6.34] ehci-hcd: add option to enable 64-bit DMA support Yuhong Bao
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=20100220042627.GC13798@kroah.com \
--to=greg@kroah.com \
--cc=dbrownell@users.sourceforge.net \
--cc=hancockrwd@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.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