This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM620-Q1: MMC/SD Driver Performance

Part Number: AM620-Q1
Other Parts Discussed in Thread: AM62P

Tool/software:

Hi, Expert

Reference this page,

https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/10_00_07_04/exports/docs/devices/AM62X/linux/Linux_Performance_Guide.html#id4

Few question,

(1) Do we have test result for buffer size (bytes) 128k/64k/16k?

(2) How do we do these test? Any utility support?

Thank You.

Gibbs 

  • Hello,

    1. No. The only numbers available are mentioned in the documentation.

    2.

    These are the commands used to trigger the test for eMMC. Please note these commands are only available in default filesystem.

    cd /opt/ltp
    ./runltp -P am62pxx_sk-fs -f ddt/emmc_perf_ext4 -s "EMMC_L_PERF_EXT4_FIO_1G ",timeout=3600,perf_metrics_file=LSP/A-PCI/fio_parser.rb

    Attached are the sample test logs collected on TI AM62P HSFS board

    root@am62pxx-evm:~# cd /opt/ltp/
    root@am62pxx-evm:/opt/ltp# ./runltp -P am62pxx_sk-fs -f ddt/emmc_perf_ext4 -s "EMMC_L_PERF_EXT4_FIO_1G ",timeout=3600,perf_metrics_file=LSP/A-PCI/fio_parser.rb
    ...
    <<<test_start>>>
    tag=EMMC_L_PERF_EXT4_FIO_1G stime=170
    cmdline="source 'common.sh'; install_modules.sh "emmc"; do_cmd 'blk_device_filesystem_perf_test.sh -p "fio" -f "ext4" -s 1g -B "4m 1m 256k 4k" -d "emmc" '"
    contacts=""
    analysis=exit
    <<<test_output>>>
    incrementing stop
    |TRACE LOG|Inside do_cmd:CMD=blk_device_filesystem_perf_test.sh -p "fio" -f "ext4" -s 1g -B "4m 1m 256k 4k" -d "emmc" |
    ls -al /dev/disk/by-id
    total 0
    drwxr-xr-x 2 root root 160 Jan  1 00:00 .
    drwxr-xr-x 7 root root 140 Jan  1 00:00 ..
    lrwxrwxrwx 1 root root  13 Jan  1 00:00 mmc-G1M15L_0x2dc165d1 -> ../../mmcblk0
    lrwxrwxrwx 1 root root  15 Jan  1 00:00 mmc-G1M15L_0x2dc165d1-part1 -> ../../mmcblk0p1
    lrwxrwxrwx 1 root root  15 Jan  1 00:00 mmc-G1M15L_0x2dc165d1-part2 -> ../../mmcblk0p2
    lrwxrwxrwx 1 root root  13 Jan  1 00:00 mmc-SC16G_0x568ab999 -> ../../mmcblk1
    lrwxrwxrwx 1 root root  15 Jan  1 00:00 mmc-SC16G_0x568ab999-part1 -> ../../mmcblk1p1
    lrwxrwxrwx 1 root root  15 Jan  1 00:00 mmc-SC16G_0x568ab999-part2 -> ../../mmcblk1p2
    ls -al /dev/disk/by-path
    total 0
    drwxr-xr-x 2 root root 200 Jan  1 00:00 .
    drwxr-xr-x 7 root root 140 Jan  1 00:00 ..
    lrwxrwxrwx 1 root root  13 Jan  1 00:00 platform-fa00000.mmc -> ../../mmcblk1
    lrwxrwxrwx 1 root root  15 Jan  1 00:00 platform-fa00000.mmc-part1 -> ../../mmcblk1p1
    lrwxrwxrwx 1 root root  15 Jan  1 00:00 platform-fa00000.mmc-part2 -> ../../mmcblk1p2
    lrwxrwxrwx 1 root root  13 Jan  1 00:00 platform-fa10000.mmc -> ../../mmcblk0
    lrwxrwxrwx 1 root root  18 Jan  1 00:00 platform-fa10000.mmc-boot0 -> ../../mmcblk0boot0
    lrwxrwxrwx 1 root root  18 Jan  1 00:00 platform-fa10000.mmc-boot1 -> ../../mmcblk0boot1
    lrwxrwxrwx 1 root root  15 Jan  1 00:00 platform-fa10000.mmc-part1 -> ../../mmcblk0p1
    lrwxrwxrwx 1 root root  15 Jan  1 00:00 platform-fa10000.mmc-part2 -> ../../mmcblk0p2
    |TRACE LOG|DEV_NODE return from get_blk_device_node is: /dev/mmcblk0p2|
    |TRACE LOG|STARTING FILE SYSTEM PERFORMANCE Test for emmc|
    |TRACE LOG|FS_TYPE:ext4|
    |TRACE LOG|DEV_NODE:/dev/mmcblk0p2|
    |TRACE LOG|MOUNT POINT:/mnt/partition_emmc|
    |TRACE LOG|BUFFER SIZES:4m 1m 256k 4k|
    |TRACE LOG|FILE SIZE:1gMB|
    |TRACE LOG|SRCFILE SIZE:10MB|
    |TRACE LOG|DEVICE_TYPE:emmc|
    |TRACE LOG|Inside do_cmd:CMD=printout_model /dev/mmcblk0p2 emmc|
    |TRACE LOG|model info is not available for non scsi devices.|
    |TRACE LOG|Inside do_cmd:CMD=printout_mmc_ios|
    |TRACE LOG|===== printout of mmc ios =====|
    |TRACE LOG|Inside do_cmd:CMD=cat /sys/kernel/debug//mmc0/ios|
    clock:          200000000 Hz
    actual clock:   200000000 Hz
    vdd:            7 (1.65 - 1.95 V)
    bus mode:       2 (push-pull)
    chip select:    0 (don't care)
    power mode:     2 (on)
    bus width:      3 (8 bits)
    timing spec:    10 (mmc HS400)
    signal voltage: 1 (1.80 V)
    driver type:    0 (driver type B)
    |TRACE LOG|Inside do_cmd:CMD=cat /sys/kernel/debug//mmc1/ios|
    clock:          200000000 Hz
    actual clock:   200000000 Hz
    vdd:            21 (3.3 ~ 3.4 V)
    bus mode:       2 (push-pull)
    chip select:    0 (don't care)
    power mode:     2 (on)
    bus width:      2 (4 bits)
    timing spec:    6 (sd uhs SDR104)
    signal voltage: 1 (1.80 V)
    driver type:    0 (driver type B)
    |TRACE LOG|===== end of mmc ios =====|
    |TRACE LOG|Device Partition Size is 22159 MB|
    /opt/ltp/testcases/bin/ddt/blk/blk_device_filesystem_perf_test.sh: line 186: [: 1g: integer expression expected
    |TRACE LOG|Inside do_cmd:CMD=mkdir -p /mnt/partition_emmc|
    |TRACE LOG|Inside do_cmd:CMD=blk_device_prepare_format.sh -d emmc -n /dev/mmcblk0p2 -f ext4 -m /mnt/partition_emmc -o async|
    |TRACE LOG|DEV_NODE: /dev/mmcblk0p2|
    |TRACE LOG|MNT_POINT: /mnt/partition_emmc|
    |TRACE LOG|FS_TYPE: ext4|
    |TRACE LOG|MNT_MODE: async|
    |TRACE LOG|Erasing/Formatting this partition and then mount it|
    |TRACE LOG|Inside do_cmd:CMD=blk_device_erase_format_part.sh -d emmc -n /dev/mmcblk0p2 -f ext4 -m /mnt/partition_emmc|
    |TRACE LOG|DEVICE TYPE: emmc|
    |TRACE LOG|DEVICE NODE: /dev/mmcblk0p2|
    |TRACE LOG|FS TYPE: ext4|
    |TRACE LOG|Umount /dev/mmcblk0p2 or /dev/mmcblk0 if it is mounted|
    /dev/mmcblk0p2 on /run/media/mmcblk0p2 type ext4 (rw,relatime)
    |TRACE LOG|Inside do_cmd:CMD=umount /dev/mmcblk0p2|
    [  225.579004] EXT4-fs (mmcblk0p2): unmounting filesystem.
    |TRACE LOG|Inside do_cmd:CMD=mkfs.ext4 -E lazy_itable_init=1,lazy_journal_init=1 -F  /dev/mmcblk0p2|
    mke2fs 1.46.5 (30-Dec-2021)
    /dev/mmcblk0p2 contains a ext4 file system
            last mounted on /mnt/partition_emmc on Thu Jan  1 00:00:14 1970
    Discarding device blocks: done
    Creating filesystem with 5672704 4k blocks and 1419840 inodes
    Filesystem UUID: b255230c-952f-4a02-889b-d876c022f9e0
    Superblock backups stored on blocks:
            32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
            4096000
    
    Allocating group tables: done
    Writing inode tables: done
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done
    
    |TRACE LOG|Inside do_cmd:CMD=blk_device_do_mount.sh -n /dev/mmcblk0p2 -f ext4 -d emmc -m /mnt/partition_emmc -o async|
    |TRACE LOG|Umount /mnt/partition_emmc if it is mounted|
    |TRACE LOG|Mounting the partition|
    |TRACE LOG|Inside do_cmd:CMD=mount -t ext4 -o async /dev/mmcblk0p2 /mnt/partition_emmc|
    [  231.220650] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Quota mode: none.
    |TRACE LOG|Inside do_cmd:CMD=mount | grep /mnt/partition_emmc|
    /dev/mmcblk0p2 on /mnt/partition_emmc type ext4 (rw,relatime)
    |TRACE LOG|BUFFER SIZE = 4m|
    |TRACE LOG|Inside do_cmd:CMD=fio --name emmc_TEST --directory=/mnt/partition_emmc --size=1g --rw=write --blocksize=4m --ioengine=libaio --iodepth=4 --numjobs=1 --direct=1 --group_reportin|
    |TRACE LOG|Inside do_cmd:CMD=sleep 5|
    emmc_TEST: (g=0): rw=write, bs=(R) 4096KiB-4096KiB, (W) 4096KiB-4096KiB, (T) 4096KiB-4096KiB, ioengine=libaio, iodepth=4
    fio-3.30
    Starting 1 process
    emmc_TEST: Laying out IO file (1 file / 1024MiB)
    |TRACE LOG|Inside do_cmd:CMD=wait|
    
    emmc_TEST: (groupid=0, jobs=1): err= 0: pid=2324: Thu Jan  1 00:04:57 1970
      write: IOPS=22, BW=90.5MiB/s (94.9MB/s)(5440MiB/60135msec); 0 zone resets
        slat (usec): min=571, max=131328, avg=4630.99, stdev=7924.73
        clat (msec): min=36, max=4259, avg=172.09, stdev=205.33
         lat (msec): min=71, max=4261, avg=176.73, stdev=205.02
        clat percentiles (msec):
         |  1.00th=[  106],  5.00th=[  150], 10.00th=[  150], 20.00th=[  153],
         | 30.00th=[  159], 40.00th=[  163], 50.00th=[  163], 60.00th=[  163],
         | 70.00th=[  165], 80.00th=[  165], 90.00th=[  167], 95.00th=[  169],
         | 99.00th=[  201], 99.50th=[  236], 99.90th=[ 4212], 99.95th=[ 4245],
         | 99.99th=[ 4245]
       bw (  KiB/s): min= 8192, max=106496, per=100.00%, avg=98358.92, stdev=9635.52, samples=113
       iops        : min=    2, max=   26, avg=23.93, stdev= 2.36, samples=113
      lat (msec)   : 50=0.07%, 100=0.88%, 250=98.68%, >=2000=0.37%
      cpu          : usr=1.99%, sys=2.60%, ctx=11075, majf=0, minf=22
      IO depths    : 1=0.1%, 2=0.1%, 4=99.8%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
         submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
         complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
         issued rwts: total=0,1360,0,0 short=0,0,0,0 dropped=0,0,0,0
         latency   : target=0, window=0, percentile=100.00%, depth=4
    
    Run status group 0 (all jobs):
      WRITE: bw=90.5MiB/s (94.9MB/s), 90.5MiB/s-90.5MiB/s (94.9MB/s-94.9MB/s), io=5440MiB (5704MB), run=60135-60135msec
    ...
    

    Regards,

    Prashant