428 Star 1.6K Fork 1.6K

GVPopenEuler/kernel

 / 详情

arm64 fio 4k dio测试性能低

已完成
任务
创建于  
2021-12-14 20:16

评论 (4)

海东青_fly 创建了任务 3年前
#!/bin/bash

numjobs=10
iodepth=10
mkdir /test
for rw in read write randread randwrite randrw ; do
	for bs in 4 16 32 64 128 256 512 1024; do
		mkfs.ext4 -F /dev/nvme0n1
		mount /dev/nvme0n1 /test
		if [ $rw == "randrw" ];then
			./fio -filename=/test/fio -direct=1 -iodepth ${iodepth} -thread -rw=$rw -rwmixread=70 -ioengine=libaio -bs=${bs}k \
			       	-size=100G -numjobs=${numjobs} -runtime=30 -group_reporting -name=job1
		else
			./fio -filename=/test/fio -direct=1 -iodepth ${iodepth} -thread -rw=$rw -ioengine=libaio -bs=${bs}k \
				-size=100G -numjobs=${numjobs} -runtime=30 -group_reportin -name=job1
		fi
		umount /test
		sleep 30
	done
done

使用如上脚本进行测试,4k dio read 性能较低。

输入图片说明

通过如上火焰图可知,大量时间耗费在 down_write 流程中。
找到导致该现象的补丁为:
bb24e7e6309a Revert "ext4: Allow parallel DIO reads"
5b2a409373fc Revert "ext4: remove EXT4_STATE_DIOREAD_LOCK flag"

海东青_fly 修改了描述 3年前
海东青_fly 修改了标题 3年前

通过如下补丁可以修复arm64上的问题:
bcce988f1b44 config: Enable CONFIG_EXT4_PARALLEL_DIO_READ as default
4a5b1b53d6d1 ext4: update direct I/O read lock pattern for IOCB_NOWAIT
5d00e2bce2c1 Revert "Revert "ext4: remove EXT4_STATE_DIOREAD_LOCK flag""
9f40d9fa3b78 Revert "Revert "ext4: Allow parallel DIO reads""

登录 后才可以发表评论

状态
负责人
项目
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
预计工期 (小时)
开始日期   -   截止日期
-
置顶选项
优先级
分支
参与者(2)
5329419 openeuler ci bot 1632792936 632392 mrhai 1578929789
C
1
https://gitee.com/openeuler/kernel.git
git@gitee.com:openeuler/kernel.git
openeuler
kernel
kernel

搜索帮助