Description of problem: When writing large blocks of data to a microSD card, through JMicron card reader, the mmcqd daemon blocks for some time on waiting for IO and slows down the entire system, especially other IO-bound processes, even if they are just reading from or writing to the hard drive. With some luck, not IO-bound processes may continue operating normally, until they need access to IO. The system in question is an HP Pavilion dv5t laptop, with JMicron Technology Corp. Standard SD Host Controller with PCI ID 197b:2381 controlled through the sdhci-pci kernel module. Version-Release number of selected component (if applicable): 2.6.40.4-5.fc15.x86_64 How reproducible: Always. Steps to Reproduce: 1. Mount sdcard. 2. Copy a large set of files with some size or a single large file to sdcard. Actual results: The system slows down, sometimes it does even freeze temporarily. By examining ksystemguard, mmcqd/0 process says waiting for disk or waiting for IO (don't know original message in English, using Fedora KDE in portuguese), sometimes together with other processes like firefox. Expected results: System operating normally, with hard drive bound processes not slowing down because of mmcqd bound to sdcard and hopefully file copy to sdcard progressing normally, within the performance limits of the sdcard.
This sounds like a general symptom of the Linux I/O scheduler. If you are running iotop in an ssh session, is the mmcqd process taking most of the I/O? You might try using ionice on the process using the most I/O. You can also try adjusting the /proc/sys/vm/dirty_* values and/or change the default block scheduler to deadline or noop.