All of lore.kernel.org
 help / color / mirror / Atom feed
* [Patch 0/1] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
@ 2011-07-11 21:28 Manoj Iyer
  2011-07-11 21:28 ` [PATCH] " Manoj Iyer
  0 siblings, 1 reply; 28+ messages in thread
From: Manoj Iyer @ 2011-07-11 21:28 UTC (permalink / raw)
  To: linux-kernel; +Cc: jbarnes, cjb, matsumur, linux-pci


Ricoh 1180:e823 does not recognize certain types of SD/MMC cards.
- Buffalo SD 512MB
  dmesg: I/O error, dev mmcblk0, sector xxx
- Kingston SD 2GB
  dmesg: I/O error, dev mmcblk0, sector xxx
- Patriot Micro SDHC
  dmesg: I/O error, dev mmcblk0, sector xxx. 

Lowering the SD base clock frequency from 200Mhz to 50Mhz fixes
this issue. This solution was suggest by Koji Matsumuro, Ricoh
Company,Ltd. The patch was tested on Toshiba Tecra R850 by Daniel 
Manrique.

Details can be found in:

http://launchpad.net/bugs/773524




^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2011-07-11 21:28 [Patch 0/1] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency Manoj Iyer
@ 2011-07-11 21:28 ` Manoj Iyer
  2011-07-11 21:53   ` Chris Ball
  0 siblings, 1 reply; 28+ messages in thread
From: Manoj Iyer @ 2011-07-11 21:28 UTC (permalink / raw)
  To: linux-kernel; +Cc: jbarnes, cjb, matsumur, linux-pci

Ricoh 1180:e823 does not recognize certain types of SD/MMC cards.
Lowering the SD base clock frequency from 200Mhz to 50Mhz fixes
this issue. This solution was suggest by Koji Matsumuro, Ricoh
Company,Ltd.

BugLink: http://launchpad.net/bugs/773524
Signed-off-by: Manoj Iyer <manoj.iyer@canonical.com>
Tested-by: Daniel Manrique <daniel.manrique@canonical.com>
Cc: Koji Matsumuro <matsumur@nts.ricoh.co.jp>
---
 drivers/pci/quirks.c |   24 ++++++++++++++++++++++++
 1 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 02145e9..fe5bffa 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -2758,6 +2758,30 @@ static void ricoh_mmc_fixup_r5c832(struct pci_dev *dev)
 
 	dev_notice(&dev->dev, "proprietary Ricoh MMC controller disabled (via firewire function)\n");
 	dev_notice(&dev->dev, "MMC cards are now supported by standard SDHCI controller\n");
+
+	/* 
+	 * RICOH 0xe823 SD/MMC card reader fails to recognize 
+	 * certain types of SD/MMC cards. Lowering the SD base
+	 * clock frequency from 200Mhz to 50Mhz fixes this issue.
+	 *
+	 * 0x150 - SD2.0 mode enable for changing base clock 
+	 *	   frequency to 50Mhz
+	 * 0xe1  - Base clock frequency
+	 * 0x32  - 50Mhz new clock frequency
+	 * 0xf9  - Key register for 0x150
+	 * 0xfc  - key register for 0xe1
+	 */
+	if (dev->device == PCI_DEVICE_ID_RICOH_R5CE823) {
+		pci_write_config_byte(dev, 0xf9, 0xfc);
+		pci_write_config_byte(dev, 0x150, 0x10);
+		pci_write_config_byte(dev, 0xf9, 0x00);
+		pci_write_config_byte(dev, 0xfc, 0x01);
+		pci_write_config_byte(dev, 0xe1, 0x32);
+		pci_write_config_byte(dev, 0xfc, 0x00);
+
+		dev_notice(&dev->dev, "Controller base frequency changed to 50Mhz)\n");
+	}
+
 }
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832);
 DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832);
-- 
1.7.4.1


^ permalink raw reply related	[flat|nested] 28+ messages in thread

* Re: [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2011-07-11 21:28 ` [PATCH] " Manoj Iyer
@ 2011-07-11 21:53   ` Chris Ball
  2011-07-11 22:55     ` Manoj Iyer
  2011-07-12 16:01     ` Manoj Iyer
  0 siblings, 2 replies; 28+ messages in thread
From: Chris Ball @ 2011-07-11 21:53 UTC (permalink / raw)
  To: Manoj Iyer; +Cc: linux-kernel, jbarnes, matsumur, linux-pci, linux-mmc

Hi Manoj, adding linux-mmc@,

On Mon, Jul 11 2011, Manoj Iyer wrote:
> Ricoh 1180:e823 does not recognize certain types of SD/MMC cards.
> Lowering the SD base clock frequency from 200Mhz to 50Mhz fixes
> this issue. This solution was suggest by Koji Matsumuro, Ricoh
> Company,Ltd.
>
> BugLink: http://launchpad.net/bugs/773524
> Signed-off-by: Manoj Iyer <manoj.iyer@canonical.com>
> Tested-by: Daniel Manrique <daniel.manrique@canonical.com>
> Cc: Koji Matsumuro <matsumur@nts.ricoh.co.jp>
> ---
>  drivers/pci/quirks.c |   24 ++++++++++++++++++++++++
>  1 files changed, 24 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index 02145e9..fe5bffa 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -2758,6 +2758,30 @@ static void ricoh_mmc_fixup_r5c832(struct pci_dev *dev)
>  
>  	dev_notice(&dev->dev, "proprietary Ricoh MMC controller disabled (via firewire function)\n");
>  	dev_notice(&dev->dev, "MMC cards are now supported by standard SDHCI controller\n");
> +
> +	/* 
> +	 * RICOH 0xe823 SD/MMC card reader fails to recognize 
> +	 * certain types of SD/MMC cards. Lowering the SD base
> +	 * clock frequency from 200Mhz to 50Mhz fixes this issue.
> +	 *
> +	 * 0x150 - SD2.0 mode enable for changing base clock 
> +	 *	   frequency to 50Mhz
> +	 * 0xe1  - Base clock frequency
> +	 * 0x32  - 50Mhz new clock frequency
> +	 * 0xf9  - Key register for 0x150
> +	 * 0xfc  - key register for 0xe1
> +	 */
> +	if (dev->device == PCI_DEVICE_ID_RICOH_R5CE823) {
> +		pci_write_config_byte(dev, 0xf9, 0xfc);
> +		pci_write_config_byte(dev, 0x150, 0x10);
> +		pci_write_config_byte(dev, 0xf9, 0x00);
> +		pci_write_config_byte(dev, 0xfc, 0x01);
> +		pci_write_config_byte(dev, 0xe1, 0x32);
> +		pci_write_config_byte(dev, 0xfc, 0x00);
> +
> +		dev_notice(&dev->dev, "Controller base frequency changed to 50Mhz)\n");

There's an erroneous ")" in this string; I'll replace it with a "." if
this patch goes in via my tree.  Also, let's make it "MMC controller"
instead of just "Controller".

> +	}
> +
>  }
>  DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832);
>  DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832);

Have you checked to see how SD I/O performance differs after this change?

(If this is significant, perhaps we want to try lowering the frequency
only after a card starts returning errors, since some cards work fine
at the higher frequency.)

Thanks,

- Chris.
-- 
Chris Ball   <cjb@laptop.org>   <http://printf.net/>
One Laptop Per Child

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2011-07-11 21:53   ` Chris Ball
@ 2011-07-11 22:55     ` Manoj Iyer
  2011-07-12 16:01     ` Manoj Iyer
  1 sibling, 0 replies; 28+ messages in thread
From: Manoj Iyer @ 2011-07-11 22:55 UTC (permalink / raw)
  To: Chris Ball
  Cc: Manoj Iyer, Daniel Manrique, linux-kernel, jbarnes, matsumur,
	linux-pci, linux-mmc

>> +
>> +		dev_notice(&dev->dev, "Controller base frequency changed to 50Mhz)\n");
>
> There's an erroneous ")" in this string; I'll replace it with a "." if
> this patch goes in via my tree.  Also, let's make it "MMC controller"
> instead of just "Controller".

Oops, I can fix that and resend, or would you rather make the change 
while (if) applying to your tree?

>
>> +	}
>> +
>>  }
>>  DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832);
>>  DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832);
>
> Have you checked to see how SD I/O performance differs after this change?
>
> (If this is significant, perhaps we want to try lowering the frequency
> only after a card starts returning errors, since some cards work fine
> at the higher frequency.)
>

This is something I thought about too, I can try and get some data on the 
cards (that already works) with the patch applied. Do you have any 
specific benchmarks in mind that you would like me to run? Or will timing 
read and write will work?

Thanks a ton!
--
====================
Manoj Iyer
Ubuntu/Canonical
Hardware Enablement
====================

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2011-07-11 21:53   ` Chris Ball
  2011-07-11 22:55     ` Manoj Iyer
@ 2011-07-12 16:01     ` Manoj Iyer
  2011-07-12 16:20       ` Chris Ball
  1 sibling, 1 reply; 28+ messages in thread
From: Manoj Iyer @ 2011-07-12 16:01 UTC (permalink / raw)
  To: Chris Ball
  Cc: Manoj Iyer, linux-kernel, jbarnes, matsumur, linux-pci, linux-mmc


Chris,

Test System: ThinkPad X220 Tablet, using Sandisk 2GB Class 2 SD, I did not 
see any considerable change in read/write times. Also, tested a Transcend 
MMCPlus 2GB card, before the patch was applied it would not mount the 
card, and would cause IO errors on read/write, but after the patch it 
mounts and works correctly.

Linux u 3.0.0-4-generic-pae #5 SMP Mon Jul 11 20:26:49 UTC 2011 i686 
GNU/Linux

Dmesg outputs:
=== SD ===
[   44.510107] mmc0: new SD card at address 0002
[   44.510292] mmcblk0: mmc0:0002 00000 1.86 GiB
[   44.512408]  mmcblk0: p1
u@u:~/Documents$

=== MMC ===

