Re: [PATCH v4 03/12] omap_hsmmc: add support for pre_req and post_req

2011-06-17 Thread Per Forlin
On 16 June 2011 15:14, S, Venkatraman wrote: > On Thu, May 26, 2011 at 3:27 AM, Per Forlin wrote: >> pre_req() runs dma_map_sg(), post_req() runs dma_unmap_sg. >> If not calling pre_req() before omap_hsmmc_request() >> dma_map_sg will be issued before starting the transfer.

Re: [PATCH v4 02/12] omap_hsmmc: use original sg_len for dma_unmap_sg

2011-06-17 Thread Per Forlin
On 16 June 2011 15:16, S, Venkatraman wrote: > On Thu, May 26, 2011 at 3:27 AM, Per Forlin wrote: >> Don't use the returned sg_len from dma_map_sg() as inparameter >> to dma_unmap_sg(). Use the original sg_len for both dma_map_sg >> and dma_unmap_sg. >&

Re: [PATCH v4 00/12] mmc: use nonblock mmc requests to minimize latency

2011-06-17 Thread Per Forlin
On 16 June 2011 15:39, S, Venkatraman wrote: > On Thu, May 26, 2011 at 3:27 AM, Per Forlin wrote: >> How significant is the cache maintenance over head? >> It depends, the eMMC are much faster now >> compared to a few years ago and cache maintenance cost more due to >>

[PATCH RESEND] omap_hsmmc: use original sg_len for dma_unmap_sg

2011-06-17 Thread Per Forlin
Don't use the returned sg_len from dma_map_sg() as inparameter to dma_unmap_sg(). Use the original sg_len for both dma_map_sg and dma_unmap_sg according to the documentation in DMA-API.txt. Signed-off-by: Per Forlin Reviewed-by: Venkatraman S --- drivers/mmc/host/omap_hsmmc.c |5 +++

[PATCH v5 00/12] mmc: use nonblock mmc requests to minimize latency

2011-06-18 Thread Per Forlin
measurements from IOZone and mmc_test: https://wiki.linaro.org/WorkingGroups/Kernel/Specs/StoragePerfMMC-async-req Changes since v4: * rebase on top of linux 3.0 Per Forlin (12): mmc: add none blocking mmc request function omap_hsmmc: use original sg_len for dma_unmap_sg omap_hsmmc: add support

[PATCH v5 01/12] mmc: add none blocking mmc request function

2011-06-18 Thread Per Forlin
before ending the block request and handing over the buffer to the block layer. Add a host-private member in mmc_data to be used by pre_req to mark the data. The host driver will then check this mark to see if the data is prepared or not. Signed-off-by: Per Forlin --- drivers/mmc/core/core.c

[PATCH v5 02/12] omap_hsmmc: use original sg_len for dma_unmap_sg

2011-06-18 Thread Per Forlin
Don't use the returned sg_len from dma_map_sg() as inparameter to dma_unmap_sg(). Use the original sg_len for both dma_map_sg and dma_unmap_sg according to the documentation in DMA-API.txt. Signed-off-by: Per Forlin Reviewed-by: Venkatraman S --- drivers/mmc/host/omap_hsmmc.c |5 +++

[PATCH v5 03/12] omap_hsmmc: add support for pre_req and post_req

2011-06-18 Thread Per Forlin
pre_req() runs dma_map_sg(), post_req() runs dma_unmap_sg. If not calling pre_req() before omap_hsmmc_request() dma_map_sg will be issued before starting the transfer. It is optional to use pre_req(). If issuing pre_req() post_req() must be to be called as well. Signed-off-by: Per Forlin

[PATCH v5 04/12] mmci: implement pre_req() and post_req()

2011-06-18 Thread Per Forlin
mmci. Signed-off-by: Per Forlin --- drivers/mmc/host/mmci.c | 146 ++ drivers/mmc/host/mmci.h |8 +++ 2 files changed, 141 insertions(+), 13 deletions(-) diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c index 7721de9..8b21467 100644

[PATCH v5 05/12] mmc: mmc_test: add debugfs file to list all tests

2011-06-18 Thread Per Forlin
Add a debugfs file "testlist" to print all available tests Signed-off-by: Per Forlin --- drivers/mmc/card/mmc_test.c | 39 ++- 1 files changed, 38 insertions(+), 1 deletions(-) diff --git a/drivers/mmc/card/mmc_test.c b/drivers/mmc/card/mmc_te

[PATCH v5 06/12] mmc: mmc_test: add test for none blocking transfers

2011-06-18 Thread Per Forlin
order to run the none blocking test cases. Signed-off-by: Per Forlin --- drivers/mmc/card/mmc_test.c | 322 +-- 1 files changed, 313 insertions(+), 9 deletions(-) diff --git a/drivers/mmc/card/mmc_test.c b/drivers/mmc/card/mmc_test.c index e8508e9..19e1132

[PATCH v5 07/12] mmc: add member in mmc queue struct to hold request data

2011-06-18 Thread Per Forlin
. This lies the ground for using multiple active request for one mmc queue. Signed-off-by: Per Forlin --- drivers/mmc/card/block.c | 125 +--- drivers/mmc/card/queue.c | 129 -- drivers/mmc/card/queue.h | 31

[PATCH v5 08/12] mmc: add a block request prepare function

2011-06-18 Thread Per Forlin
Break out code from mmc_blk_issue_rw_rq to create a block request prepare function. This doesn't change any functionallity. This helps when handling more than one active block request. Signed-off-by: Per Forlin --- drivers/mmc/card/block.c | 224 ---

[PATCH v5 09/12] mmc: move error code in mmc_block_issue_rw_rq to a separate function.

2011-06-18 Thread Per Forlin
Break out code without functional changes. This simplifies the code and makes way for handle two parallel request. Signed-off-by: Per Forlin --- drivers/mmc/card/block.c | 246 ++--- 1 files changed, 142 insertions(+), 104 deletions(-) diff --git a

[PATCH v5 10/12] mmc: add a second mmc queue request member

2011-06-18 Thread Per Forlin
Add an additional mmc queue request instance to make way for two active block requests. One request may be active while the other request is being prepared. Signed-off-by: Per Forlin --- drivers/mmc/card/queue.c | 44 ++-- drivers/mmc/card/queue.h

[PATCH v5 11/12] mmc: test: add random fault injection in core.c

2011-06-18 Thread Per Forlin
This simple fault injection proved to be very useful to test the error handling in the block.c rw_rq(). It may still be useful to test if the host driver handle pre_req() and post_req() correctly in case of errors. Signed-off-by: Per Forlin --- drivers/mmc/core/core.c| 54

[PATCH v5 12/12] mmc: add handling for two parallel block requests in issue_rw_rq

2011-06-18 Thread Per Forlin
isuue_rw_rq(), then it waits for the active request to complete before pushing it to the host. When to mmc-queue is empty it will call isuue_rw_rq() with req=NULL to finish off the active request without starting a new request. Signed-off-by: Per Forlin --- drivers/mmc/card/block.c | 121

[PATCH v6 00/11] mmc: use nonblock mmc requests to minimize latency

2011-06-19 Thread Per Forlin
measurements from IOZone and mmc_test: https://wiki.linaro.org/WorkingGroups/Kernel/Specs/StoragePerfMMC-async-req Changes since v5: * Fix spelling mistakes, replace "none blocking" with non-blocking. * excluded patch "omap_hsmmc: use original sg_len..." since it is being mer

[PATCH v6 01/11] mmc: add non-blocking mmc request function

2011-06-19 Thread Per Forlin
before ending the block request and handing over the buffer to the block layer. Add a host-private member in mmc_data to be used by pre_req to mark the data. The host driver will then check this mark to see if the data is prepared or not. Signed-off-by: Per Forlin --- drivers/mmc/core/core.c

[PATCH v6 03/11] mmci: implement pre_req() and post_req()

2011-06-19 Thread Per Forlin
mmci. Signed-off-by: Per Forlin --- drivers/mmc/host/mmci.c | 146 ++ drivers/mmc/host/mmci.h |8 +++ 2 files changed, 141 insertions(+), 13 deletions(-) diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c index b4a7e4f..985c77d 100644

[PATCH v6 02/11] omap_hsmmc: add support for pre_req and post_req

2011-06-19 Thread Per Forlin
pre_req() runs dma_map_sg(), post_req() runs dma_unmap_sg. If not calling pre_req() before omap_hsmmc_request() dma_map_sg will be issued before starting the transfer. It is optional to use pre_req(). If issuing pre_req() post_req() must be to be called as well. Signed-off-by: Per Forlin

[PATCH v6 05/11] mmc: mmc_test: add test for non-blocking transfers

2011-06-19 Thread Per Forlin
to run the non-blocking test cases. Signed-off-by: Per Forlin --- drivers/mmc/card/mmc_test.c | 322 +-- 1 files changed, 313 insertions(+), 9 deletions(-) diff --git a/drivers/mmc/card/mmc_test.c b/drivers/mmc/card/mmc_test.c index e8508e9..5325049

[PATCH v6 04/11] mmc: mmc_test: add debugfs file to list all tests

2011-06-19 Thread Per Forlin
Add a debugfs file "testlist" to print all available tests Signed-off-by: Per Forlin --- drivers/mmc/card/mmc_test.c | 39 ++- 1 files changed, 38 insertions(+), 1 deletions(-) diff --git a/drivers/mmc/card/mmc_test.c b/drivers/mmc/card/mmc_te

[PATCH v6 06/11] mmc: add member in mmc queue struct to hold request data

2011-06-19 Thread Per Forlin
. This lies the ground for using multiple active request for one mmc queue. Signed-off-by: Per Forlin --- drivers/mmc/card/block.c | 125 +--- drivers/mmc/card/queue.c | 129 -- drivers/mmc/card/queue.h | 31

[PATCH v6 07/11] mmc: add a block request prepare function

2011-06-19 Thread Per Forlin
Break out code from mmc_blk_issue_rw_rq to create a block request prepare function. This doesn't change any functionallity. This helps when handling more than one active block request. Signed-off-by: Per Forlin --- drivers/mmc/card/block.c | 224 ---

[PATCH v6 08/11] mmc: move error code in mmc_block_issue_rw_rq to a separate function.

2011-06-19 Thread Per Forlin
Break out code without functional changes. This simplifies the code and makes way for handle two parallel request. Signed-off-by: Per Forlin --- drivers/mmc/card/block.c | 246 ++--- 1 files changed, 142 insertions(+), 104 deletions(-) diff --git a

[PATCH v6 09/11] mmc: add a second mmc queue request member

2011-06-19 Thread Per Forlin
Add an additional mmc queue request instance to make way for two active block requests. One request may be active while the other request is being prepared. Signed-off-by: Per Forlin --- drivers/mmc/card/queue.c | 44 ++-- drivers/mmc/card/queue.h

[PATCH v6 10/11] mmc: test: add random fault injection in core.c

2011-06-19 Thread Per Forlin
This simple fault injection proved to be very useful to test the error handling in the block.c rw_rq(). It may still be useful to test if the host driver handle pre_req() and post_req() correctly in case of errors. Signed-off-by: Per Forlin --- drivers/mmc/core/core.c| 54

[PATCH v6 11/11] mmc: add handling for two parallel block requests in issue_rw_rq

2011-06-19 Thread Per Forlin
isuue_rw_rq(), then it waits for the active request to complete before pushing it to the host. When to mmc-queue is empty it will call isuue_rw_rq() with req=NULL to finish off the active request without starting a new request. Signed-off-by: Per Forlin --- drivers/mmc/card/block.c | 121

Re: [PATCH v6 11/11] mmc: add handling for two parallel block requests in issue_rw_rq

2011-06-20 Thread Per Forlin
On 20 June 2011 17:17, Kishore Kadiyala wrote: > On Mon, Jun 20, 2011 at 2:47 AM, Per Forlin wrote: >> Change mmc_blk_issue_rw_rq() to become asynchronous. >> The execution flow looks like this: >> The mmc-queue calls issue_rw_rq(), which sends the request >> to the h

Re: [PATCH v6 02/11] omap_hsmmc: add support for pre_req and post_req

2011-06-20 Thread Per Forlin
On 21 June 2011 07:41, Kishore Kadiyala wrote: > > >> + >> +static void omap_hsmmc_pre_req(struct mmc_host *mmc, struct mmc_request >> *mrq, >> +                              bool is_first_req) > > I don't see the usage of "is_first_req" below. > Is it required? > It is not required. It is only

Re: [PATCH v6 11/11] mmc: add handling for two parallel block requests in issue_rw_rq

2011-06-21 Thread Per Forlin
On 21 June 2011 08:40, Per Forlin wrote: > On 20 June 2011 17:17, Kishore Kadiyala wrote: >> On Mon, Jun 20, 2011 at 2:47 AM, Per Forlin wrote: >>> Change mmc_blk_issue_rw_rq() to become asynchronous. >>> The execution flow looks like this: >>> The mmc-queue

Re: [PATCH v6 11/11] mmc: add handling for two parallel block requests in issue_rw_rq

2011-06-21 Thread Per Forlin
On 19 June 2011 23:17, Per Forlin wrote: > Change mmc_blk_issue_rw_rq() to become asynchronous. > The execution flow looks like this: > The mmc-queue calls issue_rw_rq(), which sends the request > to the host and returns back to the mmc-queue. The mmc-queue calls > issue_rw_rq() a

Re: [PATCH v6 00/11] mmc: use nonblock mmc requests to minimize latency

2011-06-21 Thread Per Forlin
On 21 June 2011 09:53, Russell King - ARM Linux wrote: > On Sun, Jun 19, 2011 at 11:17:26PM +0200, Per Forlin wrote: >> How significant is the cache maintenance over head? > > Per, > > Can you measure how much difference this has before and after your > patch set please? A

Re: [PATCH v6 00/11] mmc: use nonblock mmc requests to minimize latency

2011-06-21 Thread Per Forlin
On 21 June 2011 10:09, Per Forlin wrote: > On 21 June 2011 09:53, Russell King - ARM Linux > wrote: >> On Sun, Jun 19, 2011 at 11:17:26PM +0200, Per Forlin wrote: >>> How significant is the cache maintenance over head? >> >> Per, >> >> Can you me

[PATCH v7 03/11] mmci: implement pre_req() and post_req()

2011-06-21 Thread Per Forlin
mmci. Signed-off-by: Per Forlin --- drivers/mmc/host/mmci.c | 146 ++ drivers/mmc/host/mmci.h |8 +++ 2 files changed, 141 insertions(+), 13 deletions(-) diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c index 6e27433..f8c837b 100644

[PATCH v7 05/11] mmc: mmc_test: add test for non-blocking transfers

2011-06-21 Thread Per Forlin
to run the non-blocking test cases. Signed-off-by: Per Forlin --- drivers/mmc/card/mmc_test.c | 322 +-- 1 files changed, 313 insertions(+), 9 deletions(-) diff --git a/drivers/mmc/card/mmc_test.c b/drivers/mmc/card/mmc_test.c index 1853ebf..b0f9b00

[PATCH v7 04/11] mmc: mmc_test: add debugfs file to list all tests

2011-06-21 Thread Per Forlin
Add a debugfs file "testlist" to print all available tests Signed-off-by: Per Forlin --- drivers/mmc/card/mmc_test.c | 39 ++- 1 files changed, 38 insertions(+), 1 deletions(-) diff --git a/drivers/mmc/card/mmc_test.c b/drivers/mmc/card/mmc_te

[PATCH v7 02/11] omap_hsmmc: add support for pre_req and post_req

2011-06-21 Thread Per Forlin
pre_req() runs dma_map_sg(), post_req() runs dma_unmap_sg. If not calling pre_req() before omap_hsmmc_request() dma_map_sg will be issued before starting the transfer. It is optional to use pre_req(). If issuing pre_req() post_req() must be to be called as well. Signed-off-by: Per Forlin

[PATCH v7 00/11] mmc: use nonblock mmc requests to minimize latency

2011-06-21 Thread Per Forlin
running tests on ext4 with discard enable. The test procedure is documented here: https://wiki.linaro.org/WorkingGroups/Kernel/Specs/StoragePerfMMC-async-req#Liability_test * Resolved bug by preventing mmc async request run in parallel to discard (mmc_erase). Per Forlin (11): mmc: add non

[PATCH v7 01/11] mmc: add non-blocking mmc request function

2011-06-21 Thread Per Forlin
before ending the block request and handing over the buffer to the block layer. Add a host-private member in mmc_data to be used by pre_req to mark the data. The host driver will then check this mark to see if the data is prepared or not. Signed-off-by: Per Forlin --- drivers/mmc/core/core.c

[PATCH v7 08/11] mmc: move error code in mmc_block_issue_rw_rq to a separate function.

2011-06-21 Thread Per Forlin
Break out code without functional changes. This simplifies the code and makes way for handle two parallel request. Signed-off-by: Per Forlin --- drivers/mmc/card/block.c | 226 +++--- 1 files changed, 132 insertions(+), 94 deletions(-) diff --git a

[PATCH v7 06/11] mmc: add member in mmc queue struct to hold request data

2011-06-21 Thread Per Forlin
. This lies the ground for using multiple active request for one mmc queue. Signed-off-by: Per Forlin --- drivers/mmc/card/block.c | 106 ++ drivers/mmc/card/queue.c | 129 -- drivers/mmc/card/queue.h | 30

[PATCH v7 10/11] mmc: test: add random fault injection in core.c

2011-06-21 Thread Per Forlin
This simple fault injection proved to be very useful to test the error handling in the block.c rw_rq(). It may still be useful to test if the host driver handle pre_req() and post_req() correctly in case of errors. Signed-off-by: Per Forlin --- drivers/mmc/core/core.c| 54

[PATCH v7 09/11] mmc: add a second mmc queue request member

2011-06-21 Thread Per Forlin
Add an additional mmc queue request instance to make way for two active block requests. One request may be active while the other request is being prepared. Signed-off-by: Per Forlin --- drivers/mmc/card/queue.c | 44 ++-- drivers/mmc/card/queue.h

[PATCH v7 07/11] mmc: add a block request prepare function

2011-06-21 Thread Per Forlin
Break out code from mmc_blk_issue_rw_rq to create a block request prepare function. This doesn't change any functionallity. This helps when handling more than one active block request. Signed-off-by: Per Forlin --- drivers/mmc/card/block.c | 170 ---

[PATCH v7 11/11] mmc: add handling for two parallel block requests in issue_rw_rq

2011-06-21 Thread Per Forlin
isuue_rw_rq(), then it waits for the active request to complete before pushing it to the host. When to mmc-queue is empty it will call isuue_rw_rq() with req=NULL to finish off the active request without starting a new request. Signed-off-by: Per Forlin --- drivers/mmc/card/block.c | 120

Re: [PATCH v6 02/11] omap_hsmmc: add support for pre_req and post_req

2011-06-21 Thread Per Forlin
On 21 June 2011 21:18, Nicolas Pitre wrote: > On Tue, 21 Jun 2011, Per Forlin wrote: > >> On 21 June 2011 07:41, Kishore Kadiyala wrote: >> > >> > >> >> + >> >> +static void omap_hsmmc_pre_req(struct mmc_host *mmc, struct mmc_request

Re: [PATCH v6 11/11] mmc: add handling for two parallel block requests in issue_rw_rq

2011-06-21 Thread Per Forlin
On 20 June 2011 17:17, Kishore Kadiyala wrote: > On Mon, Jun 20, 2011 at 2:47 AM, Per Forlin wrote: >> Change mmc_blk_issue_rw_rq() to become asynchronous. >> The execution flow looks like this: >> The mmc-queue calls issue_rw_rq(), which sends the request >> to the h

[PATCH v7 01/11] mmc: add non-blocking mmc request function

2011-06-21 Thread Per Forlin
before ending the block request and handing over the buffer to the block layer. Add a host-private member in mmc_data to be used by pre_req to mark the data. The host driver will then check this mark to see if the data is prepared or not. Signed-off-by: Per Forlin --- drivers/mmc/core/core.c

[PATCH v7 03/11] mmci: implement pre_req() and post_req()

2011-06-21 Thread Per Forlin
mmci. Signed-off-by: Per Forlin --- drivers/mmc/host/mmci.c | 146 ++ drivers/mmc/host/mmci.h |8 +++ 2 files changed, 141 insertions(+), 13 deletions(-) diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c index 6e27433..f8c837b 100644

[PATCH v7 00/11] use nonblock mmc requests to minimize latency

2011-06-21 Thread Per Forlin
://wiki.linaro.org/WorkingGroups/Kernel/Specs/StoragePerfMMC-async-req#Liability_test * Resolved bug by preventing mmc async request run in parallel to discard (mmc_erase). Per Forlin (11): mmc: add non-blocking mmc request function omap_hsmmc: add support for pre_req and post_req mmci

[PATCH v7 02/11] omap_hsmmc: add support for pre_req and post_req

2011-06-21 Thread Per Forlin
pre_req() runs dma_map_sg(), post_req() runs dma_unmap_sg. If not calling pre_req() before omap_hsmmc_request() dma_map_sg will be issued before starting the transfer. It is optional to use pre_req(). If issuing pre_req() post_req() must be to be called as well. Signed-off-by: Per Forlin

[PATCH v7 05/11] mmc: mmc_test: add test for non-blocking transfers

2011-06-21 Thread Per Forlin
to run the non-blocking test cases. Signed-off-by: Per Forlin --- drivers/mmc/card/mmc_test.c | 322 +-- 1 files changed, 313 insertions(+), 9 deletions(-) diff --git a/drivers/mmc/card/mmc_test.c b/drivers/mmc/card/mmc_test.c index e8508e9..5325049

[PATCH v7 04/11] mmc: mmc_test: add debugfs file to list all tests

2011-06-21 Thread Per Forlin
Add a debugfs file "testlist" to print all available tests Signed-off-by: Per Forlin --- drivers/mmc/card/mmc_test.c | 39 ++- 1 files changed, 38 insertions(+), 1 deletions(-) diff --git a/drivers/mmc/card/mmc_test.c b/drivers/mmc/card/mmc_te

[PATCH v7 07/11] mmc: add a block request prepare function

2011-06-21 Thread Per Forlin
Break out code from mmc_blk_issue_rw_rq to create a block request prepare function. This doesn't change any functionallity. This helps when handling more than one active block request. Signed-off-by: Per Forlin --- drivers/mmc/card/block.c |

[PATCH v7 06/11] mmc: add member in mmc queue struct to hold request data

2011-06-21 Thread Per Forlin
. This lies the ground for using multiple active request for one mmc queue. Signed-off-by: Per Forlin --- drivers/mmc/card/block.c | 125 +--- drivers/mmc/card/queue.c | 129 -- drivers/mmc/card/queue.h | 31

[PATCH v7 09/11] mmc: add a second mmc queue request member

2011-06-21 Thread Per Forlin
Add an additional mmc queue request instance to make way for two active block requests. One request may be active while the other request is being prepared. Signed-off-by: Per Forlin --- drivers/mmc/card/queue.c | 44 ++-- drivers/mmc/card/queue.h

[PATCH v7 08/11] mmc: move error code in mmc_block_issue_rw_rq to a separate function.

2011-06-21 Thread Per Forlin
Break out code without functional changes. This simplifies the code and makes way for handle two parallel request. Signed-off-by: Per Forlin --- drivers/mmc/card/block.c | 244 +++--- 1 files changed, 142 insertions(+), 102 deletions(-) diff --git a

[PATCH v7 10/11] mmc: test: add random fault injection in core.c

2011-06-21 Thread Per Forlin
This simple fault injection proved to be very useful to test the error handling in the block.c rw_rq(). It may still be useful to test if the host driver handle pre_req() and post_req() correctly in case of errors. Signed-off-by: Per Forlin --- drivers/mmc/core/core.c| 54

[PATCH v7 11/11] mmc: add handling for two parallel block requests in issue_rw_rq

2011-06-21 Thread Per Forlin
isuue_rw_rq(), then it waits for the active request to complete before pushing it to the host. When to mmc-queue is empty it will call isuue_rw_rq() with req=NULL to finish off the active request without starting a new request. Signed-off-by: Per Forlin --- drivers/mmc/card/block.c | 124

Re: [PATCH v7 01/11] mmc: add non-blocking mmc request function

2011-06-22 Thread Per Forlin
On 22 June 2011 09:42, Venkatraman S wrote: > On Wed, Jun 22, 2011 at 5:08 AM, Per Forlin wrote: >> Previously there has only been one function mmc_wait_for_req() >> to start and wait for a request. This patch adds >>  * mmc_start_req() - starts a request wihtout waitin

Re: [PATCH v7 01/11] mmc: add non-blocking mmc request function

2011-06-22 Thread Per Forlin
On 22 June 2011 10:53, S, Venkatraman wrote: > On Wed, Jun 22, 2011 at 2:15 PM, Per Forlin wrote: >> On 22 June 2011 09:42, Venkatraman S wrote: >>> On Wed, Jun 22, 2011 at 5:08 AM, Per Forlin wrote: >>>> Previously there has only been one function mmc_wait_for_re

Re: [PATCH v7 02/11] omap_hsmmc: add support for pre_req and post_req

2011-06-22 Thread Per Forlin
please clarify or show me your build log? I don't see how host->next_data.cookie is connected to DMA_ENGINE. > On Wed, Jun 22, 2011 at 2:38 AM, Per Forlin wrote: >> >> @@ -2077,6 +2155,7 @@ static int __init omap_hsmmc_probe(struct >> platform_device *pdev) >&g

Re: [PATCH v7 02/11] omap_hsmmc: add support for pre_req and post_req

2011-06-22 Thread Per Forlin
On 22 June 2011 11:31, Per Forlin wrote: > On 22 June 2011 10:51, Nickolay Nickolaev wrote: >> Hello, >> >> this one's causing me compilation trouble troubles when CONFIG_DMA_ENGINE is >> not defined. >> > I don't see this issue when I

Re: [PATCH v7 03/11] mmci: implement pre_req() and post_req()

2011-06-22 Thread Per Forlin
On 22 June 2011 01:38, Per Forlin wrote: > pre_req() runs dma_map_sg() and prepares the dma descriptor > for the next mmc data transfer. post_req() runs dma_unmap_sg. > If not calling pre_req() before mmci_request(), mmci_request() > will prepare the cache and dma just like it did it

[PATCH] mmci: move dmaengine dependent access from mmci_probe to mmci_dma_setup

2011-06-22 Thread Per Forlin
From: Per Forlin Move dmaengine dependent host->next_data variable from mmci_probe to mmci_dma_setup. The mmci fails to compile without CONFIG_DMA_ENGINE if using next_data in mmci_probe. Signed-off-by: Per Forlin --- drivers/mmc/host/mmci.c |5 +++-- 1 files changed, 3 insertions(+)

Re: [PATCH v6 00/11] mmc: use nonblock mmc requests to minimize latency

2011-06-24 Thread Per Forlin
On 23 June 2011 15:37, Russell King - ARM Linux wrote: > On Tue, Jun 21, 2011 at 11:26:27AM +0200, Per Forlin wrote: >> Here are the results. > > It looks like this patch is either a no-op or slightly worse.  As > people have been telling me that dsb is rather expensive, and th

[PATCH] mmc: mmc_test: add wait_busy to the async check_result

2011-06-27 Thread Per Forlin
add missing mmc_test_wait_busy() to the check_result_async(). Host drivers may fail it not waiting for busy state to go away before starting the next transaction. Signed-off-by: Per Forlin --- drivers/mmc/card/mmc_test.c |3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a

Re: [PATCH v6 00/11] mmc: use nonblock mmc requests to minimize latency

2011-06-27 Thread Per Forlin
On 24 June 2011 10:58, Per Forlin wrote: > On 23 June 2011 15:37, Russell King - ARM Linux > wrote: >> On Tue, Jun 21, 2011 at 11:26:27AM +0200, Per Forlin wrote: >>> Here are the results. >> >> It looks like this patch is either a no-op or slightly worse.  

Re: [PATCH v6 00/11] mmc: use nonblock mmc requests to minimize latency

2011-06-27 Thread Per Forlin
On 27 June 2011 12:02, Russell King - ARM Linux wrote: > On Mon, Jun 27, 2011 at 11:42:52AM +0200, Per Forlin wrote: >> Conclusion: >> Working with mmc the relative cost of DSB is almost none. There seems >> to be slightly higher number for mmc blocking requests with the DSB

[PATCH v8 04/12] mmc: mmc_test: add debugfs file to list all tests

2011-06-28 Thread Per Forlin
Add a debugfs file "testlist" to print all available tests Signed-off-by: Per Forlin --- drivers/mmc/card/mmc_test.c | 39 ++- 1 files changed, 38 insertions(+), 1 deletions(-) diff --git a/drivers/mmc/card/mmc_test.c b/drivers/mmc/card/mmc_te

[PATCH v8 00/12] use nonblock mmc requests to minimize latency

2011-06-28 Thread Per Forlin
mmci * Add mmc test to measure how performance is affected by sg length * Add missing wait_for_busy in mmc_test non-blocking test. This call got lost in v4 of this patchset when refactoring mmc_start_req. * Add sub-prefix (core block queue) to relevant patches. Per Forlin (12): mmc: core: ad

[PATCH v8 02/12] omap_hsmmc: add support for pre_req and post_req

2011-06-28 Thread Per Forlin
pre_req() runs dma_map_sg(), post_req() runs dma_unmap_sg. If not calling pre_req() before omap_hsmmc_request() dma_map_sg will be issued before starting the transfer. It is optional to use pre_req(). If issuing pre_req() post_req() must be to be called as well. Signed-off-by: Per Forlin

[PATCH v8 01/12] mmc: core: add non-blocking mmc request function

2011-06-28 Thread Per Forlin
before ending the block request and handing over the buffer to the block layer. Add a host-private member in mmc_data to be used by pre_req to mark the data. The host driver will then check this mark to see if the data is prepared or not. Signed-off-by: Per Forlin --- drivers/mmc/core/core.c

[PATCH v8 06/12] mmc: mmc_test: test to measure how sg_len affect performance

2011-06-28 Thread Per Forlin
test that measures how the mmc bandwidth depends on the numbers of sg elements in the sg list. The transfer size if fixed and sg length goes from a few up to 512. The purpose is to measure overhead caused by multiple sg elements. Signed-off-by: Per Forlin --- drivers/mmc/card/mmc_test.c | 151

[PATCH v8 03/12] mmci: implement pre_req() and post_req()

2011-06-28 Thread Per Forlin
mmci. Signed-off-by: Per Forlin --- drivers/mmc/host/mmci.c | 147 ++ drivers/mmc/host/mmci.h |8 +++ 2 files changed, 142 insertions(+), 13 deletions(-) diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c index b4a7e4f..6ed6770 100644

[PATCH v8 05/12] mmc: mmc_test: add test for non-blocking transfers

2011-06-28 Thread Per Forlin
to run the non-blocking test cases. Signed-off-by: Per Forlin --- drivers/mmc/card/mmc_test.c | 311 +- 1 files changed, 303 insertions(+), 8 deletions(-) diff --git a/drivers/mmc/card/mmc_test.c b/drivers/mmc/card/mmc_test.c index e8508e9..466a192

[PATCH v8 10/12] mmc: queue: add a second mmc queue request member

2011-06-28 Thread Per Forlin
Add an additional mmc queue request instance to make way for two active block requests. One request may be active while the other request is being prepared. Signed-off-by: Per Forlin --- drivers/mmc/card/queue.c | 44 ++-- drivers/mmc/card/queue.h

[PATCH v8 08/12] mmc: block: add a block request prepare function

2011-06-28 Thread Per Forlin
Break out code from mmc_blk_issue_rw_rq to create a block request prepare function. This doesn't change any functionallity. This helps when handling more than one active block request. Signed-off-by: Per Forlin --- drivers/mmc/card/block.c |

[PATCH v8 07/12] mmc: block: add member in mmc queue struct to hold request data

2011-06-28 Thread Per Forlin
. This lies the ground for using multiple active request for one mmc queue. Signed-off-by: Per Forlin --- drivers/mmc/card/block.c | 109 ++- drivers/mmc/card/queue.c | 129 -- drivers/mmc/card/queue.h | 31

[PATCH v8 11/12] mmc: core: add random fault injection

2011-06-28 Thread Per Forlin
This simple fault injection proved to be very useful to test the error handling in the block.c rw_rq(). It may still be useful to test if the host driver handle pre_req() and post_req() correctly in case of errors. Signed-off-by: Per Forlin --- drivers/mmc/core/core.c| 54

[PATCH v8 09/12] mmc: block: move error code in issue_rw_rq to a separate function.

2011-06-28 Thread Per Forlin
Break out code without functional changes. This simplifies the code and makes way for handle two parallel request. Signed-off-by: Per Forlin --- drivers/mmc/card/block.c | 220 +++--- 1 files changed, 131 insertions(+), 89 deletions(-) diff --git a

[PATCH v8 12/12] mmc: block: add handling for two parallel block requests in issue_rw_rq

2011-06-28 Thread Per Forlin
isuue_rw_rq(), then it waits for the active request to complete before pushing it to the host. When to mmc-queue is empty it will call isuue_rw_rq() with req=NULL to finish off the active request without starting a new request. Signed-off-by: Per Forlin --- drivers/mmc/card/block.c | 80

Re: [PATCH v8 12/12] mmc: block: add handling for two parallel block requests in issue_rw_rq

2011-06-28 Thread Per Forlin
On 28 June 2011 10:11, Per Forlin wrote: > Change mmc_blk_issue_rw_rq() to become asynchronous. > The execution flow looks like this: > The mmc-queue calls issue_rw_rq(), which sends the request > to the host and returns back to the mmc-queue. The mmc-queue calls > issue_rw_rq() a

Re: [PATCH v8 05/12] mmc: mmc_test: add test for non-blocking transfers

2011-07-01 Thread Per Forlin
On 28 June 2011 10:11, Per Forlin wrote: > Add four tests for read and write performance per > different transfer size, 4k to 4M. >  * Read using blocking mmc request >  * Read using non-blocking mmc request >  * Write using blocking mmc request >  * Write using non-blocking m

Re: [PATCH v8 06/12] mmc: mmc_test: test to measure how sg_len affect performance

2011-07-01 Thread Per Forlin
On 28 June 2011 10:11, Per Forlin wrote: > test that measures how the mmc bandwidth depends on the numbers of sg elements > in the sg list. The transfer size if fixed and sg length goes from a few up > to 512. The purpose is to measure overhead caused by multiple sg elements. > >

[PATCH v9 01/12] mmc: core: add non-blocking mmc request function

2011-07-01 Thread Per Forlin
before ending the block request and handing over the buffer to the block layer. Add a host-private member in mmc_data to be used by pre_req to mark the data. The host driver will then check this mark to see if the data is prepared or not. Signed-off-by: Per Forlin Acked-by: Kyungmin Park Acked-by

[PATCH v9 00/12] use nonblock mmc requests to minimize latency

2011-07-01 Thread Per Forlin
, * allow non-blocking test even if pre/post is not implemented, * return error if only one of pre or post is implemented. Per Forlin (12): mmc: core: add non-blocking mmc request function omap_hsmmc: add support for pre_req and post_req mmci: implement pre_req() and post_req() mmc

[PATCH v9 03/12] mmci: implement pre_req() and post_req()

2011-07-01 Thread Per Forlin
mmci. Signed-off-by: Per Forlin Tested-by: Linus Walleij --- drivers/mmc/host/mmci.c | 147 ++ drivers/mmc/host/mmci.h |8 +++ 2 files changed, 142 insertions(+), 13 deletions(-) diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c index

[PATCH v9 02/12] omap_hsmmc: add support for pre_req and post_req

2011-07-01 Thread Per Forlin
pre_req() runs dma_map_sg(), post_req() runs dma_unmap_sg. If not calling pre_req() before omap_hsmmc_request() dma_map_sg will be issued before starting the transfer. It is optional to use pre_req(). If issuing pre_req() post_req() must be to be called as well. Signed-off-by: Per Forlin

[PATCH v9 04/12] mmc: mmc_test: add debugfs file to list all tests

2011-07-01 Thread Per Forlin
Add a debugfs file "testlist" to print all available tests Signed-off-by: Per Forlin Acked-by: Kyungmin Park Acked-by: Arnd Bergmann Reviewed-by: Venkatraman S Tested-by: Sourav Poddar Tested-by: Linus Walleij --- drivers/mmc/card/mmc_test.c | 39

[PATCH v9 05/12] mmc: mmc_test: add test for non-blocking transfers

2011-07-01 Thread Per Forlin
to run the non-blocking test cases. Signed-off-by: Per Forlin Acked-by: Kyungmin Park Acked-by: Arnd Bergmann Reviewed-by: Venkatraman S Tested-by: Sourav Poddar Tested-by: Linus Walleij --- drivers/mmc/card/mmc_test.c | 318 +- 1 files changed, 310

[PATCH v9 06/12] mmc: mmc_test: test to measure how sg_len affect performance

2011-07-01 Thread Per Forlin
test that measures how the mmc bandwidth depends on the numbers of sg elements in the sg list. The transfer size if fixed and sg length goes from a few up to 512. The purpose is to measure overhead caused by multiple sg elements. Signed-off-by: Per Forlin Acked-by: Kyungmin Park Acked-by: Arnd

[PATCH v9 09/12] mmc: block: move error code in issue_rw_rq to a separate function.

2011-07-01 Thread Per Forlin
Break out code without functional changes. This simplifies the code and makes way for handle two parallel request. Signed-off-by: Per Forlin Acked-by: Kyungmin Park Acked-by: Arnd Bergmann Reviewed-by: Venkatraman S Tested-by: Sourav Poddar Tested-by: Linus Walleij --- drivers/mmc/card

[PATCH v9 07/12] mmc: block: add member in mmc queue struct to hold request data

2011-07-01 Thread Per Forlin
. This lies the ground for using multiple active request for one mmc queue. Signed-off-by: Per Forlin Acked-by: Kyungmin Park Acked-by: Arnd Bergmann Reviewed-by: Venkatraman S Tested-by: Sourav Poddar Tested-by: Linus Walleij --- drivers/mmc/card/block.c | 109

[PATCH v9 10/12] mmc: queue: add a second mmc queue request member

2011-07-01 Thread Per Forlin
Add an additional mmc queue request instance to make way for two active block requests. One request may be active while the other request is being prepared. Signed-off-by: Per Forlin Acked-by: Kyungmin Park Acked-by: Arnd Bergmann Reviewed-by: Venkatraman S Tested-by: Sourav Poddar Tested-by

[PATCH v9 08/12] mmc: block: add a block request prepare function

2011-07-01 Thread Per Forlin
Break out code from mmc_blk_issue_rw_rq to create a block request prepare function. This doesn't change any functionallity. This helps when handling more than one active block request. Signed-off-by: Per Forlin Acked-by: Kyungmin Park Acked-by: Arnd Bergmann Reviewed-by: Venkatraman S T

[PATCH v9 11/12] mmc: core: add random fault injection

2011-07-01 Thread Per Forlin
This simple fault injection proved to be very useful to test the error handling in the block.c rw_rq(). It may still be useful to test if the host driver handle pre_req() and post_req() correctly in case of errors. Signed-off-by: Per Forlin Acked-by: Kyungmin Park Acked-by: Arnd Bergmann

[PATCH v9 12/12] mmc: block: add handling for two parallel block requests in issue_rw_rq

2011-07-01 Thread Per Forlin
isuue_rw_rq(), then it waits for the active request to complete before pushing it to the host. When to mmc-queue is empty it will call isuue_rw_rq() with req=NULL to finish off the active request without starting a new request. Signed-off-by: Per Forlin Acked-by: Kyungmin Park Acked-by: Arnd Bergmann

  1   2   3   4   >