OESF Portal | OESF Forum | OESF Wiki | LinuxPDA | #planetgemini chat on matrix.org | #gemini-pda chat on Freenode | #zaurus and #alarmz chat on Freenode | ELSI (coming soon) | Ibiblio

IPB

Welcome Guest ( Log In | Register )

3 Pages V   1 2 3 >  
Reply to this topicStart new topic
> help with SD read/write speed
chyang
post Mar 2 2004, 06:36 AM
Post #1





Group: Members
Posts: 270
Joined: 19-June 03
From: Beijing,China
Member No.: 156



hi, Is there anyone having tested the read/write speed of SD? I tested with a 10MB/s high speed Panasonic SD, but very disappointed to see the result is just about 200KB/s or so. Is it normal?
Thanks.
Go to the top of the page
 
+Quote Post
ScottYelich
post Mar 2 2004, 09:38 AM
Post #2





Group: Members
Posts: 992
Joined: 9-October 03
From: NYC
Member No.: 609



I'd be happy to get 200KB/sec ... and stable SD.

I was getting 34 to 75KB/sec... and my SD would *still* go offline.

Scott
Go to the top of the page
 
+Quote Post
post Mar 2 2004, 10:12 AM
Post #3





Group:
Posts: 0
Joined: --
Member No.: 0



What are you using to test the I/O? On what devices?
Go to the top of the page
 
+Quote Post
ScottYelich
post Mar 2 2004, 10:57 AM
Post #4





Group: Members
Posts: 992
Joined: 9-October 03
From: NYC
Member No.: 609



copying a large file... to lexar 512 mb SD ... with async on and off...

Scott
ps: I can't write much to the sd before it goes offline... can't untar... can't copy mp3s.... nothing.
Go to the top of the page
 
+Quote Post
derekp
post Mar 2 2004, 11:14 AM
Post #5





Group: Members
Posts: 154
Joined: 16-January 04
Member No.: 1,464



Mounting the SD card async has no noticable effect using the standard Sharp kernel, because apparently Sharp has put in additional code in the filesystem drivers that force sync i/o on even if you mount with -o async. When you re-compile your kernel, you can turn off the "CONFIG_FS_SYNC" option, and then mounting your SD or CF card async gives you at least a 10-1 improvement in write speed. You just need to make sure that you don't pull it out without unmounting it first.
I'll go ahead an upload my kernel with this option turned off (it's not in the standard Linux kernel, only in Sharp's version). Been running it for a month or two, without any problems.

Something else you can try in the meantime is to mount your SD card through the loopback driver, if you have a lot of data to copy to it... i.e.:
umount /dev/mmcda1
mount -oloop,noatime,async /dev/mmcda1 /mnt/card
Go to the top of the page
 
+Quote Post
post Mar 2 2004, 12:16 PM
Post #6





Group:
Posts: 0
Joined: --
Member No.: 0



I get 198.0KB/s copying to the internal storage from 256MB simpletech SD card, and 302.8KB/s copying from internal storage to simpletech SD card. I get 349KB/s copying from simpletech SD to sandisk 256MB cf, and 312KB/s copying from CF to SD. The numbers are from a localhost sftp 70MB transfer on an 860.
Go to the top of the page
 
+Quote Post
chyang
post Mar 2 2004, 07:08 PM
Post #7





Group: Members
Posts: 270
Joined: 19-June 03
From: Beijing,China
Member No.: 156



I haven't met ScottYelich's problem with SD, but I have met the un-stable mmc using. The MMC card's read/write is so slow and I got the directory or files all in mess when I resume my Zaurus from suspend. :-(
Go to the top of the page
 
+Quote Post
ScottYelich
post Mar 3 2004, 06:09 AM
Post #8





Group: Members
Posts: 992
Joined: 9-October 03
From: NYC
Member No.: 609



QUOTE
I haven't met ScottYelich's problem with SD, but I have met the un-stable mmc using. The MMC card's read/write is so slow and I got the directory or files all in mess when I resume my Zaurus from suspend. :-(


I recently was going to fly for 5 hrs ... so I planned to load up my 512MB SD with mp3s. Needless to say, I had to "rsync" in the mp3s. It took 4 hours for 400+MB of MP3s.

ie: rsync, crash, eject, insert, umount, fsck, mount, repeat

To me, SD is simply not an option. It's unusable. I'm mostly using mine as a read only source for things like mp3, etc... it's just a PITA to get the data there. Ya, I have a card reader... for pc. I can hook it up to my work w2k box, but will w2k support ext2/ext3 filesystems?

Scott
Go to the top of the page
 
+Quote Post
derekp
post Mar 3 2004, 03:20 PM
Post #9





