diff mbox

[2/3] ARM: multi_v7_defconfig: Switch BCM2835 to sdhci-iproc.c for MMC

Message ID 1459470504-5007-2-git-send-email-eric@anholt.net (mailing list archive)
State New, archived
Headers show

Commit Message

Eric Anholt April 1, 2016, 12:28 a.m. UTC
This approximately triples write performance for the SD card.  My card
is too full of important data to collect very reliable numbers, but I
see 271.361% +/- 166.742% improvement (n=3 before, 6 after), for 'dd
if=/dev/zero of=/boot/asdf bs=1M count=3 oflag=dsync,direct'.  Read
performance appears to be unaffected.

Signed-off-by: Eric Anholt <eric@anholt.net>
---
 arch/arm/configs/multi_v7_defconfig | 1 -
 1 file changed, 1 deletion(-)

Comments

Stephen Warren April 1, 2016, 2:01 a.m. UTC | #1
On 03/31/2016 06:28 PM, Eric Anholt wrote:
> This approximately triples write performance for the SD card.  My card
> is too full of important data to collect very reliable numbers, but I
> see 271.361% +/- 166.742% improvement (n=3 before, 6 after), for 'dd
> if=/dev/zero of=/boot/asdf bs=1M count=3 oflag=dsync,direct'.  Read
> performance appears to be unaffected.

I thought that switching the defconfig wasn't possible, since this HW 
module relies on the SoC core clock, and that can be asynchronously 
changed by the FW running on the VideoCore. Consequently, this change 
isn't safe unless the user puts non-default options in their config.txt.

The same comment applies to "[PATCH 1/4] ARM: bcm2835: Switch BCM2835 to 
sdhci-iproc.c for MMC" in the other series.
Eric Anholt April 1, 2016, 3:48 p.m. UTC | #2
Stephen Warren <swarren@wwwdotorg.org> writes:

> On 03/31/2016 06:28 PM, Eric Anholt wrote:
>> This approximately triples write performance for the SD card.  My card
>> is too full of important data to collect very reliable numbers, but I
>> see 271.361% +/- 166.742% improvement (n=3 before, 6 after), for 'dd
>> if=/dev/zero of=/boot/asdf bs=1M count=3 oflag=dsync,direct'.  Read
>> performance appears to be unaffected.
>
> I thought that switching the defconfig wasn't possible, since this HW 
> module relies on the SoC core clock, and that can be asynchronously 
> changed by the FW running on the VideoCore. Consequently, this change 
> isn't safe unless the user puts non-default options in their config.txt.
>
> The same comment applies to "[PATCH 1/4] ARM: bcm2835: Switch BCM2835 to 
> sdhci-iproc.c for MMC" in the other series.

I think you're thinking of SDHOST, the other controller?  This is just
switching implementations for the EMMC controller so that eventually we
can delete our old implementation.
Stephen Warren April 1, 2016, 4:58 p.m. UTC | #3
On 03/31/2016 08:01 PM, Stephen Warren wrote:
> On 03/31/2016 06:28 PM, Eric Anholt wrote:
>> This approximately triples write performance for the SD card.  My card
>> is too full of important data to collect very reliable numbers, but I
>> see 271.361% +/- 166.742% improvement (n=3 before, 6 after), for 'dd
>> if=/dev/zero of=/boot/asdf bs=1M count=3 oflag=dsync,direct'.  Read
>> performance appears to be unaffected.
>
> I thought that switching the defconfig wasn't possible, since this HW
> module relies on the SoC core clock, and that can be asynchronously
> changed by the FW running on the VideoCore. Consequently, this change
> isn't safe unless the user puts non-default options in their config.txt.
>
> The same comment applies to "[PATCH 1/4] ARM: bcm2835: Switch BCM2835 to
> sdhci-iproc.c for MMC" in the other series.

Ah, now I realize that sdhci-bcm2835.c and sdhci-iproc.c are two 
alternative drivers for the same HW device. For some reason I got the 
incorrect impression from some past email/patch discussion that 
sdhci-iproc.c was a driver for the alternative SD controller in the chip.

So, there's no problem with this patch.
Acked-by: Stephen Warren <swarren@wwwdotorg.org>

(although /me wonders why sdhci-iproc.c was even added in the first 
place given sdhci-bcm2835.c pre-dates it by over 2 years, and equally 
why the new driver is any faster given it looks almost identical and 
accesses the same HW, but I suppose it doesn't matter).
Stefan Wahren April 1, 2016, 8:17 p.m. UTC | #4
Hi,

> Stephen Warren <swarren@wwwdotorg.org> hat am 1. April 2016 um 18:58
> geschrieben:
>
>
> On 03/31/2016 08:01 PM, Stephen Warren wrote:
> > On 03/31/2016 06:28 PM, Eric Anholt wrote:
> >> This approximately triples write performance for the SD card. My card
> >> is too full of important data to collect very reliable numbers, but I
> >> see 271.361% +/- 166.742% improvement (n=3 before, 6 after), for 'dd
> >> if=/dev/zero of=/boot/asdf bs=1M count=3 oflag=dsync,direct'. Read
> >> performance appears to be unaffected.
> >
> > I thought that switching the defconfig wasn't possible, since this HW
> > module relies on the SoC core clock, and that can be asynchronously
> > changed by the FW running on the VideoCore. Consequently, this change
> > isn't safe unless the user puts non-default options in their config.txt.
> >
> > The same comment applies to "[PATCH 1/4] ARM: bcm2835: Switch BCM2835 to
> > sdhci-iproc.c for MMC" in the other series.
>
> Ah, now I realize that sdhci-bcm2835.c and sdhci-iproc.c are two
> alternative drivers for the same HW device. For some reason I got the
> incorrect impression from some past email/patch discussion that
> sdhci-iproc.c was a driver for the alternative SD controller in the chip.
>
> So, there's no problem with this patch.
> Acked-by: Stephen Warren <swarren@wwwdotorg.org>
>
> (although /me wonders why sdhci-iproc.c was even added in the first
> place given sdhci-bcm2835.c pre-dates it by over 2 years, and equally
> why the new driver is any faster given it looks almost identical and
> accesses the same HW, but I suppose it doesn't matter).

my old results (without DMA support) wasn't so impressing:

sdhci-bcm2835

378 kB/s WRITE
10,6 MB/s READ

sdhci-iproc

881 kB/s WRITE
10,8 MB/s READ

The performance gain comes from the more intelligent quirk handling.
sdhci-bcm2835 has a fixed delay after each write.

Regards
Stefan

>
> _______________________________________________
> linux-rpi-kernel mailing list
> linux-rpi-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-rpi-kernel
diff mbox

Patch

diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v7_defconfig
index 43a8ce0..a913520 100644
--- a/arch/arm/configs/multi_v7_defconfig
+++ b/arch/arm/configs/multi_v7_defconfig
@@ -642,7 +642,6 @@  CONFIG_MMC_SDHCI_SPEAR=y
 CONFIG_MMC_SDHCI_S3C=y
 CONFIG_MMC_SDHCI_S3C_DMA=y
 CONFIG_MMC_SDHCI_BCM_KONA=y
-CONFIG_MMC_SDHCI_BCM2835=y
 CONFIG_MMC_SDHCI_ST=y
 CONFIG_MMC_OMAP=y
 CONFIG_MMC_OMAP_HS=y