[  726.510850] mmc0: card 0001 removed
[  731.688463] mmc0: error -110 whilst initialising MMC card
[  731.776506] mmc0: error -110 whilst initialising MMC card
[  731.864157] mmc0: new MMC card at address 0001
[  731.864611] mmcblk0: mmc0:0001 MMC    1.87 GiB
[  731.866047]  mmcblk0: p1
u@u:~/Documents$


============ BEFORE THE PATCH ===============
Sandisk 2GB Class2 SD
=============================================
=== WRITE ===
u@u:~$ ls -lh test.file
-rw-r--r-- 1 u u 10M 2011-07-12 10:19 test.file
u@u:~$ time cp test.file /media/E0FD-1813/copyto

real    0m0.480s
user    0m0.000s
sys     0m0.024s
u@u:~$ time cp test.file /media/E0FD-1813/copyto1

real    0m0.476s
user    0m0.000s
sys     0m0.028s
u@u:~$ time cp test.file /media/E0FD-1813/copyto2

real    0m0.484s
user    0m0.000s
sys     0m0.024s
u@u:~$ time cp test.file /media/E0FD-1813/copyto3

real    0m0.480s
user    0m0.000s
sys     0m0.020s
u@u:~$
u@u:~$ ls -lh /media/E0FD-1813/copyto*
-rw-r--r-- 1 u u 10M 2011-07-12 10:20 /media/E0FD-1813/copyto
-rw-r--r-- 1 u u 10M 2011-07-12 10:20 /media/E0FD-1813/copyto1
-rw-r--r-- 1 u u 10M 2011-07-12 10:20 /media/E0FD-1813/copyto2
-rw-r--r-- 1 u u 10M 2011-07-12 10:20 /media/E0FD-1813/copyto3
u@u:~$

=== READ ===
u@u:~$ time cp /media/E0FD-1813/copyto1 /tmp/copyfrom1

real    0m0.017s
user    0m0.000s
sys     0m0.016s
u@u:~$ time cp /media/E0FD-1813/copyto1 /tmp/copyfrom2

real    0m0.021s
user    0m0.004s
sys     0m0.020s
u@u:~$ time cp /media/E0FD-1813/copyto1 /tmp/copyfrom3

real    0m0.020s
user    0m0.000s
sys     0m0.016s
u@u:~$ time cp /media/E0FD-1813/copyto1 /tmp/copyfrom4

real    0m0.022s
user    0m0.000s
sys     0m0.020s
u@u:~$
u@u:~$ ls -lh /tmp/copyfrom*
-rw-r--r-- 1 u u 10M 2011-07-12 10:22 /tmp/copyfrom1
-rw-r--r-- 1 u u 10M 2011-07-12 10:22 /tmp/copyfrom2
-rw-r--r-- 1 u u 10M 2011-07-12 10:22 /tmp/copyfrom3
-rw-r--r-- 1 u u 10M 2011-07-12 10:22 /tmp/copyfrom4
u@u:~$

============ AFTER THE PATCH =============
Sandisk 2GB Class2 SD
==========================================

=== WRITE ===
u@u:~$ time cp ./test.file /media/E0FD-1813/copyto1

real    0m0.757s
user    0m0.000s
sys     0m0.044s
u@u:~$ time cp ./test.file /media/E0FD-1813/copyto2

real    0m0.488s
user    0m0.004s
sys     0m0.020s
u@u:~$ time cp ./test.file /media/E0FD-1813/copyto3

real    0m0.484s
user    0m0.004s
sys     0m0.024s
u@u:~$ time cp ./test.file /media/E0FD-1813/copyto4

real    0m0.486s
user    0m0.000s
sys     0m0.024s
u@u:~$ ls -lh /media/E0FD-1813/
copyto1      copyto2      copyto3      copyto4      .Trash-1001/
u@u:~$ ls -lh /media/E0FD-1813/copyto*
-rw-r--r-- 1 u u 10M 2011-07-12 10:30 /media/E0FD-1813/copyto1
-rw-r--r-- 1 u u 10M 2011-07-12 10:30 /media/E0FD-1813/copyto2
-rw-r--r-- 1 u u 10M 2011-07-12 10:30 /media/E0FD-1813/copyto3
-rw-r--r-- 1 u u 10M 2011-07-12 10:30 /media/E0FD-1813/copyto4
u@u:~$

=== READ ===
u@u:~$ time cp /media/E0FD-1813/copyto1 /tmp/copyfrom1

real    0m0.020s
user    0m0.000s
sys     0m0.016s
u@u:~$ time cp /media/E0FD-1813/copyto1 /tmp/copyfrom2

real    0m0.020s
user    0m0.000s
sys     0m0.016s
u@u:~$ time cp /media/E0FD-1813/copyto1 /tmp/copyfrom3

real    0m0.020s
user    0m0.000s
sys     0m0.016s
u@u:~$ time cp /media/E0FD-1813/copyto1 /tmp/copyfrom4

real    0m0.015s
user    0m0.000s
sys     0m0.012s
u@u:~$ ls -lh /tmp/copyfrom*
-rw-r--r-- 1 u u 10M 2011-07-12 10:31 /tmp/copyfrom1
-rw-r--r-- 1 u u 10M 2011-07-12 10:31 /tmp/copyfrom2
-rw-r--r-- 1 u u 10M 2011-07-12 10:31 /tmp/copyfrom3
-rw-r--r-- 1 u u 10M 2011-07-12 10:31 /tmp/copyfrom4
u@u:~$


====== AFTER THE PATCH - MMC CARD ===========
Transcend MMC 2GB
=============================================

=== WRITE ===
u@u:~$ time cp test.file /media/New\ Volume/copyto1

real    0m0.557s
user    0m0.000s
sys     0m0.024s
u@u:~$ time cp test.file /media/New\ Volume/copyto2

real    0m0.581s
user    0m0.000s
sys     0m0.028s
u@u:~$ time cp test.file /media/New\ Volume/copyto3

real    0m0.581s
user    0m0.000s
sys     0m0.032s
u@u:~$ time cp test.file /media/New\ Volume/copyto4

real    0m0.585s
user    0m0.000s
sys     0m0.028s
u@u:~$ ls -lh /media/New\ Volume/copyto*
-rw-r--r-- 1 u u 10M 2011-07-12 10:42 /media/New Volume/copyto1
-rw-r--r-- 1 u u 10M 2011-07-12 10:42 /media/New Volume/copyto2
-rw-r--r-- 1 u u 10M 2011-07-12 10:42 /media/New Volume/copyto3
-rw-r--r-- 1 u u 10M 2011-07-12 10:42 /media/New Volume/copyto4
u@u:~$

=== READ ===
u@u:~$ time cp /media/New\ Volume/copyto1 /tmp/copyfrom1

real    0m0.154s
user    0m0.000s
sys     0m0.024s
u@u:~$ time cp /media/New\ Volume/copyto1 /tmp/copyfrom2

real    0m0.024s
user    0m0.000s
sys     0m0.020s
u@u:~$ time cp /media/New\ Volume/copyto1 /tmp/copyfrom3

real    0m0.024s
user    0m0.000s
sys     0m0.020s
u@u:~$ time cp /media/New\ Volume/copyto1 /tmp/copyfrom4

real    0m0.022s
user    0m0.000s
sys     0m0.020s
u@u:~$ time cp /media/New\ Volume/copyto2 /tmp/copyfrom5

real    0m0.020s
user    0m0.000s
sys     0m0.016s
u@u:~$ ls -lh /tmp/copyfrom*
-rw-r--r-- 1 u u 10M 2011-07-12 10:44 /tmp/copyfrom1
-rw-r--r-- 1 u u 10M 2011-07-12 10:44 /tmp/copyfrom2
-rw-r--r-- 1 u u 10M 2011-07-12 10:44 /tmp/copyfrom3
-rw-r--r-- 1 u u 10M 2011-07-12 10:44 /tmp/copyfrom4
-rw-r--r-- 1 u u 10M 2011-07-12 10:44 /tmp/copyfrom5
u@u:~$



On Mon, 11 Jul 2011, Chris Ball wrote:

> Hi Manoj, adding linux-mmc@,
>
> On Mon, Jul 11 2011, Manoj Iyer wrote:
>> Ricoh 1180:e823 does not recognize certain types of SD/MMC cards.
>> Lowering the SD base clock frequency from 200Mhz to 50Mhz fixes
>> this issue. This solution was suggest by Koji Matsumuro, Ricoh
>> Company,Ltd.
>>
>> BugLink: http://launchpad.net/bugs/773524
>> Signed-off-by: Manoj Iyer <manoj.iyer@canonical.com>
>> Tested-by: Daniel Manrique <daniel.manrique@canonical.com>
>> Cc: Koji Matsumuro <matsumur@nts.ricoh.co.jp>
>> ---
>>  drivers/pci/quirks.c |   24 ++++++++++++++++++++++++
>>  1 files changed, 24 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
>> index 02145e9..fe5bffa 100644
>> --- a/drivers/pci/quirks.c
>> +++ b/drivers/pci/quirks.c
>> @@ -2758,6 +2758,30 @@ static void ricoh_mmc_fixup_r5c832(struct pci_dev *dev)
>>
>>  	dev_notice(&dev->dev, "proprietary Ricoh MMC controller disabled (via firewire function)\n");
>>  	dev_notice(&dev->dev, "MMC cards are now supported by standard SDHCI controller\n");
>> +
>> +	/*
>> +	 * RICOH 0xe823 SD/MMC card reader fails to recognize
>> +	 * certain types of SD/MMC cards. Lowering the SD base
>> +	 * clock frequency from 200Mhz to 50Mhz fixes this issue.
>> +	 *
>> +	 * 0x150 - SD2.0 mode enable for changing base clock
>> +	 *	   frequency to 50Mhz
>> +	 * 0xe1  - Base clock frequency
>> +	 * 0x32  - 50Mhz new clock frequency
>> +	 * 0xf9  - Key register for 0x150
>> +	 * 0xfc  - key register for 0xe1
>> +	 */
>> +	if (dev->device == PCI_DEVICE_ID_RICOH_R5CE823) {
>> +		pci_write_config_byte(dev, 0xf9, 0xfc);
>> +		pci_write_config_byte(dev, 0x150, 0x10);
>> +		pci_write_config_byte(dev, 0xf9, 0x00);
>> +		pci_write_config_byte(dev, 0xfc, 0x01);
>> +		pci_write_config_byte(dev, 0xe1, 0x32);
>> +		pci_write_config_byte(dev, 0xfc, 0x00);
>> +
>> +		dev_notice(&dev->dev, "Controller base frequency changed to 50Mhz)\n");
>
> There's an erroneous ")" in this string; I'll replace it with a "." if
> this patch goes in via my tree.  Also, let's make it "MMC controller"
> instead of just "Controller".
>
>> +	}
>> +
>>  }
>>  DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832);
>>  DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832);
>
> Have you checked to see how SD I/O performance differs after this change?
>
> (If this is significant, perhaps we want to try lowering the frequency
> only after a card starts returning errors, since some cards work fine
> at the higher frequency.)
>
> Thanks,
>
> - Chris.
> -- 
> Chris Ball   <cjb@laptop.org>   <http://printf.net/>
> One Laptop Per Child
>
>

