栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MTK MMC读写速度提升

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MTK MMC读写速度提升

安卓10.0 kernel_4.9

emmc宏配置:CONFIG_MTK_EMMC_CQ_SUPPORT = y

保证宏配置为y,没有则进行添加

diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
index ee45e5b..ea409bd 100644
--- a/drivers/mmc/card/block.c
+++ b/drivers/mmc/card/block.c
@@ -4366,7 +4366,10 @@ int mmc_blk_issue_rq(struct mmc_queue *mq, struct request *req)
 			mq->mqrq_cur = &mq->mqrq[index];
 			mq->mqrq_cur->req = req;
 			atomic_set(&mq->mqrq_cur->index, index + 1);
+
+// End of StoneOim:kevin
 		}
 #endif
 		if (!part_cmdq_en && !req && host->areq) {
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index fac6c0f..4d2b45d 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -90,6 +90,10 @@ static void mmc_enqueue_queue(struct mmc_host *host, struct mmc_request *mrq)
 		spin_unlock_irqrestore(&host->dat_que_lock, flags);
 	} else {
 		spin_lock_irqsave(&host->cmd_que_lock, flags);
+
+        atomic_inc(&host->areq_cnt);
+// End of StoneOim:kevin
 		if (mrq->flags)
 			list_add(&mrq->link, &host->cmd_que);
 		else

---------------------------------------------------------------------------------------------------------------------------------

安卓11.0 kernel_4.19

From 03095e70b9bc0252d0d417a272999128b806d143 Mon Sep 17 00:00:00 2001
From: mtk13858 
Date: Fri, 09 Jul 2021 21:02:30 +0800
Subject: [PATCH] [ALPS05897129] msdc:set exe_cq as RT thread

1.block layer changes in kernel-4.19,
in order to gain more performance,
we need to set exe_cq as RT thread.
2.if it only sets exe_cq as RT thread,
areq_cnt also needs to change together with enqueue flow,
or KE will happen.

Change-Id: Id38b4f9bd09f7ce46b02839d1a87345f5d806b15
Signed-off-by: mtk13858 
CR-Id: ALPS05897129
Feature: eMMC
---

diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c
index 18528a5..9367007 100644
--- a/drivers/mmc/core/block.c
+++ b/drivers/mmc/core/block.c
@@ -2349,7 +2349,6 @@
 	mq->mqrq[index].req = req;
 	atomic_set(&mqrq->index, index + 1);
 	atomic_set(&mq->mqrq[index].index, index + 1);
-	atomic_inc(&card->host->areq_cnt);
 
 	mmc_blk_rw_rq_prep(mqrq, mq->card, 0, mq);
 
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index 2187072..642173f 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -357,6 +357,7 @@
 	} else {
 
 		spin_lock_irqsave(&host->cmd_que_lock, flags);
+		atomic_inc(&host->areq_cnt);
 		if (mrq->flags)
 			list_add(&mrq->link, &host->cmd_que);
 		else
@@ -895,6 +896,11 @@
 	bool is_done = false;
 	int err;
 	u64 chk_time = 0;
+	struct sched_param scheduler_params = {0};
+
+	
+	scheduler_params.sched_priority = 1;
+	sched_setscheduler(current, SCHED_FIFO, &scheduler_params);
 
 	pr_info("[CQ] start cmdq threadn");
 	mt_bio_queue_alloc(current, NULL, false);
@@ -1098,6 +1104,9 @@
 			schedule();
 
 		set_current_state(TASK_RUNNING);
+
+		if (kthread_should_stop())
+			break;
 	}
 	mt_bio_queue_free(current);
 	return 0;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/678515.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号