Re: mmc: Add CONFIG_MMC_BLOCK_MAX_SPEED

From: Mark Salyzyn
Date: Mon Feb 22 2016 - 11:04:38 EST


On 02/21/2016 10:45 PM, Pavel Machek wrote:
Hi!

On Thu 2016-02-04 12:29:07, Mark Salyzyn wrote:
When CONFIG_MMC_BLOCK_MAX_SPEED is enabled, Expose max_read_speed,
max_write_speed and cache_size controls to simulate a slow eMMC device.
The boot default values for each respectively are
CONFIG_MMC_BLOCK_MAX_READ_SPEED, CONFIG_MMC_BLOCK_MAX_WRITE_SPEED and
CONFIG_MMC_BLOCK_CACHE_SIZE respectively; and if not defined are
0 (off), 0, (off) and 4 MB also respectively.
Extra , after 0.

Yes :-)
Dunno. At minimum, I'd call the option something like
"MMC_DEBUG_MAX_SPEED" and the speeds should be really controlled via
/sys or something...

Are controlled by sys. Concern over DEBUG_MAX_SPEED is the sys nodes changing name to debug_max_read_speed, etc, which would in turn result in a move to debugfs instead. Will have to think about all the side effects of such a move.

...and ... is there reason to limit it to mmc devices? Making
harddrive slow would make it useful for testing, too...

The speed limit at this layer is not the same as in the block layer, the two methods would 'join' at the same value when one does sustained I/O most likely, but not at the random patterns we have experienced on the devices. We would like additional wiggle room to simulate eMMC stalls due to load leveling and other behaviors in the future. If we moved up a layer we would have to simulate head seek and rotational latency opening a can of worms we would feel best if left closed. View it as a political decision.

...and you have the /sys interface. Drop the config options?

I needed a start up default value for boot-time simulations. If just sys options, we would be applying the values far too late in the operation. I expect some other folks using this simulation would like to forgo an extended boot time, to have them set/reset under programmed control. I was covering two bases.
Best regards,
Pavel
Sincerely -- Mark Salyzyn