--
====================
Manoj Iyer
Ubuntu/Canonical
Hardware Enablement
====================

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2011-07-12 16:01     ` Manoj Iyer
@ 2011-07-12 16:20       ` Chris Ball
  2011-07-12 17:09         ` Manoj Iyer
  0 siblings, 1 reply; 28+ messages in thread
From: Chris Ball @ 2011-07-12 16:20 UTC (permalink / raw)
  To: Manoj Iyer; +Cc: linux-kernel, jbarnes, matsumur, linux-pci, linux-mmc

Hi Manoj,

On Tue, Jul 12 2011, Manoj Iyer wrote:
> Test System: ThinkPad X220 Tablet, using Sandisk 2GB Class 2 SD, I did
> not see any considerable change in read/write times. Also, tested a
> Transcend MMCPlus 2GB card, before the patch was applied it would not
> mount the card, and would cause IO errors on read/write, but after the
> patch it mounts and works correctly.
> [..]
> ============ BEFORE THE PATCH ===============
> Sandisk 2GB Class2 SD
> =============================================
> === WRITE ===
> u@u:~$ ls -lh test.file
> -rw-r--r-- 1 u u 10M 2011-07-12 10:19 test.file
> u@u:~$ time cp test.file /media/E0FD-1813/copyto
>
> real    0m0.480s
> user    0m0.000s
> sys     0m0.024s
> [..]
> ============ AFTER THE PATCH =============
> Sandisk 2GB Class2 SD
> ==========================================
>
> === WRITE ===
> u@u:~$ time cp ./test.file /media/E0FD-1813/copyto1
>
> real    0m0.757s
> user    0m0.000s
> sys     0m0.044s

This suggests that there *was* a considerable difference in write speed, no?

It might be helpful to use Arnd's flashbench tool¹ for further benchmarking,
since it does the right thing with using direct I/O access without caches.

Thanks,

- Chris.

¹: http://git.linaro.org/gitweb?p=people/arnd/flashbench.git
-- 
Chris Ball   <cjb@laptop.org>   <http://printf.net/>
One Laptop Per Child

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2011-07-12 16:20       ` Chris Ball
@ 2011-07-12 17:09         ` Manoj Iyer
  2011-07-12 17:30           ` Chris Ball
  0 siblings, 1 reply; 28+ messages in thread
From: Manoj Iyer @ 2011-07-12 17:09 UTC (permalink / raw)
  To: Chris Ball
  Cc: Manoj Iyer, linux-kernel, jbarnes, matsumur, linux-pci, linux-mmc

[-- Attachment #1: Type: TEXT/PLAIN, Size: 6554 bytes --]


Chris,

btw only the 1st write was slower, subsequent writes looks ok.

  === before ==        === after ==
real    0m0.480s vs real    0m0.757s
real    0m0.476s vs real    0m0.488s
real    0m0.484s vs real    0m0.484s
real    0m0.480s vs real    0m0.486s

I have attached the output of flashbench and the time test to

http://launchpad.net/bugs/773524

Might be easier for side by side comparison. But I have it pasted here as 
well.

=== FLASHBENCH ================
======== BEFORE PATCH =========
== Guess erase block and page sizes ==
u@u:~/flash/flashbench$ sudo ./flashbench -a /dev/mmcblk0 
--blocksize=1024
align 536870912 pre 1.49ms      on 3.42ms       post 3.06ms     diff 
1.15ms
align 268435456 pre 1.51ms      on 3.7ms        post 3.09ms     diff 1.4ms
align 134217728 pre 2.19ms      on 3.64ms       post 3.05ms     diff 
1.03ms
align 67108864  pre 1.49ms      on 3.53ms       post 3.1ms      diff 
1.23ms
align 33554432  pre 2.45ms      on 3.79ms       post 3.12ms     diff 999µs
align 16777216  pre 1.46ms      on 3.52ms       post 3.1ms      diff 
1.24ms
align 8388608   pre 1.46ms      on 3.52ms       post 3.1ms      diff 
1.24ms
align 4194304   pre 1.46ms      on 3.52ms       post 3.1ms      diff 
1.24ms
align 2097152   pre 1.46ms      on 3.52ms       post 3.1ms      diff 
1.24ms
align 1048576   pre 2.02ms      on 3.79ms       post 3.12ms     diff 
1.22ms
align 524288    pre 2.22ms      on 2.39ms       post 2.41ms     diff 
77.6µs
align 262144    pre 2.43ms      on 2.61ms       post 2.61ms     diff 
95.8µs
align 131072    pre 2.58ms      on 2.77ms       post 2.73ms     diff 111µs
align 65536     pre 2.65ms      on 2.87ms       post 2.74ms     diff 169µs
align 32768     pre 2.7ms       on 2.88ms       post 2.84ms     diff 107µs
align 16384     pre 2.73ms      on 2.91ms       post 2.87ms     diff 111µs
align 8192      pre 2.74ms      on 2.92ms       post 2.88ms     diff 109µs
align 4096      pre 2.9ms       on 2.86ms       post 2.83ms     diff 
-7395ns
align 2048      pre 2.88ms      on 2.87ms       post 2.86ms     diff 
2.28µs
u@u:~/flash/flashbench$

== Finding the number of open erase blocks ==
u@u:~/flash/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024 * 
1024] --blocksize=$[256 * 1024] /dev/mmcblk0  --open-au-nr=2
4MiB    6.36M/s
2MiB    6.24M/s
1MiB    6.17M/s
512KiB  6.19M/s
256KiB  6.22M/s
u@u:~/flash/flashbench$

u@u:~/flash/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024 * 
1024] --blocksize=$[256 * 1024] /dev/mmcblk0  --open-au-nr=3
4MiB    6.25M/s
2MiB    6.25M/s
1MiB    6.24M/s
512KiB  2.53M/s
256KiB  1.14M/s
u@u:~/flash/flashbench$


====== AFTER PATCH ========
== Guess erase block and page sizes ==
u@u:~/flash/flashbench$ sudo ./flashbench -a /dev/mmcblk0 --blocksize=1024
[sudo] password for u:
align 536870912 pre 1.56ms      on 3.53ms       post 3.14ms     diff 
1.18ms
align 268435456 pre 1.54ms      on 3.52ms       post 3.12ms     diff 
1.19ms
align 134217728 pre 1.5ms       on 3.5ms        post 3.1ms      diff 1.2ms
align 67108864  pre 1.56ms      on 3.68ms       post 3.2ms      diff 1.3ms
align 33554432  pre 1.55ms      on 3.6ms        post 3.15ms     diff 
1.25ms
align 16777216  pre 1.57ms      on 3.62ms       post 3.18ms     diff 
1.25ms
align 8388608   pre 1.57ms      on 3.61ms       post 3.16ms     diff 
1.24ms
align 4194304   pre 1.55ms      on 3.6ms        post 3.16ms     diff 
1.24ms
align 2097152   pre 1.56ms      on 3.61ms       post 3.22ms     diff 
1.22ms
align 1048576   pre 1.57ms      on 3.62ms       post 3.16ms     diff 
1.25ms
align 524288    pre 2.23ms      on 2.42ms       post 2.44ms     diff 81µs
align 262144    pre 2.49ms      on 2.67ms       post 2.61ms     diff 115µs
align 131072    pre 2.68ms      on 2.87ms       post 2.8ms      diff 129µs
align 65536     pre 2.78ms      on 2.98ms       post 2.85ms     diff 172µs
align 32768     pre 2.8ms       on 2.99ms       post 2.94ms     diff 117µs
align 16384     pre 2.81ms      on 2.99ms       post 2.95ms     diff 117µs
align 8192      pre 2.86ms      on 3ms  post 3.01ms     diff 68.6µs
align 4096      pre 2.96ms      on 2.93ms       post 2.93ms     diff 
-14207n
align 2048      pre 2.98ms      on 3ms  post 2.98ms     diff 20.1µs
u@u:~/flash/flashbench$

== Finding the number of open erase blocks ==
u@u:~/flash/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024 * 
1024]         --blocksize=$[256 * 1024] /dev/mmcblk0  --open-au-nr=2
[sudo] password for u:
4MiB    5.49M/s
2MiB    6.22M/s
1MiB    6.22M/s
512KiB  6.21M/s
256KiB  6.21M/s
u@u:~/flash/flashbench$

u@u:~/flash/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024 * 
1024] --blocksize=$[256 * 1024] /dev/mmcblk0  --open-au-nr=3
[sudo] password for u:
4MiB    5.31M/s
2MiB    6.16M/s
1MiB    6.2M/s
512KiB  2.53M/s
256KiB  1.14M/s
u@u:~/flash/flashbench$



On Tue, 12 Jul 2011, Chris Ball wrote:

