1.Workload是根据什么计算出来的呢?上的时间比例/kernel/drivers/mmc/card/block.cstatic *),period %lld00, ]);2./kernel/drivers/mmc/card/block.cstatic *)]);的数据。可以查看某段时间内,,各个进程读写的情况,进而判断是哪个进程占用的worload比较高;
是没有问题的?<6>[16656.919474] (5)[142:mmcqd/0][BLOCK_TAG]mmcqd:142 Workload=63%, duty 317163907, period 500889000, req_cnt=1426
<6>[16656.919483] (5)[142:mmcqd/0][BLOCK_TAG] mmcqd:142 WriteDiversity=5553653 sectors offset, req_cnt=12, break_cnt=0, tract_cnt=0,bit_cnt=0
<6>[16656.919534] (0)[142:mmcqd/0][BLOCK_TAG] mmcqd:142 ReadDiversity=607567 sectors offset, req_cnt=1414, break_cnt=0, tract_cnt=0,bit_cnt=0
<6>[16656.919565] (0)[142:mmcqd/0][BLOCK_TAG] mmcqd:142 WriteThroughput=69222 kB/s, size: 692224 bytes, time:10 ms
<6>[16656.919617](0)[142:mmcqd/0][BLOCK_TAG] mmcqd:142 Read Throughput=93819 kB/s, size:28708864 bytes, time:306 ms
workload高不一定是eMMC性能差导致,最近发现内存泄漏也可能导致workload高!
qcom 平台也有类似机制,参考:CONFIG_MMC_PERF_PROFILING
mmc debug log 需要请打开CONFIG_MMC_DEBUG
九、eMMC ext_csd
十、eMMCHS200 & HS400
十一、eMMC cache
cache对emmc write performance影响很大,使能它。
觉得自己做的到和不做的到,其实只在一念之间