mmc: core: complete/wait_for_completion performance

Jörg Krause joerg.krause at embedded.rocks
Tue Dec 6 23:32:33 PST 2016


Hit Stefan,

On Sat, 2016-11-26 at 20:10 +0100, Stefan Wahren wrote:
> Hi Jörg,
> 
> > Jörg Krause <joerg.krause at embedded.rocks> hat am 20. November 2016
> > um 20:10
> > geschrieben:
> > 
> > 
> > On Sun, 2016-11-20 at 16:44 +0100, Stefan Wahren wrote:
> > > > Jörg Krause <joerg.krause at embedded.rocks> hat am 20. November
> > > > 2016
> > > > um 15:42
> > > > geschrieben:
> > > > 
> > > > 
> > > > Hi Stefan,
> > > > 
> > > > On Sun, 2016-11-20 at 14:28 +0100, Stefan Wahren wrote:
> > > > > Hi Jörg,
> > > > > 
> > > > > > Jörg Krause <joerg.krause at embedded.rocks> hat am 20.
> > > > > > November
> > > > > > 2016
> > > > > > um 13:27
> > > > > > geschrieben:
> > > > > > 
> > > > > > 
> > > > > > Hi,
> > > > > > 
> > > > > > I started the discussion on this mailing list in another
> > > > > > thread
> > > > > > [1],
> > > > > > but I'd like to move it to a new thread, because it might
> > > > > > be
> > > > > > mmc
> > > > > > specific.
> > > > > > 
> > > > > > The issue is that I am noticed low wifi network throughput
> > > > > > on
> > > > > > an
> > > > > > i.MX28
> > > > > > board with the mainline kernel (v4.7.10, about 6 Mbps)
> > > > > > compared
> > > > > > to
> > > > > > the
> > > > > > vendor kernel (Freescale v2.6.35.3, about 20 Mbps). The
> > > > > > wifi
> > > > > > chip
> > > > > > is
> > > > > > attached using the SDIO interface.
> > > > > > 
> > > > > > I started investigation where the bottleneck in the
> > > > > > mainline
> > > > > > kernel might come from. Therefore I checked that the
> > > > > > configs
> > > > > > and
> > > > > > settings for the interfaces and drivers are the same. They
> > > > > > are.
> > > > > 
> > > > > so you're not using the mxs_defconfig settings anymore?
> > > > 
> > > > No, I changed the settings.
> > > > 
> > > 
> > > What happens to performance to if you change the following
> > > settings
> > > to the same
> > > like in mxs_defconfig?
> > > 
> > > CONFIG_PREEMPT_VOLUNTARY=y
> > > CONFIG_DEFAULT_IOSCHED="noop"
> > 
> > No much change at all. The time difference between complete() and
> > wait_for_complete() decreases in best case to 110 us, but also
> > varies
> > to above 130 us.
> 
> just a weird idea. Did you tried to add MMC_CAP_CMD23 into the caps
> [1]?
> 
> [1] - http://lxr.free-electrons.com/source/drivers/mmc/host/mxs-mmc.c
> ?v=4.8#L642

I tried, but it did not improved the timing or throughput. However,
many thanks for the input.

Jörg



More information about the linux-arm-kernel mailing list