> Hi Manoj,
>
> On Tue, Jul 12 2011, Manoj Iyer wrote:
>> Test System: ThinkPad X220 Tablet, using Sandisk 2GB Class 2 SD, I did
>> not see any considerable change in read/write times. Also, tested a
>> Transcend MMCPlus 2GB card, before the patch was applied it would not
>> mount the card, and would cause IO errors on read/write, but after the
>> patch it mounts and works correctly.
>> [..]
>> ============ BEFORE THE PATCH ===============
>> Sandisk 2GB Class2 SD
>> =============================================
>> === WRITE ===
>> u@u:~$ ls -lh test.file
>> -rw-r--r-- 1 u u 10M 2011-07-12 10:19 test.file
>> u@u:~$ time cp test.file /media/E0FD-1813/copyto
>>
>> real    0m0.480s
>> user    0m0.000s
>> sys     0m0.024s
>> [..]
>> ============ AFTER THE PATCH =============
>> Sandisk 2GB Class2 SD
>> ==========================================
>>
>> === WRITE ===
>> u@u:~$ time cp ./test.file /media/E0FD-1813/copyto1
>>
>> real    0m0.757s
>> user    0m0.000s
>> sys     0m0.044s
>
> This suggests that there *was* a considerable difference in write speed, no?
>
> It might be helpful to use Arnd's flashbench tool¹ for further benchmarking,
> since it does the right thing with using direct I/O access without caches.
>
> Thanks,
>
> - Chris.
>
> ¹: http://git.linaro.org/gitweb?p=people/arnd/flashbench.git
> -- 
> Chris Ball   <cjb@laptop.org>   <http://printf.net/>
> One Laptop Per Child
>
>

--
====================
Manoj Iyer
Ubuntu/Canonical
Hardware Enablement
====================

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2011-07-12 17:09         ` Manoj Iyer
@ 2011-07-12 17:30           ` Chris Ball
  2011-07-12 18:00             ` Arnd Bergmann
  0 siblings, 1 reply; 28+ messages in thread
From: Chris Ball @ 2011-07-12 17:30 UTC (permalink / raw)
  To: Manoj Iyer
  Cc: linux-kernel, jbarnes, matsumur, linux-pci, linux-mmc, Arnd Bergmann

Hi,

On Tue, Jul 12 2011, Manoj Iyer wrote:
> btw only the 1st write was slower, subsequent writes looks ok.
> [..]
> I have attached the output of flashbench and the time test to
>
> http://launchpad.net/bugs/773524
> [..]
> == Finding the number of open erase blocks ==
> u@u:~/flash/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024 *
> 1024] --blocksize=$[256 * 1024] /dev/mmcblk0  --open-au-nr=2
> 4MiB    6.36M/s
> 2MiB    6.24M/s
> 1MiB    6.17M/s
> 512KiB  6.19M/s
> 256KiB  6.22M/s
> u@u:~/flash/flashbench$
> [..]
> ====== AFTER PATCH ========
> [..]
> == Finding the number of open erase blocks ==
> u@u:~/flash/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024 *
> 1024]         --blocksize=$[256 * 1024] /dev/mmcblk0  --open-au-nr=2
> [sudo] password for u:
> 4MiB    5.49M/s
> 2MiB    6.22M/s
> 1MiB    6.22M/s
> 512KiB  6.21M/s
> 256KiB  6.21M/s
> u@u:~/flash/flashbench$

That's interesting.  Arnd, any idea why only the first test of the
flashbench run would be slower after the patch?

Thanks,

- Chris.
-- 
Chris Ball   <cjb@laptop.org>   <http://printf.net/>
One Laptop Per Child

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2011-07-12 17:30           ` Chris Ball
@ 2011-07-12 18:00             ` Arnd Bergmann
  2011-07-13 14:45               ` Chris Ball
  0 siblings, 1 reply; 28+ messages in thread
From: Arnd Bergmann @ 2011-07-12 18:00 UTC (permalink / raw)
  To: Chris Ball
  Cc: Manoj Iyer, linux-kernel, jbarnes, matsumur, linux-pci, linux-mmc

On Tuesday 12 July 2011 19:30:42 Chris Ball wrote:
> On Tue, Jul 12 2011, Manoj Iyer wrote:
> > btw only the 1st write was slower, subsequent writes looks ok.
> > [..]
> > I have attached the output of flashbench and the time test to
> >
> > http://launchpad.net/bugs/773524
> > [..]
> > == Finding the number of open erase blocks ==
> > u@u:~/flash/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024 *
> > 1024] --blocksize=$[256 * 1024] /dev/mmcblk0  --open-au-nr=2
> > 4MiB    6.36M/s
> > 2MiB    6.24M/s
> > 1MiB    6.17M/s
> > 512KiB  6.19M/s
> > 256KiB  6.22M/s
> > u@u:~/flash/flashbench$
> > [..]
> > ====== AFTER PATCH ========
> > [..]
> > == Finding the number of open erase blocks ==
> > u@u:~/flash/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024 *
> > 1024]         --blocksize=$[256 * 1024] /dev/mmcblk0  --open-au-nr=2
> > [sudo] password for u:
> > 4MiB    5.49M/s
> > 2MiB    6.22M/s
> > 1MiB    6.22M/s
> > 512KiB  6.21M/s
> > 256KiB  6.21M/s
> > u@u:~/flash/flashbench$
> 
> That's interesting.  Arnd, any idea why only the first test of the
> flashbench run would be slower after the patch?

I would very much expect that to be nonreproducible. The first row
in each test is the result of a single write() system call and does
not get averaged out. More importantly the time for each write
depends a lot of the state of the card before the write.

For instance when you do a lot of random writes to a card, optionally
take it out and put it into a different machine, and then do a large
linear write, that linear write will be very slow because the
card has to garbage collect all the random writes that were done
earlier. After a few writes (usually one is enough), it gets back
to the full performance.

	Arnd

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2011-07-12 18:00             ` Arnd Bergmann
@ 2011-07-13 14:45               ` Chris Ball
  2011-07-13 15:42                 ` Manoj Iyer
  0 siblings, 1 reply; 28+ messages in thread
From: Chris Ball @ 2011-07-13 14:45 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Manoj Iyer, linux-kernel, jbarnes, matsumur, linux-pci, linux-mmc

Hi Arnd,

On Tue, Jul 12 2011, Arnd Bergmann wrote:
> I would very much expect that to be nonreproducible. The first row
> in each test is the result of a single write() system call and does
> not get averaged out. More importantly the time for each write
> depends a lot of the state of the card before the write.
>
> For instance when you do a lot of random writes to a card, optionally
> take it out and put it into a different machine, and then do a large
> linear write, that linear write will be very slow because the
> card has to garbage collect all the random writes that were done
> earlier. After a few writes (usually one is enough), it gets back
> to the full performance.

That makes sense.  Do you think this explains Manoj getting a slower
first file copy speed (757ms vs. 480ms) after applying his patch?
(Manoj, perhaps you could retry your test without GC being needed?)

What would we expect lowering the SD base clock frequency from 200MHz
to 50MHz to do to performance theoretically?

Thanks,

- Chris.
-- 
Chris Ball   <cjb@laptop.org>   <http://printf.net/>
One Laptop Per Child

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2011-07-13 14:45               ` Chris Ball
@ 2011-07-13 15:42                 ` Manoj Iyer
  2011-07-13 16:35                   ` Arnd Bergmann
  0 siblings, 1 reply; 28+ messages in thread
From: Manoj Iyer @ 2011-07-13 15:42 UTC (permalink / raw)
  To: Chris Ball
  Cc: Arnd Bergmann, Manoj Iyer, linux-kernel, jbarnes, matsumur,
	linux-pci, linux-mmc


Chris/Arnd,

Here is a series of test I did with the patched kernel.


== cold boot insert SD card ==
u@u:~/flash/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024 * 
1024] --blocksize=$[256 * 1024] /dev/mmcblk0  --open-au-nr=2
4MiB    4.96M/s
2MiB    6.3M/s
1MiB    6.23M/s
512KiB  6.23M/s
256KiB  6.26M/s

== rerun the same test 2nd time ===
u@u:~/flash/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024 * 
1024] --blocksize=$[256 * 1024] /dev/mmcblk0  --open-au-nr=2
4MiB    6.28M/s
2MiB    6.29M/s
1MiB    6.29M/s
512KiB  6.29M/s
256KiB  6.26M/s

== remove and reinsert the SD card ==
u@u:~/flash/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024 * 
1024] --blocksize=$[256 * 1024] /dev/mmcblk0  --open-au-nr=2
4MiB    6.42M/s
2MiB    6.28M/s
1MiB    6.22M/s
512KiB  6.23M/s
256KiB  6.26M/s

== remove and reinsert the SD card ==
u@u:~/flash/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024 * 
1024] --blocksize=$[256 * 1024] /dev/mmcblk0  --open-au-nr=2
4MiB    6.42M/s
2MiB    6.3M/s
1MiB    6.22M/s
512KiB  6.25M/s
256KiB  6.24M/s

== reboot, reinsert the SD card ==
u@u:~/flash/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024 * 
1024] --blocksize=$[256 * 1024] /dev/mmcblk0  --open-au-nr=2
[sudo] password for u:
4MiB    6.45M/s
2MiB    6.33M/s
1MiB    6.25M/s
512KiB  6.29M/s
256KiB  6.3M/s
u@u:~/flash/flashbench$

== rerun the test again ==
u@u:~/flash/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024 * 
1024] --blocksize=$[256 * 1024] /dev/mmcblk0  --open-au-nr=2
4MiB    6.27M/s
2MiB    6.27M/s
1MiB    6.28M/s
512KiB  6.27M/s
256KiB  6.24M/s
u@u:~/flash/flashbench$

== poweroff, Poweron, insert SD card ==
u@u:~/flash/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024 * 
1024] --blocksize=$[256 * 1024] /dev/mmcblk0  --open-au-nr=2
[sudo] password for u:
4MiB    6.45M/s
2MiB    6.33M/s
1MiB    6.24M/s
512KiB  6.29M/s
256KiB  6.32M/s
u@u:~/flash/flashbench$

== rerun the test again ==
u@u:~/flash/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024 * 
1024] --blocksize=$[256 * 1024] /dev/mmcblk0  --open-au-nr=2
4MiB    6.29M/s
2MiB    6.28M/s
1MiB    6.29M/s
512KiB  6.28M/s
256KiB  6.25M/s
u@u:~/flash/flashbench$

On Wed, 13 Jul 2011, Chris Ball wrote:

> Hi Arnd,
>
> On Tue, Jul 12 2011, Arnd Bergmann wrote:
>> I would very much expect that to be nonreproducible. The first row
>> in each test is the result of a single write() system call and does
>> not get averaged out. More importantly the time for each write
>> depends a lot of the state of the card before the write.
>>
>> For instance when you do a lot of random writes to a card, optionally
>> take it out and put it into a different machine, and then do a large
>> linear write, that linear write will be very slow because the
>> card has to garbage collect all the random writes that were done
>> earlier. After a few writes (usually one is enough), it gets back
>> to the full performance.
>
> That makes sense.  Do you think this explains Manoj getting a slower
> first file copy speed (757ms vs. 480ms) after applying his patch?
> (Manoj, perhaps you could retry your test without GC being needed?)
>
> What would we expect lowering the SD base clock frequency from 200MHz
> to 50MHz to do to performance theoretically?
>
> Thanks,
>
> - Chris.
> -- 
> Chris Ball   <cjb@laptop.org>   <http://printf.net/>
> One Laptop Per Child
>
>

--
====================
Manoj Iyer
Ubuntu/Canonical
Hardware Enablement
====================

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2011-07-13 15:42                 ` Manoj Iyer
@ 2011-07-13 16:35                   ` Arnd Bergmann
  2011-07-13 16:46                     ` Manoj Iyer
  2011-07-13 16:50                     ` Chris Ball
  0 siblings, 2 replies; 28+ messages in thread
From: Arnd Bergmann @ 2011-07-13 16:35 UTC (permalink / raw)
  To: Manoj Iyer
  Cc: Chris Ball, linux-kernel, jbarnes, matsumur, linux-pci, linux-mmc

On Wednesday 13 July 2011, Manoj Iyer wrote:
> 
> Chris/Arnd,
> 
> Here is a series of test I did with the patched kernel.

> == cold boot insert SD card ==
> u@u:~/flash/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024 * 
> 1024] --blocksize=$[256 * 1024] /dev/mmcblk0  --open-au-nr=2
> 4MiB    4.96M/s
> 2MiB    6.3M/s
> 1MiB    6.23M/s
> 512KiB  6.23M/s
> 256KiB  6.26M/s

The very first one obviously triggers a garbage collection.
Everything after that is well within measuring accuracy around 6.25MB/s

> On Wed, 13 Jul 2011, Chris Ball wrote:

> >
> > That makes sense.  Do you think this explains Manoj getting a slower
> > first file copy speed (757ms vs. 480ms) after applying his patch?
> > (Manoj, perhaps you could retry your test without GC being needed?)

Yes. For a single sample, it can easily explain differences up to 500ms.
You have to average out file system benchmarks across a lot of files
to be sure.

> > What would we expect lowering the SD base clock frequency from 200MHz
> > to 50MHz to do to performance theoretically?

Not much. This card only has a 6MB/s write speed, which is well below
what a 50 MHz bus can do. It mgiht be different on a fast eMMC device
or a Sandisk Extreme Pro UHS-1 card.

	Arnd

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2011-07-13 16:35                   ` Arnd Bergmann
@ 2011-07-13 16:46                     ` Manoj Iyer
  2011-07-13 16:55                       ` Chris Ball
  2011-07-13 16:50                     ` Chris Ball
  1 sibling, 1 reply; 28+ messages in thread
From: Manoj Iyer @ 2011-07-13 16:46 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Manoj Iyer, Chris Ball, linux-kernel, jbarnes, matsumur,
	linux-pci, linux-mmc


Chris,

Do you think that lowering the controller speed to 50Mhz in case we have a 
failure is a better idea than reducing the speed for all e823 ricoh 
controllers? I can send a V2 of the patch. What do you think ?

On Wed, 13 Jul 2011, Arnd Bergmann wrote:

> On Wednesday 13 July 2011, Manoj Iyer wrote:
>>
>> Chris/Arnd,
>>
>> Here is a series of test I did with the patched kernel.
>
>> == cold boot insert SD card ==
>> u@u:~/flash/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024 *
>> 1024] --blocksize=$[256 * 1024] /dev/mmcblk0  --open-au-nr=2
>> 4MiB    4.96M/s
>> 2MiB    6.3M/s
>> 1MiB    6.23M/s
>> 512KiB  6.23M/s
>> 256KiB  6.26M/s
>
> The very first one obviously triggers a garbage collection.
> Everything after that is well within measuring accuracy around 6.25MB/s
>
>> On Wed, 13 Jul 2011, Chris Ball wrote:
>
>>>
>>> That makes sense.  Do you think this explains Manoj getting a slower
>>> first file copy speed (757ms vs. 480ms) after applying his patch?
>>> (Manoj, perhaps you could retry your test without GC being needed?)
>
> Yes. For a single sample, it can easily explain differences up to 500ms.
> You have to average out file system benchmarks across a lot of files
> to be sure.
>
>>> What would we expect lowering the SD base clock frequency from 200MHz
>>> to 50MHz to do to performance theoretically?
>
> Not much. This card only has a 6MB/s write speed, which is well below
> what a 50 MHz bus can do. It mgiht be different on a fast eMMC device
> or a Sandisk Extreme Pro UHS-1 card.
>
> 	Arnd
>
>

--
====================
Manoj Iyer
Ubuntu/Canonical
Hardware Enablement
====================

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2011-07-13 16:35                   ` Arnd Bergmann
  2011-07-13 16:46                     ` Manoj Iyer
@ 2011-07-13 16:50                     ` Chris Ball
  2011-07-13 16:54                       ` Manoj Iyer
  1 sibling, 1 reply; 28+ messages in thread
From: Chris Ball @ 2011-07-13 16:50 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Manoj Iyer, linux-kernel, jbarnes, matsumur, linux-pci, linux-mmc

Hi,

On Wed, Jul 13 2011, Arnd Bergmann wrote:
> Not much. This card only has a 6MB/s write speed, which is well below
> what a 50 MHz bus can do. It mgiht be different on a fast eMMC device
> or a Sandisk Extreme Pro UHS-1 card.

Okay, I see.  I think we're good for now, then -- hopefully anyone using
a UHS card on their laptop will see the printk when wondering why their
performance isn't great and get in touch with us, and we can investigate
more then.

I've pushed Manoj's patch to mmc-next for 3.1 now, with the printk
changes and a stable@ tag.

Thanks again,

- Chris.
-- 
Chris Ball   <cjb@laptop.org>   <http://printf.net/>
One Laptop Per Child

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2011-07-13 16:50                     ` Chris Ball
@ 2011-07-13 16:54                       ` Manoj Iyer
  2011-07-18 23:27                         ` Jesse Barnes
  0 siblings, 1 reply; 28+ messages in thread
From: Manoj Iyer @ 2011-07-13 16:54 UTC (permalink / raw)
  To: Chris Ball
  Cc: Arnd Bergmann, Manoj Iyer, linux-kernel, jbarnes, matsumur,
	linux-pci, linux-mmc


> On Wed, Jul 13 2011, Arnd Bergmann wrote:
>> Not much. This card only has a 6MB/s write speed, which is well below
>> what a 50 MHz bus can do. It mgiht be different on a fast eMMC device
>> or a Sandisk Extreme Pro UHS-1 card.
>
> Okay, I see.  I think we're good for now, then -- hopefully anyone using
> a UHS card on their laptop will see the printk when wondering why their
> performance isn't great and get in touch with us, and we can investigate
> more then.
>
> I've pushed Manoj's patch to mmc-next for 3.1 now, with the printk
> changes and a stable@ tag.
>

Thanks Chris!

> Thanks again,
>
> - Chris.
> -- 
> Chris Ball   <cjb@laptop.org>   <http://printf.net/>
> One Laptop Per Child
>
>

--
====================
Manoj Iyer
Ubuntu/Canonical
Hardware Enablement
====================

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2011-07-13 16:46                     ` Manoj Iyer
@ 2011-07-13 16:55                       ` Chris Ball
  2011-07-13 17:02                         ` Manoj Iyer
  0 siblings, 1 reply; 28+ messages in thread
From: Chris Ball @ 2011-07-13 16:55 UTC (permalink / raw)
  To: Manoj Iyer
  Cc: Arnd Bergmann, linux-kernel, jbarnes, matsumur, linux-pci, linux-mmc

Hi,

On Wed, Jul 13 2011, Manoj Iyer wrote:
> Do you think that lowering the controller speed to 50Mhz in case we
> have a failure is a better idea than reducing the speed for all e823
> ricoh controllers? I can send a V2 of the patch. What do you think ?

It could be better.  Do you think you could get hold of a UHS-1 card for
testing with?  (I don't think it's worth doing if there's no appreciable
performance difference either way.)

Thanks,

- Chris.
-- 
Chris Ball   <cjb@laptop.org>   <http://printf.net/>
One Laptop Per Child

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2011-07-13 16:55                       ` Chris Ball
@ 2011-07-13 17:02                         ` Manoj Iyer
  2011-07-13 17:08                           ` Chris Ball
  0 siblings, 1 reply; 28+ messages in thread
From: Manoj Iyer @ 2011-07-13 17:02 UTC (permalink / raw)
  To: Chris Ball
  Cc: Manoj Iyer, Arnd Bergmann, linux-kernel, jbarnes, matsumur,
	linux-pci, linux-mmc


> It could be better.  Do you think you could get hold of a UHS-1 card for
> testing with?  (I don't think it's worth doing if there's no appreciable
> performance difference either way.)

Yes, I can go out and buy one today, do the performance tests like I have 
done before and report back to you.

>
> Thanks,
>
> - Chris.
> -- 
> Chris Ball   <cjb@laptop.org>   <http://printf.net/>
> One Laptop Per Child
>
>

--
====================
Manoj Iyer
Ubuntu/Canonical
Hardware Enablement
====================

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2011-07-13 17:02                         ` Manoj Iyer
@ 2011-07-13 17:08                           ` Chris Ball
  2011-07-18 20:36                             ` Manoj Iyer
  0 siblings, 1 reply; 28+ messages in thread