Group: Members
Posts: 154
Joined: 16-January 04
Member No.: 1,464



ScottYelich, if you want a quicker way to copy stuff to the SD, try the trick I mentioned above using a loopback mount. This helps if you are writing a bunch of files, as it filters out multiple writes to the same location (i.e., the inode table). This will reduce the write time in your example from 4 hours to about 15 minutes. Slightly faster results will com from using a kernel compiled with the CONFIG_FS_SYNC flag turned off (see the other thread where I posted my custom kernel).
Go to the top of the page
 
+Quote Post
post Mar 3 2004, 03:52 PM
Post #10





Group:
Posts: 0
Joined: --
Member No.: 0



ScottYelich, there are drivers for w2k that can read and wirte to an ext2 filesystem. Download one and found out that it doesint suppert ext3 though. JP
Go to the top of the page
 
+Quote Post
post Mar 4 2004, 02:27 AM
Post #11





Group:
Posts: 0
Joined: --
Member No.: 0



You may want to try the driver hiding in "Downloads" section. It may help with some of the problems mentioned (such as SD read speed, lost card on resume). Please, note that it will only run on SL5500 (SL5000) with 2.4.18(19?) kernels.
Go to the top of the page
 
+Quote Post
maslovsky
post Mar 4 2004, 03:58 AM
Post #12





Group: Members
Posts: 1,426
Joined: 22-October 03
Member No.: 89



QUOTE
I get 198.0KB/s copying to the internal storage from 256MB simpletech SD card, and 302.8KB/s copying from internal storage to simpletech SD card.  I get 349KB/s copying from simpletech SD to sandisk 256MB cf, and 312KB/s copying from CF to SD.   The numbers are from a localhost sftp 70MB transfer on an 860.


With my own kernel built with CONFIG_FS_SYNC off, I more than 1 Mb/s transfer rate to SD/Cf cards.

Internal storage is till between 200-300 Kb/s though. I don't know if that's because NAND flash memory is so slow or there are still some places in the kernel left that cause internal storage to be monted aith sync option.
Go to the top of the page
 
+Quote Post
ciro
post Mar 4 2004, 04:17 AM
Post #13





Group: Members
Posts: 17
Joined: 4-March 04
Member No.: 1,599



sa1100 models & pxa modles do have pretty much different hardware. We should expect different performance. Also CONFIG_FS_SYNC is not the only thing which keeps filesystem cache from working. As for 5500 Sharp roms, there's a daemon called "shsync" which calls sync() every 5 seconds. In addition, filesystem caches get invalidated before suspend (did you see the "invalidate: busy buffer message"?). I don't know any good reason for that.
Go to the top of the page
 
+Quote Post
chyang
post Mar 4 2004, 05:25 AM
Post #14





Group: Members
Posts: 270
Joined: 19-June 03
From: Beijing,China
Member No.: 156



QUOTE
QUOTE
I get 198.0KB/s copying to the internal storage from 256MB simpletech SD card, and 302.8KB/s copying from internal storage to simpletech SD card.  I get 349KB/s copying from simpletech SD to sandisk 256MB cf, and 312KB/s copying from CF to SD.   The numbers are from a localhost sftp 70MB transfer on an 860.


With my own kernel built with CONFIG_FS_SYNC off, I more than 1 Mb/s transfer rate to SD/Cf cards.

Internal storage is till between 200-300 Kb/s though. I don't know if that's because NAND flash memory is so slow or there are still some places in the kernel left that cause internal storage to be monted aith sync option.

Is there something wrong? The internal storage should be based on SDRAM for SL5500.
Go to the top of the page
 
+Quote Post
derekp
post Mar 4 2004, 05:40 AM
Post #15





Group: Members
Posts: 154
Joined: 16-January 04
Member No.: 1,464



The shsync daemon is fine, even with it running you will still filter out most of the redundant writes (i.e., when you are writing a bunch of files, the inode table gets written / rewritten multiple times. With async io, only the last update to a particular sector will actually be written out to the device). Also, since sync runs in the background, you are still getting buffered writes even when it is kicked off.
As for invalidating the buffer on suspend... The kernel normally will mark all cached data as no longer valid when you suspend, in case someone swaps out a storage device while the system is suspended. If it didn't invalidate the buffers, then you would get filesystem corruption if you suspended, swaped your CF /SD card, then resumed and wrote out something. The error message itself (busy buffer) just means that a program was reading from the device at the time the kernel tried to invalidate the buffers. A search on linux-kernel mailing list shows that this message is usually harmless.
Go to the top of the page
 
+Quote Post

3 Pages V   1 2 3 >
Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 18th April 2019 - 05:09 PM