mmc: block: Update packing statistics with large sector size
This patch adds "large sector size" as a reason for stop packing
to the packing statistics mechanism
(cherry picked from commit 1718ef21fb791a2ea25bd3fbf236913de64ca85f)
Change-Id: I595f7839fa9156d5ed26040943c1d5e3011c2a60
Signed-off-by: Tatyana Brokhman <tlinder@codeaurora.org>
(cherry picked from commit bd8d562c886ffe3a07b9a56a446eb5b5b7db23ed)
diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
index bc3ae87..9b4c82a 100644
--- a/drivers/mmc/card/block.c
+++ b/drivers/mmc/card/block.c
@@ -1500,6 +1500,7 @@
if (mmc_large_sec(card) &&
!IS_ALIGNED(blk_rq_sectors(next), 8)) {
+ MMC_BLK_UPDATE_STOP_REASON(stats, LARGE_SEC_ALIGN);
put_back = 1;
break;
}
diff --git a/drivers/mmc/core/debugfs.c b/drivers/mmc/core/debugfs.c
index 898e358..4022ccc 100644
--- a/drivers/mmc/core/debugfs.c
+++ b/drivers/mmc/core/debugfs.c
@@ -433,6 +433,14 @@
strlcat(ubuf, temp_buf, cnt);
}
+ if (pack_stats->pack_stop_reason[LARGE_SEC_ALIGN]) {
+ snprintf(temp_buf, TEMP_BUF_SIZE,
+ "%s: %d times: Large sector alignment\n",
+ mmc_hostname(card->host),
+ pack_stats->pack_stop_reason[LARGE_SEC_ALIGN]);
+ strlcat(ubuf, temp_buf, cnt);
+ }
+
spin_unlock(&pack_stats->lock);
kfree(temp_buf);
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h
index b016dbc..6bb86c2 100644
--- a/include/linux/mmc/card.h
+++ b/include/linux/mmc/card.h
@@ -195,6 +195,7 @@
EMPTY_QUEUE,
REL_WRITE,
THRESHOLD,
+ LARGE_SEC_ALIGN,
MAX_REASONS,
};