From: Chris Ball @ 2011-07-13 17:08 UTC (permalink / raw)
  To: Manoj Iyer
  Cc: Arnd Bergmann, linux-kernel, jbarnes, matsumur, linux-pci, linux-mmc

Hi,

On Wed, Jul 13 2011, Manoj Iyer wrote:
>> It could be better.  Do you think you could get hold of a UHS-1 card for
>> testing with?  (I don't think it's worth doing if there's no appreciable
>> performance difference either way.)
>
> Yes, I can go out and buy one today, do the performance tests like I
> have done before and report back to you.

Perfect.  Thanks very much!

- Chris.
-- 
Chris Ball   <cjb@laptop.org>   <http://printf.net/>
One Laptop Per Child

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2011-07-13 17:08                           ` Chris Ball
@ 2011-07-18 20:36                             ` Manoj Iyer
  2011-07-18 20:40                               ` Chris Ball
  0 siblings, 1 reply; 28+ messages in thread
From: Manoj Iyer @ 2011-07-18 20:36 UTC (permalink / raw)
  To: Chris Ball
  Cc: Manoj Iyer, Arnd Bergmann, linux-kernel, jbarnes, matsumur,
	linux-pci, linux-mmc

[-- Attachment #1: Type: TEXT/PLAIN, Size: 2501 bytes --]


Chris,

Here are the results with SanDisk SDSDXP1-016G-A75 16GB Extreme Pro SDHC 
Memory Card.

u@u:~/flashbench$ sudo ./flashbench -a /dev/mmcblk0p1
[sudo] password for u:
align 4294967296        pre 1.16ms      on 1.15ms       post 1.15ms 
diff -2024ns
align 2147483648        pre 1.2ms       on 1.2ms        post 1.2ms 
diff 522ns
align 1073741824        pre 1.21ms      on 1.2ms        post 1.2ms 
diff 570ns
align 536870912 pre 1.2ms       on 1.2ms        post 1.2ms      diff 662ns
align 268435456 pre 1.2ms       on 1.2ms        post 1.2ms      diff 404ns
align 134217728 pre 1.2ms       on 1.2ms        post 1.2ms      diff 
-1692ns
align 67108864  pre 1.15ms      on 1.16ms       post 1.16ms     diff 
1.37µs
align 33554432  pre 1.18ms      on 1.19ms       post 1.15ms     diff 
31.3µs
align 16777216  pre 1.17ms      on 1.19ms       post 1.15ms     diff 
31.5µs
align 8388608   pre 1.17ms      on 1.21ms       post 1.18ms     diff 
32.9µs
align 4194304   pre 1.37ms      on 1.55ms       post 1.17ms     diff 274µs
align 2097152   pre 1.37ms      on 1.37ms       post 1.39ms     diff 
-7992ns
align 1048576   pre 1.33ms      on 1.33ms       post 1.34ms     diff 
-7793ns
align 524288    pre 1.33ms      on 1.33ms       post 1.34ms     diff 
-6641ns
align 262144    pre 1.34ms      on 1.38ms       post 1.35ms     diff 
33.8µs
align 131072    pre 1.35ms      on 1.37ms       post 1.34ms     diff 
27.2µs
align 65536     pre 1.34ms      on 1.37ms       post 1.34ms     diff 
31.7µs
align 32768     pre 1.33ms      on 1.37ms       post 1.34ms     diff 
32.5µs

u@u:~/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024 * 1024] 
--blocksize=$[256 * 1024] /dev/mmcblk0p1 --open-au-nr=2
4MiB    23.2M/s
2MiB    23.6M/s
1MiB    23.5M/s
512KiB  23.2M/s
256KiB  23.2M/s
u@u:~/flashbench$


On Wed, 13 Jul 2011, Chris Ball wrote:

> Hi,
>
> On Wed, Jul 13 2011, Manoj Iyer wrote:
>>> It could be better.  Do you think you could get hold of a UHS-1 card for
>>> testing with?  (I don't think it's worth doing if there's no appreciable
>>> performance difference either way.)
>>
>> Yes, I can go out and buy one today, do the performance tests like I
>> have done before and report back to you.
>
> Perfect.  Thanks very much!
>
> - Chris.
> -- 
> Chris Ball   <cjb@laptop.org>   <http://printf.net/>
> One Laptop Per Child
>
>

--
====================
Manoj Iyer
Ubuntu/Canonical
Hardware Enablement
====================

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2011-07-18 20:36                             ` Manoj Iyer
@ 2011-07-18 20:40                               ` Chris Ball
  2011-07-18 20:47                                 ` Manoj Iyer
  0 siblings, 1 reply; 28+ messages in thread
From: Chris Ball @ 2011-07-18 20:40 UTC (permalink / raw)
  To: Manoj Iyer
  Cc: Arnd Bergmann, linux-kernel, jbarnes, matsumur, linux-pci, linux-mmc

Hi Manoj,

On Mon, Jul 18 2011, Manoj Iyer wrote:
> Here are the results with SanDisk SDSDXP1-016G-A75 16GB Extreme Pro
> SDHC Memory Card.
>
> u@u:~/flashbench$ sudo ./flashbench -a /dev/mmcblk0p1
> [sudo] password for u:
> align 4294967296        pre 1.16ms      on 1.15ms       post 1.15ms
> diff -2024ns
> align 2147483648        pre 1.2ms       on 1.2ms        post 1.2ms
> diff 522ns
> align 1073741824        pre 1.21ms      on 1.2ms        post 1.2ms
> diff 570ns
> align 536870912 pre 1.2ms       on 1.2ms        post 1.2ms      diff 662ns
> align 268435456 pre 1.2ms       on 1.2ms        post 1.2ms      diff 404ns
> align 134217728 pre 1.2ms       on 1.2ms        post 1.2ms      diff
> -1692ns
> align 67108864  pre 1.15ms      on 1.16ms       post 1.16ms     diff
> 1.37µs
> align 33554432  pre 1.18ms      on 1.19ms       post 1.15ms     diff
> 31.3µs
> align 16777216  pre 1.17ms      on 1.19ms       post 1.15ms     diff
> 31.5µs
> align 8388608   pre 1.17ms      on 1.21ms       post 1.18ms     diff
> 32.9µs
> align 4194304   pre 1.37ms      on 1.55ms       post 1.17ms     diff 274µs
> align 2097152   pre 1.37ms      on 1.37ms       post 1.39ms     diff
> -7992ns
> align 1048576   pre 1.33ms      on 1.33ms       post 1.34ms     diff
> -7793ns
> align 524288    pre 1.33ms      on 1.33ms       post 1.34ms     diff
> -6641ns
> align 262144    pre 1.34ms      on 1.38ms       post 1.35ms     diff
> 33.8µs
> align 131072    pre 1.35ms      on 1.37ms       post 1.34ms     diff
> 27.2µs
> align 65536     pre 1.34ms      on 1.37ms       post 1.34ms     diff
> 31.7µs
> align 32768     pre 1.33ms      on 1.37ms       post 1.34ms     diff
> 32.5µs
>
> u@u:~/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024 * 1024]
> --blocksize=$[256 * 1024] /dev/mmcblk0p1 --open-au-nr=2
> 4MiB    23.2M/s
> 2MiB    23.6M/s
> 1MiB    23.5M/s
> 512KiB  23.2M/s
> 256KiB  23.2M/s
> u@u:~/flashbench$

I don't understand whether these measurements are before or after your
patch -- we're looking to see what the *difference* in performance is
with the patch applied, right?

Thanks,

- Chris.
-- 
Chris Ball   <cjb@laptop.org>   <http://printf.net/>
One Laptop Per Child

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2011-07-18 20:40                               ` Chris Ball
@ 2011-07-18 20:47                                 ` Manoj Iyer
  2011-07-18 21:05                                   ` Chris Ball
  2012-11-22  0:29                                   ` Chris Ball
  0 siblings, 2 replies; 28+ messages in thread
From: Manoj Iyer @ 2011-07-18 20:47 UTC (permalink / raw)
  To: Chris Ball
  Cc: Manoj Iyer, Arnd Bergmann, linux-kernel, jbarnes, matsumur,
	linux-pci, linux-mmc

