Re: slow eMMC write speed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



----- Original Message -----
> From: "Praveen G K" <praveen.gk@xxxxxxxxx>
> To: "Andrei E. Warkentin" <andrey.warkentin@xxxxxxxxx>
> Cc: "J Freyensee" <james_p_freyensee@xxxxxxxxxxxxxxx>, "Andrei Warkentin" <awarkentin@xxxxxxxxxx>, "Per Förlin"
> <per.forlin@xxxxxxxxxxxxxx>, "Linus Walleij" <linus.walleij@xxxxxxxxxx>, linux-mmc@xxxxxxxxxxxxxxx, "Arnd Bergmann"
> <arnd@xxxxxxxx>, "Jon Medhurst" <tixy@xxxxxxxxxx>
> Sent: Thursday, October 20, 2011 11:10:02 AM
> Subject: Re: slow eMMC write speed
> 
> 2011/10/20 Andrei E. Warkentin <andrey.warkentin@xxxxxxxxx>:
> > 2011/10/19 Praveen G K <praveen.gk@xxxxxxxxx>:
> >> Also, can somebody please tell me the significance of
> >> blk_end_request? Thanks.
> >> Why do we call this after every block read or write?
> >
> > Because you want to update the struct request with the amount
> > written/read. If the entire
> > requested I/O range has been satiffied, blk_end_request also calls
> > blk_finish_request and
> > completes the request.
> Just for a quick understanding, I did the following
> 
> During every eMMC write, I called the multi block write command with
> the same set of data, and I called the mmc_end_request 

What's mmc_end_request? I'm assuming you meant blk_end_request.

> after  let's
> say every 10 transfers (with each transfer being 128 blocks).  I
> noticed that I did not see those big busy wait times as frequently as
> compared to calling blk_end_request after every 128 block was
> transferred.  Why is that happening?

So you did 10 back-to-back 64k transfers inside the request handling routine, and you noticed that caused a smaller GC delay
rather than doing 10 separate multiblock 64k transfers the normal way?

Depends. Maybe mmc_host_lazy_disable() (called by mmc_release_host) ends up doing some power management, which is bound
to affect the card as well.

Or maybe the card is trying to optimize consecutive writes into one larger write internally, and you're crossing some internal
timestamp checking logic that distinguishes between separate and consecutive writes. You should talk to your manufacturer, and investigate what happens to your host on mmc_release_host.

A
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux