lkml.org 
[lkml]   [2012]   [Apr]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[RFC PATCH 07/11] mmc: core: add preemptibility tracking fields to mmc command
Date
Set a preemptibility command atrribute to MMC commands. This
can be later used by write (multi block), trim etc for
evaluating if a HPI is applicable.

Note the starting time of executing a command so a decision
can be made if it is too late for preemption.

Signed-off-by: Venkatraman S <svenkatr@ti.com>
---
drivers/mmc/core/core.c | 5 +++++
include/linux/mmc/core.h | 4 ++++
2 files changed, 9 insertions(+)
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index 027c579..6cefa01 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -258,6 +258,11 @@ static int __mmc_start_req(struct mmc_host *host, struct mmc_request *mrq)
complete(&mrq->completion);
return -ENOMEDIUM;
}
+ if (mmc_is_preemptible_command(mrq->cmd))
+ mrq->cmd->cmd_attr |= MMC_CMD_PREEMPTIBLE;
+ else
+ mrq->cmd->cmd_attr &= ~MMC_CMD_PREEMPTIBLE;
+ mrq->cmd->started_time = jiffies;
mmc_start_request(host, mrq);
return 0;
}
diff --git a/include/linux/mmc/core.h b/include/linux/mmc/core.h
index 680e256..d86144e 100644
--- a/include/linux/mmc/core.h
+++ b/include/linux/mmc/core.h
@@ -76,6 +76,10 @@ struct mmc_command {
*/
#define mmc_cmd_type(cmd) ((cmd)->flags & MMC_CMD_MASK)

+ unsigned int cmd_attr; /*Runtime attributes of the command */
+#define MMC_CMD_PREEMPTIBLE BIT(0)
+#define MMC_CMD_PREEMPTED BIT(1)
+ unsigned long started_time;
unsigned int retries; /* max number of retries */
unsigned int error; /* command error */

--
1.7.10.rc2


\
 
 \ /
  Last update: 2012-04-18 22:37    [from the cache]
©2003-2011 Jasper Spaans