public inbox for linux-mmc@vger.kernel.org
 help / color / mirror / Atom feed
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

  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