[-- Attachment #1: Type: TEXT/PLAIN, Size: 3355 bytes --]



Chris,

Right, without the patch I get..

[   52.526665] mmc0: new SDHC card at address e624
[   52.571228] mmcblk0: mmc0:e624 SD16G 14.8 GiB
[   52.591071] mmcblk0: retrying using single block read
[   52.593105] mmcblk0: error -84 transferring data, sector 0, nr 8, card 
status 0x900
[   52.593109] end_request: I/O error, dev mmcblk0, sector 0
[   52.594594] mmcblk0: error -84 transferring data, sector 1, nr 7, card 
status 0x900
[   52.594604] end_request: I/O error, dev mmcblk0, sector 1
[   52.602893] quiet_error: 24 callbacks suppressed
[   52.602902] Buffer I/O error on device mmcblk0, logical block 0
[   52.605349] ldm_validate_partition_table(): Disk read failed.
[   52.605384] Dev mmcblk0: unable to read RDB block 0
[   52.607729]  mmcblk0: unable to read partition table
u@u:~$

So, I cannot generate any comparison data with this SD card.

On Mon, 18 Jul 2011, Chris Ball wrote:

> Hi Manoj,
>
> On Mon, Jul 18 2011, Manoj Iyer wrote:
>> Here are the results with SanDisk SDSDXP1-016G-A75 16GB Extreme Pro
>> SDHC Memory Card.
>>
>> u@u:~/flashbench$ sudo ./flashbench -a /dev/mmcblk0p1
>> [sudo] password for u:
>> align 4294967296        pre 1.16ms      on 1.15ms       post 1.15ms
>> diff -2024ns
>> align 2147483648        pre 1.2ms       on 1.2ms        post 1.2ms
>> diff 522ns
>> align 1073741824        pre 1.21ms      on 1.2ms        post 1.2ms
>> diff 570ns
>> align 536870912 pre 1.2ms       on 1.2ms        post 1.2ms      diff 662ns
>> align 268435456 pre 1.2ms       on 1.2ms        post 1.2ms      diff 404ns
>> align 134217728 pre 1.2ms       on 1.2ms        post 1.2ms      diff
>> -1692ns
>> align 67108864  pre 1.15ms      on 1.16ms       post 1.16ms     diff
>> 1.37µs
>> align 33554432  pre 1.18ms      on 1.19ms       post 1.15ms     diff
>> 31.3µs
>> align 16777216  pre 1.17ms      on 1.19ms       post 1.15ms     diff
>> 31.5µs
>> align 8388608   pre 1.17ms      on 1.21ms       post 1.18ms     diff
>> 32.9µs
>> align 4194304   pre 1.37ms      on 1.55ms       post 1.17ms     diff 274µs
>> align 2097152   pre 1.37ms      on 1.37ms       post 1.39ms     diff
>> -7992ns
>> align 1048576   pre 1.33ms      on 1.33ms       post 1.34ms     diff
>> -7793ns
>> align 524288    pre 1.33ms      on 1.33ms       post 1.34ms     diff
>> -6641ns
>> align 262144    pre 1.34ms      on 1.38ms       post 1.35ms     diff
>> 33.8µs
>> align 131072    pre 1.35ms      on 1.37ms       post 1.34ms     diff
>> 27.2µs
>> align 65536     pre 1.34ms      on 1.37ms       post 1.34ms     diff
>> 31.7µs
>> align 32768     pre 1.33ms      on 1.37ms       post 1.34ms     diff
>> 32.5µs
>>
>> u@u:~/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 1024 * 1024]
>> --blocksize=$[256 * 1024] /dev/mmcblk0p1 --open-au-nr=2
>> 4MiB    23.2M/s
>> 2MiB    23.6M/s
>> 1MiB    23.5M/s
>> 512KiB  23.2M/s
>> 256KiB  23.2M/s
>> u@u:~/flashbench$
>
> I don't understand whether these measurements are before or after your
> patch -- we're looking to see what the *difference* in performance is
> with the patch applied, right?
>
> Thanks,
>
> - Chris.
> -- 
> Chris Ball   <cjb@laptop.org>   <http://printf.net/>
> One Laptop Per Child
>
>

--
====================
Manoj Iyer
Ubuntu/Canonical
Hardware Enablement
====================

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2011-07-18 20:47                                 ` Manoj Iyer
@ 2011-07-18 21:05                                   ` Chris Ball
  2011-07-18 21:12                                     ` Manoj Iyer
  2011-07-19 19:43                                     ` Manoj Iyer
  2012-11-22  0:29                                   ` Chris Ball
  1 sibling, 2 replies; 28+ messages in thread
From: Chris Ball @ 2011-07-18 21:05 UTC (permalink / raw)
  To: Manoj Iyer
  Cc: Arnd Bergmann, linux-kernel, jbarnes, matsumur, linux-pci, linux-mmc

Hi Manoj,

On Mon, Jul 18 2011, Manoj Iyer wrote:
> Right, without the patch I get..
>
> [   52.526665] mmc0: new SDHC card at address e624
> [   52.571228] mmcblk0: mmc0:e624 SD16G 14.8 GiB
> [   52.591071] mmcblk0: retrying using single block read
> [   52.593105] mmcblk0: error -84 transferring data, sector 0, nr 8,
> card status 0x900
> [   52.593109] end_request: I/O error, dev mmcblk0, sector 0
> [   52.594594] mmcblk0: error -84 transferring data, sector 1, nr 7,
> card status 0x900
> [   52.594604] end_request: I/O error, dev mmcblk0, sector 1
> [   52.602893] quiet_error: 24 callbacks suppressed
> [   52.602902] Buffer I/O error on device mmcblk0, logical block 0
> [   52.605349] ldm_validate_partition_table(): Disk read failed.
> [   52.605384] Dev mmcblk0: unable to read RDB block 0
> [   52.607729]  mmcblk0: unable to read partition table
> u@u:~$
>
> So, I cannot generate any comparison data with this SD card.

I see, thanks.  So we're lacking any data on what speed the card would
normally provide.  Perhaps you could try that card on a different
controller, just so we're able to see whether it's usually possible
to get closer to 45M/sec with it?

I think I'll take your patch as-is for 3.1 -- since if there is a
performance degradation, it's on cards that simply don't work at all
right now -- and if you're able to work on a followup patch that only
performs the clock-lowering after the first error, I think that'd be a
handy patch to have around.  Does that sound good?

Thanks!

- Chris.
-- 
Chris Ball   <cjb@laptop.org>   <http://printf.net/>
One Laptop Per Child

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2011-07-18 21:05                                   ` Chris Ball
@ 2011-07-18 21:12                                     ` Manoj Iyer
  2011-07-19 19:43                                     ` Manoj Iyer
  1 sibling, 0 replies; 28+ messages in thread
From: Manoj Iyer @ 2011-07-18 21:12 UTC (permalink / raw)
  To: Chris Ball
  Cc: Manoj Iyer, Arnd Bergmann, linux-kernel, jbarnes, matsumur,
	linux-pci, linux-mmc



> I see, thanks.  So we're lacking any data on what speed the card would
> normally provide.  Perhaps you could try that card on a different
> controller, just so we're able to see whether it's usually possible
> to get closer to 45M/sec with it?

Sure, let me generate some data on based on Ricoh R5C822.


>
> I think I'll take your patch as-is for 3.1 -- since if there is a
> performance degradation, it's on cards that simply don't work at all
> right now -- and if you're able to work on a followup patch that only
> performs the clock-lowering after the first error, I think that'd be a
> handy patch to have around.  Does that sound good?
>

That sounds good to me, that way we limit degradation in performance only 
to previously non-working cards. I will send the V2 soon.

> Thanks!
>
> - Chris.
> -- 
> Chris Ball   <cjb@laptop.org>   <http://printf.net/>
> One Laptop Per Child
>
>
Thanks a ton.
--
====================
Manoj Iyer
Ubuntu/Canonical
Hardware Enablement
====================

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2011-07-13 16:54                       ` Manoj Iyer
@ 2011-07-18 23:27                         ` Jesse Barnes
  0 siblings, 0 replies; 28+ messages in thread
From: Jesse Barnes @ 2011-07-18 23:27 UTC (permalink / raw)
  To: Manoj Iyer
  Cc: Chris Ball, Arnd Bergmann, linux-kernel, matsumur, linux-pci, linux-mmc

On Wed, 13 Jul 2011 11:54:40 -0500 (CDT)
Manoj Iyer <manoj.iyer@canonical.com> wrote:

> 
> > On Wed, Jul 13 2011, Arnd Bergmann wrote:
> >> Not much. This card only has a 6MB/s write speed, which is well
> >> below what a 50 MHz bus can do. It mgiht be different on a fast
> >> eMMC device or a Sandisk Extreme Pro UHS-1 card.
> >
> > Okay, I see.  I think we're good for now, then -- hopefully anyone
> > using a UHS card on their laptop will see the printk when wondering
> > why their performance isn't great and get in touch with us, and we
> > can investigate more then.
> >
> > I've pushed Manoj's patch to mmc-next for 3.1 now, with the printk
> > changes and a stable@ tag.
> >
> 
> Thanks Chris!

Assuming you can't move the patch into the MMC driver itself, you can
add my acked-by for the PCI quirk addition.

Thanks,
Jesse

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2011-07-18 21:05                                   ` Chris Ball
  2011-07-18 21:12                                     ` Manoj Iyer
@ 2011-07-19 19:43                                     ` Manoj Iyer
  1 sibling, 0 replies; 28+ messages in thread
From: Manoj Iyer @ 2011-07-19 19:43 UTC (permalink / raw)
  To: Chris Ball
  Cc: Manoj Iyer, Arnd Bergmann, linux-kernel, jbarnes, matsumur,
	linux-pci, linux-mmc

[-- Attachment #1: Type: TEXT/PLAIN, Size: 3735 bytes --]


Here is flashbench data on Ricoh R5C822 for SanDisk SDSDXP1-016G-A75 16GB 
Extreme Pro SDHC Memory Card. Dell XPS 1330M (Ubuntu Natty).

manjo@sleepy:~/Projects/flashbench$ sudo ./flashbench -a /dev/mmcblk0p1
[sudo] password for manjo:
align 4294967296        pre 1.91ms      on 1.92ms       post 1.92ms 
diff 4.46µs
align 2147483648        pre 1.99ms      on 1.99ms       post 1.99ms 
diff -642ns
align 1073741824        pre 1.99ms      on 1.99ms       post 1.99ms 
diff 435ns
align 536870912 pre 1.99ms      on 1.99ms       post 1.99ms     diff 
-1003ns
align 268435456 pre 1.99ms      on 1.99ms       post 1.99ms     diff 
-283ns
align 134217728 pre 1.99ms      on 1.99ms       post 1.99ms     diff 539ns
align 67108864  pre 1.92ms      on 1.91ms       post 1.91ms     diff 75ns
align 33554432  pre 1.97ms      on 2.01ms       post 1.97ms     diff 41µs
align 16777216  pre 1.98ms      on 2.02ms       post 1.97ms     diff 
43.9µs
align 8388608   pre 1.97ms      on 1.97ms       post 1.98ms     diff 
-3481ns
align 4194304   pre 2.22ms      on 2.39ms       post 1.97ms     diff 292µs
align 2097152   pre 2.29ms      on 2.29ms       post 2.3ms      diff 
-3058ns
align 1048576   pre 2.22ms      on 2.22ms       post 2.21ms     diff 100ns
align 524288    pre 2.22ms      on 2.21ms       post 2.21ms     diff 
-728ns
align 262144    pre 2.24ms      on 2.24ms       post 2.24ms     diff 
5.13µs
align 131072    pre 2.25ms      on 2.24ms       post 2.24ms     diff 275ns
align 65536     pre 2.23ms      on 2.23ms       post 2.23ms     diff 1.7µs
align 32768     pre 2.24ms      on 2.23ms       post 2.23ms     diff 
-2799ns

manjo@sleepy:~/Projects/flashbench$ sudo ./flashbench -O --erasesize=$[4 * 
1024 * 1024] --blocksize=$[256 * 1024] /dev/mmcblk0p1 --open-au-nr=2
4MiB    9.96M/s
2MiB    11.2M/s
1MiB    11.2M/s
512KiB  11.2M/s
256KiB  11.2M/s
manjo@sleepy:~/Projects/flashbench$


> Hi Manoj,
>
> On Mon, Jul 18 2011, Manoj Iyer wrote:
>> Right, without the patch I get..
>>
>> [   52.526665] mmc0: new SDHC card at address e624
>> [   52.571228] mmcblk0: mmc0:e624 SD16G 14.8 GiB
>> [   52.591071] mmcblk0: retrying using single block read
>> [   52.593105] mmcblk0: error -84 transferring data, sector 0, nr 8,
>> card status 0x900
>> [   52.593109] end_request: I/O error, dev mmcblk0, sector 0
>> [   52.594594] mmcblk0: error -84 transferring data, sector 1, nr 7,
>> card status 0x900
>> [   52.594604] end_request: I/O error, dev mmcblk0, sector 1
>> [   52.602893] quiet_error: 24 callbacks suppressed
>> [   52.602902] Buffer I/O error on device mmcblk0, logical block 0
>> [   52.605349] ldm_validate_partition_table(): Disk read failed.
>> [   52.605384] Dev mmcblk0: unable to read RDB block 0
>> [   52.607729]  mmcblk0: unable to read partition table
>> u@u:~$
>>
>> So, I cannot generate any comparison data with this SD card.
>
> I see, thanks.  So we're lacking any data on what speed the card would
> normally provide.  Perhaps you could try that card on a different
> controller, just so we're able to see whether it's usually possible
> to get closer to 45M/sec with it?
>
> I think I'll take your patch as-is for 3.1 -- since if there is a
> performance degradation, it's on cards that simply don't work at all
> right now -- and if you're able to work on a followup patch that only
> performs the clock-lowering after the first error, I think that'd be a
> handy patch to have around.  Does that sound good?
>
> Thanks!
>
> - Chris.
> -- 
> Chris Ball   <cjb@laptop.org>   <http://printf.net/>
> One Laptop Per Child
>
>

--
====================
Manoj Iyer
Ubuntu/Canonical
Hardware Enablement
====================

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2011-07-18 20:47                                 ` Manoj Iyer
  2011-07-18 21:05                                   ` Chris Ball
@ 2012-11-22  0:29                                   ` Chris Ball
  2012-11-26 16:42                                     ` Manoj Iyer
  1 sibling, 1 reply; 28+ messages in thread
From: Chris Ball @ 2012-11-22  0:29 UTC (permalink / raw)
  To: Manoj Iyer
  Cc: Arnd Bergmann, linux-kernel, jbarnes, matsumur, linux-pci, linux-mmc

Hi Manoj, Matsumuro-san,

On Mon, Jul 18 2011, Manoj Iyer wrote:
> Right, without the patch I get..
>
> [   52.526665] mmc0: new SDHC card at address e624
> [   52.571228] mmcblk0: mmc0:e624 SD16G 14.8 GiB
> [   52.591071] mmcblk0: retrying using single block read
> [   52.593105] mmcblk0: error -84 transferring data, sector 0, nr 8,
> card status 0x900
> [   52.593109] end_request: I/O error, dev mmcblk0, sector 0
> [   52.594594] mmcblk0: error -84 transferring data, sector 1, nr 7,
> card status 0x900
> [   52.594604] end_request: I/O error, dev mmcblk0, sector 1
> [   52.602893] quiet_error: 24 callbacks suppressed
> [   52.602902] Buffer I/O error on device mmcblk0, logical block 0
> [   52.605349] ldm_validate_partition_table(): Disk read failed.
> [   52.605384] Dev mmcblk0: unable to read RDB block 0
> [   52.607729]  mmcblk0: unable to read partition table
> u@u:~$
>
> So, I cannot generate any comparison data with this SD card.

I don't know if you remember this bug, but I have reports from two users
who see "error -84"s on :e823 controllers even with this patch active on
modern ThinkPads.

Maybe 50MHz isn't low enough sometimes?  Is it possible to lower the base
clock further?

I noticed that the frequency is encoded ine one of the PCI writes:
+        * 0x32  - 50Mhz new clock frequency

So if I get access to one of these systems, I might try lowering that
value (by half, say) and see what happens.  But at the moment I haven't
found someone who's willing to try kernel patches yet, and I don't have
one of these systems myself.

Thanks!

- Chris.
-- 
Chris Ball   <cjb@laptop.org>   <http://printf.net/>
One Laptop Per Child

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2012-11-22  0:29                                   ` Chris Ball
@ 2012-11-26 16:42                                     ` Manoj Iyer
  2012-11-26 16:57                                       ` Chris Ball
  0 siblings, 1 reply; 28+ messages in thread
From: Manoj Iyer @ 2012-11-26 16:42 UTC (permalink / raw)
  To: Chris Ball
  Cc: Manoj Iyer, Arnd Bergmann, linux-kernel, jbarnes, matsumur,
	linux-pci, linux-mmc


Chris,

Do you know what systems produce these errors? I can look and see if we 
have those for testing your patch.

Cheers
Manoj

On Wed, 21 Nov 2012, Chris Ball wrote:

> Hi Manoj, Matsumuro-san,
>
> On Mon, Jul 18 2011, Manoj Iyer wrote:
>> Right, without the patch I get..
>>
>> [   52.526665] mmc0: new SDHC card at address e624
>> [   52.571228] mmcblk0: mmc0:e624 SD16G 14.8 GiB
>> [   52.591071] mmcblk0: retrying using single block read
>> [   52.593105] mmcblk0: error -84 transferring data, sector 0, nr 8,
>> card status 0x900
>> [   52.593109] end_request: I/O error, dev mmcblk0, sector 0
>> [   52.594594] mmcblk0: error -84 transferring data, sector 1, nr 7,
>> card status 0x900
>> [   52.594604] end_request: I/O error, dev mmcblk0, sector 1
>> [   52.602893] quiet_error: 24 callbacks suppressed
>> [   52.602902] Buffer I/O error on device mmcblk0, logical block 0
>> [   52.605349] ldm_validate_partition_table(): Disk read failed.
>> [   52.605384] Dev mmcblk0: unable to read RDB block 0
>> [   52.607729]  mmcblk0: unable to read partition table
>> u@u:~$
>>
>> So, I cannot generate any comparison data with this SD card.
>
> I don't know if you remember this bug, but I have reports from two users
> who see "error -84"s on :e823 controllers even with this patch active on
> modern ThinkPads.
>
> Maybe 50MHz isn't low enough sometimes?  Is it possible to lower the base
> clock further?
>
> I noticed that the frequency is encoded ine one of the PCI writes:
> +        * 0x32  - 50Mhz new clock frequency
>
> So if I get access to one of these systems, I might try lowering that
> value (by half, say) and see what happens.  But at the moment I haven't
> found someone who's willing to try kernel patches yet, and I don't have
> one of these systems myself.
>
> Thanks!
>
> - Chris.
> -- 
> Chris Ball   <cjb@laptop.org>   <http://printf.net/>
> One Laptop Per Child
>
>

--
====================
Manoj Iyer
Ubuntu/Canonical
Hardware Enablement
====================

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
  2012-11-26 16:42                                     ` Manoj Iyer
@ 2012-11-26 16:57                                       ` Chris Ball
  0 siblings, 0 replies; 28+ messages in thread
From: Chris Ball @ 2012-11-26 16:57 UTC (permalink / raw)
  To: Manoj Iyer
  Cc: Arnd Bergmann, linux-kernel, jbarnes, matsumur, linux-pci, linux-mmc

Hi Manoj,

On Mon, Nov 26 2012, Manoj Iyer wrote:
> Do you know what systems produce these errors? I can look and see if
> we have those for testing your patch.

One T430s using the ExpressCard reader¹, and one X220, both with :e823.

Thanks,

- Chris.

¹: http://support.lenovo.com/en_US/product-and-parts/detail.page?&DocID=PD023556
-- 
Chris Ball   <cjb@laptop.org>   <http://printf.net/>
One Laptop Per Child

^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2012-11-26 16:57 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-11 21:28 [Patch 0/1] mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency Manoj Iyer
2011-07-11 21:28 ` [PATCH] " Manoj Iyer
2011-07-11 21:53   ` Chris Ball
2011-07-11 22:55     ` Manoj Iyer
2011-07-12 16:01     ` Manoj Iyer
2011-07-12 16:20       ` Chris Ball
2011-07-12 17:09         ` Manoj Iyer
2011-07-12 17:30           ` Chris Ball
2011-07-12 18:00             ` Arnd Bergmann
2011-07-13 14:45               ` Chris Ball
2011-07-13 15:42                 ` Manoj Iyer
2011-07-13 16:35                   ` Arnd Bergmann
2011-07-13 16:46                     ` Manoj Iyer
2011-07-13 16:55                       ` Chris Ball
2011-07-13 17:02                         ` Manoj Iyer
2011-07-13 17:08                           ` Chris Ball
2011-07-18 20:36                             ` Manoj Iyer
2011-07-18 20:40                               ` Chris Ball
2011-07-18 20:47                                 ` Manoj Iyer
2011-07-18 21:05                                   ` Chris Ball
2011-07-18 21:12                                     ` Manoj Iyer
2011-07-19 19:43                                     ` Manoj Iyer
2012-11-22  0:29                                   ` Chris Ball
2012-11-26 16:42                                     ` Manoj Iyer
2012-11-26 16:57                                       ` Chris Ball
2011-07-13 16:50                     ` Chris Ball
2011-07-13 16:54                       ` Manoj Iyer
2011-07-18 23:27                         ` Jesse Barnes

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.