public inbox for linux-mmc@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v9 0/2] mmc: support packed command feature of eMMC4.5
@ 2013-02-06  8:00 Seungwon Jeon
  2013-02-08 19:24 ` merez
  2013-02-11 18:12 ` Chris Ball
  0 siblings, 2 replies; 6+ messages in thread
From: Seungwon Jeon @ 2013-02-06  8:00 UTC (permalink / raw)
  To: linux-mmc
  Cc: 'Chris Ball', 'Maya Erez',
	'Subhash Jadavani', 'S, Venkatraman',
	'Saugata Das', 'Namjae Jeon',
	'Arnd Bergmann'

This patch-set adds support of packed command feature for eMMC4.5 devices.
Specially, packed write is introduced.

Seeing the NAND flash, write is expensive operation including the block management internally.
Because write data cannot be overwritten on the NAND cell, additional operation is needed.
Overhead of the management can be reduced with once large write size rather than several data of small size.
That is when writing large amounts of data, eMMC gives a significant speed advantage.
Packed write can help it by gathering the data. Actually we got the performance gain.
For experiments, three eMMCs of different type from two vendor are used.

Additionally, there is a interesting result for packed read.
Packed read has been excluded from whole patch-set with a performance regression conclusively.
I found the reason for this regression. As we know, asynchronous transfer improves the performance
over than 20% for the read.  And I found that packed read actually gives performance gain of 2% 
only if asynchronous transfer is disabled. This shows that asynchronous transfer is more effective 
than packed read although packed read is a bit useful.

When several requests is packed for read, asynchronous transfer doesn't occur. That is packed read replaces
asynchronous transfer. Choice of packed read equals to the abandonment of asynchronous transfer.
This also means the abandonment of performance advantage. As a result, asynchronous transfer is currently
best choice regarding the read.

Changes in v9:
	- Rebase with the latest mmc.
	- Rework including reconstitution of data struct, on the whole.
	* Extend the number of blocks for packed header considering large sector (according to the eMMC 4.51)
	* Use flag of mmc_blk_data to identify permission of packed command.
	* Check the max commands strictly conforming to mandatory minimum values of spec.
	Note: These patch-set is dependant in the following patch.
	[PATCH 2/2] mmc: block: don't start new request when the card is removed
	
Changes in v8:
	- Ensure the alignment of sector size for native 4KB sector
	  in command packing(from Subhash Jadavani)
	- Exclude packed read in this phase due to performance issue.

Changes in v7:
	- Break the endless execution in some error handling(from Maya Erez).
	- Change the condition for enabling packed command(from Subhash Jadavani).
	- Spilt the error related routine from mmc_blk_issue_rw_rq.

Changes in v6:
	- Split the patch for packed read.
	- Remove the unnecessary code. 

Changes in v5:
	- Revert "Add a variable member in mmc_host for minimum number of packed entries".
	- Fix the partial packed command from failure index.
	- Clean an unnecessary parameter of mmc_blk_packed_hdr_wrq_prep 
	- Clean warning of checkpatch.

Changes in v4:
	- Add Data-tag as CMD23 argument for packed header.
	- Separate the capability of MMC_CAP2_PACKED_CMD into read and write.
	- Remove unncessary initial value.

Changes in v3:
	- Add a variable member in mmc_host for minimum number of packed entries.
	  This value can be overridden by host.
	- Fix a handling of error sequence.

Changes in v2:
	- Fix the packed read sequence and error handling.
	- Apply checking the exception status for all cases with
	  the comments from Maya Erez and Sahitya Tummala.
	- Fix preparing the packed list with the comment from Maya Erez and Venkatraman.

Seungwon Jeon (2):
      mmc: add packed command feature of eMMC4.5
      mmc: support packed write command for eMMC4.5 device
	
drivers/mmc/card/block.c   |  454 ++++++++++++++++++++++++++++++++++++++++++--
drivers/mmc/card/queue.c   |   96 +++++++++-
drivers/mmc/card/queue.h   |   22 ++
drivers/mmc/core/mmc.c     |   28 +++
drivers/mmc/core/mmc_ops.c |    1 +
include/linux/mmc/card.h   |    8 +
include/linux/mmc/core.h   |    4 +
include/linux/mmc/host.h   |    9 +
include/linux/mmc/mmc.h    |   15 ++-
9 files changed, 618 insertions(+), 19 deletions(-)

Thanks,
Seungwon Jeon
--
1.7.2.3



^ permalink raw reply	[flat|nested] 6+ messages in thread
* Re: [PATCH v9 0/2] mmc: support packed command feature of eMMC4.5
@ 2013-02-08 19:22 merez
  0 siblings, 0 replies; 6+ messages in thread
From: merez @ 2013-02-08 19:22 UTC (permalink / raw)
  To: Seungwon Jeon
  Cc: linux-mmc, 'Chris Ball', 'Maya Erez',
	'Subhash Jadavani', 'S, Venkatraman',
	'Saugata Das', 'Namjae Jeon',
	'Arnd Bergmann'




^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2013-02-12 10:53 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-02-06  8:00 [PATCH v9 0/2] mmc: support packed command feature of eMMC4.5 Seungwon Jeon
2013-02-08 19:24 ` merez
2013-02-11 18:12 ` Chris Ball
2013-02-11 20:07   ` Arnd Bergmann
2013-02-12 10:53     ` Seungwon Jeon
  -- strict thread matches above, loose matches on Subject: below --
2013-02-08 19:22 merez

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox