From: linux@arm.linux.org.uk (Russell King - ARM Linux)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v6 00/11] mmc: use nonblock mmc requests to minimize latency
Date: Sun, 3 Jul 2011 15:47:41 +0100 [thread overview]
Message-ID: <20110703144741.GK21898@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <BANLkTin80Z34=_uQaP=Dbv7eDxU1PH_qSw@mail.gmail.com>
On Tue, Jun 28, 2011 at 09:22:20AM +0300, saeed bishara wrote:
> On Mon, Jun 27, 2011 at 2:02 PM, Russell King - ARM Linux
> <linux@arm.linux.org.uk> wrote:
> > On Mon, Jun 27, 2011 at 01:34:48PM +0300, saeed bishara wrote:
> >> Russell,
> >> ? I'm curious about the correctness of this patch for systems with
> >> outer cache. shouldn't the dsb be issued before the outer cache
> >> maintenance?
> >
> > Maybe we should do two passes over SG lists then - one for the inner and
> > another for the outer cache?
> >
> > In effect we could do three passes:
> >
> > 1. Calculate the total size of the SG list to determine whether full
> > ? cache flush is more efficient.
> > 2. Flush inner cache
> > ? Then dsb()
> > 3. Flush outer cache
> > ? Another dsb()
> >
> looking at l2x0 cache, it seems to me that it would be possible to do
> asynchronous l2 cache maintenance for
> range operations, so maybe that can be utilized in order to
> parallelism between inner cache and outer cache maintenance,
> so the flow can be:
> 2. Flush sg buffer from inner cache
> 3. dsb()
> 4. start Flush outer cache for that buffer
> 5. Flush next sg buffer from inner cache
> 6. dsb
> 7. goto 4.
> 8. when no more buffers left, wait for outer cache operations
I'm not sure how practical that is given the architecture of the L2x0
controllers - where we need to wait for the previous operation to
complete by reading the operation specific register and then issue a
sync.
Having looked at this again, I think trying to do any optimization of
this code will be fraught, because of the dmabounce stuff getting in
the way. If only dmabounce didn't exist... if only crap hardware didn't
exist... dmabounce really needs to die.
prev parent reply other threads:[~2011-07-03 14:47 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-19 21:17 [PATCH v6 00/11] mmc: use nonblock mmc requests to minimize latency Per Forlin
2011-06-19 21:17 ` [PATCH v6 01/11] mmc: add non-blocking mmc request function Per Forlin
2011-06-19 21:17 ` [PATCH v6 02/11] omap_hsmmc: add support for pre_req and post_req Per Forlin
2011-06-21 5:41 ` Kishore Kadiyala
2011-06-21 6:51 ` Per Forlin
2011-06-21 13:56 ` Kishore Kadiyala
2011-06-21 19:18 ` Nicolas Pitre
2011-06-21 20:18 ` Per Forlin
2011-06-21 20:29 ` Nicolas Pitre
2011-06-19 21:17 ` [PATCH v6 03/11] mmci: implement pre_req() and post_req() Per Forlin
2011-06-19 21:17 ` [PATCH v6 04/11] mmc: mmc_test: add debugfs file to list all tests Per Forlin
2011-06-19 21:17 ` [PATCH v6 05/11] mmc: mmc_test: add test for non-blocking transfers Per Forlin
2011-06-19 21:17 ` [PATCH v6 06/11] mmc: add member in mmc queue struct to hold request data Per Forlin
2011-06-19 21:17 ` [PATCH v6 07/11] mmc: add a block request prepare function Per Forlin
2011-06-19 21:17 ` [PATCH v6 08/11] mmc: move error code in mmc_block_issue_rw_rq to a separate function Per Forlin
2011-06-19 21:17 ` [PATCH v6 09/11] mmc: add a second mmc queue request member Per Forlin
2011-06-19 21:17 ` [PATCH v6 10/11] mmc: test: add random fault injection in core.c Per Forlin
2011-06-19 21:17 ` [PATCH v6 11/11] mmc: add handling for two parallel block requests in issue_rw_rq Per Forlin
2011-06-20 15:17 ` Kishore Kadiyala
2011-06-21 6:40 ` Per Forlin
2011-06-21 7:05 ` Per Forlin
2011-06-21 13:52 ` Kishore Kadiyala
2011-06-21 21:01 ` Per Forlin
2011-06-21 7:14 ` Per Forlin
2011-06-21 7:53 ` [PATCH v6 00/11] mmc: use nonblock mmc requests to minimize latency Russell King - ARM Linux
2011-06-21 8:09 ` Per Forlin
2011-06-21 9:26 ` Per Forlin
2011-06-23 13:37 ` Russell King - ARM Linux
2011-06-24 8:58 ` Per Forlin
2011-06-27 9:42 ` Per Forlin
2011-06-27 10:02 ` Russell King - ARM Linux
2011-06-27 10:21 ` Per Forlin
2011-06-27 15:29 ` Linus Walleij
2011-06-27 16:34 ` Vijaya Kumar K-1
2011-06-27 10:34 ` saeed bishara
2011-06-27 11:02 ` Russell King - ARM Linux
2011-06-28 6:22 ` saeed bishara
2011-07-03 14:47 ` Russell King - ARM Linux [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110703144741.GK21898@n2100.arm.linux.org.uk \
--to=linux@arm.linux.org.uk \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).