diff options
author | Tim Murray <timmurray@google.com> | 2016-01-19 16:36:40 -0800 |
---|---|---|
committer | Mark Salyzyn <salyzyn@google.com> | 2016-02-22 10:55:07 -0800 |
commit | 52cca7009d6dfedd490779e93fb80af4efbf55a1 (patch) | |
tree | ba60f0f495f7e980ee0064b74a2139f25850c508 | |
parent | 07e3edc5d7b3b64fe83caa321f1ba7d70d5daa1c (diff) | |
download | hikey-linaro-52cca7009d6dfedd490779e93fb80af4efbf55a1.tar.gz |
ANDROID: mmc: move to a SCHED_FIFO thread
(cherry picked from commit 011e507b413393eab8279dac8b778ad9b6e9971b)
Running mmcqd as a prio 120 thread forces it to compete with standard
user processes for IO performance, especially when the system is under
severe CPU load. Move it to a SCHED_FIFO thread to reduce the impact of
load on IO performance.
Signed-off-by: Tim Murray <timmurray@google.com>
Bug: 25392275
Change-Id: I1edfe73baa25e181367c30c1f40fee886e92b60d
-rw-r--r-- | drivers/mmc/card/queue.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/mmc/card/queue.c b/drivers/mmc/card/queue.c index 8efa3684aef8..ccee8ebc55d8 100644 --- a/drivers/mmc/card/queue.c +++ b/drivers/mmc/card/queue.c @@ -19,6 +19,7 @@ #include <linux/mmc/card.h> #include <linux/mmc/host.h> +#include <linux/sched/rt.h> #include "queue.h" #define MMC_QUEUE_BOUNCESZ 65536 @@ -50,6 +51,11 @@ static int mmc_queue_thread(void *d) { struct mmc_queue *mq = d; struct request_queue *q = mq->queue; + struct sched_param scheduler_params = {0}; + + scheduler_params.sched_priority = 1; + + sched_setscheduler(current, SCHED_FIFO, &scheduler_params); current->flags |= PF_MEMALLOC; |