From: J Freyensee <james_p_freyensee@linux.intel.com>
To: Andrei Warkentin <awarkentin@vmware.com>
Cc: "Praveen G K" <praveen.gk@gmail.com>,
"Per Förlin" <per.forlin@stericsson.com>,
"Linus Walleij" <linus.walleij@linaro.org>,
linux-mmc@vger.kernel.org, "Arnd Bergmann" <arnd@arndb.de>,
"Jon Medhurst" <tixy@linaro.org>,
"Andrei E. Warkentin" <andrey.warkentin@gmail.com>
Subject: Re: slow eMMC write speed
Date: Mon, 03 Oct 2011 14:00:37 -0700 [thread overview]
Message-ID: <4E8A2275.3050009@linux.intel.com> (raw)
In-Reply-To: <1680748273.3852.1317673156420.JavaMail.root@zimbra-prod-mbox-2.vmware.com>
On 10/03/2011 01:19 PM, Andrei Warkentin wrote:
> Hi James,
>
> ----- Original Message -----
>> From: "J Freyensee"<james_p_freyensee@linux.intel.com>
>>
>> Yeah, I know I'd be doing myself a huge favor by working off of
>> mmc-next
>> (or close to it), but product-wise, my department doesn't care for
>> sustaining current platforms...yet (still trying to convince).
>>
>
> I'd suggest working on linux-mmc. You can always back-port.
>
>> So I was looking into sticking a write cache into block.c driver as a
>> parameter, so it can be turned on and off upon driver load. Any
>> write
>> operation goes to the cache and only on a cache collision will the
>> write operation get sent to the host controller for a write. What I
>> have working so far is just with an MMC card in an MMC slot of a
>> laptop,
>> and just bare-bones. No general flush routine, error-handling, etc.
>> From a couple performance measurements I did on the MMC slot using
>> blktrace/blkparse and 400MB write transactions, I was seeing huge
>> performance boost with no data corruption. So it is not looking like
>> a
>> total hair-brained idea. But I am still pretty far from
>> understanding
>> everything here. And the real payoff we want to see is performance a
>> user can see on a handheld (i.e., Android) systems.
>>
>
> Interesting. Thanks for sharing. I don't want to seem silly, but how is what you're doing different from
> the page cache? The page cache certainly defers write back (and I believe this is tunable...I'm not too
> familiar yet or comfortable around the rest of blk I/O and VM).
The idea is the page cache is too generic for hand-held (i.e. Android)
workloads. Page cache handles regular files, directories,
user-swappable processes, etc, and all of that has to contend with the
resource available for the page cache. This is specific to eMMC
workloads. Namely, for games and even .pdf files on an Android system
(ARM or Intel), there are a lot of 1-2 sector writes and almost 0 reads.
But by no means am I an expert on the page cache area either.
You are certainly right that the page cache is tunable. I briefly
looked at this, but then I decided I need to start writing something to
start understanding stuff.
What are your test workloads?
For the MMC tests I conducted, they were just write blasts, like writing
200 1MB files 200 times. I just did enough as a 'thumb' test to see if
it's worth killing myself on an Android box...it's a little more
challenging getting it to work on an Android system since block.c is
*THE* driver, whereas an MMC slot on a laptop is like some peon
extension the laptop doesn't need.
I would
> guess this wouldn't have too great of an impact on a non O_DIRECT access, and O_DIRECT access anyway have
> to bypass any caching logic.
You are correct; I've already discovered I'd need to bypass the cache on
O_DIRECT access.
>
> A
--
J (James/Jay) Freyensee
Storage Technology Group
Intel Corporation
next prev parent reply other threads:[~2011-10-03 20:52 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-23 5:05 slow eMMC write speed Praveen G K
2011-09-28 5:42 ` Linus Walleij
2011-09-28 19:06 ` Praveen G K
2011-09-28 19:59 ` J Freyensee
2011-09-28 20:34 ` Praveen G K
2011-09-28 21:01 ` J Freyensee
2011-09-28 21:03 ` Praveen G K
2011-09-28 21:34 ` J Freyensee
2011-09-28 22:24 ` Praveen G K
2011-09-28 22:59 ` J Freyensee
2011-09-28 23:16 ` Praveen G K
2011-09-29 0:57 ` Philip Rakity
2011-09-29 2:24 ` Praveen G K
2011-09-29 3:30 ` Philip Rakity
2011-09-29 7:24 ` Linus Walleij
2011-09-29 8:17 ` Per Förlin
2011-09-29 20:16 ` J Freyensee
2011-09-30 8:22 ` Andrei E. Warkentin
2011-10-01 0:33 ` J Freyensee
2011-10-02 6:20 ` Andrei E. Warkentin
2011-10-03 18:01 ` J Freyensee
2011-10-03 20:19 ` Andrei Warkentin
2011-10-03 21:00 ` J Freyensee [this message]
2011-10-04 7:59 ` Andrei E. Warkentin
2011-10-19 23:27 ` Praveen G K
2011-10-20 15:01 ` Andrei E. Warkentin
2011-10-20 15:10 ` Praveen G K
2011-10-20 15:26 ` Andrei Warkentin
2011-10-20 16:07 ` Praveen G K
2011-10-21 4:45 ` Andrei E. Warkentin
2011-09-29 7:05 ` Linus Walleij
2011-09-29 7:33 ` Linus Walleij
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=4E8A2275.3050009@linux.intel.com \
--to=james_p_freyensee@linux.intel.com \
--cc=andrey.warkentin@gmail.com \
--cc=arnd@arndb.de \
--cc=awarkentin@vmware.com \
--cc=linus.walleij@linaro.org \
--cc=linux-mmc@vger.kernel.org \
--cc=per.forlin@stericsson.com \
--cc=praveen.gk@gmail.com \
--cc=tixy@linaro.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