linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "S, Venkatraman" <svenkatr@ti.com>
To: Minchan Kim <minchan@kernel.org>
Cc: linux-mmc@vger.kernel.org, cjb@laptop.org, linux-mm@kvack.org,
	linux-fsdevel@vger.kernel.org, linux-omap@vger.kernel.org,
	linux-kernel@vger.kernel.org, arnd.bergmann@linaro.org,
	alex.lemberg@sandisk.com, ilan.smith@sandisk.com,
	lporzio@micron.com, rmk+kernel@arm.linux.org.uk
Subject: Re: [PATCHv2 00/16] [FS, MM, block, MMC]: eMMC High Priority Interrupt Feature
Date: Tue, 8 May 2012 22:01:06 +0530	[thread overview]
Message-ID: <CANfBPZ-d-0FqY8Gruv+KDNoL3+FoQ68JEnxya5PydhY80x8yhA@mail.gmail.com> (raw)
In-Reply-To: <4FA8CF5E.1070202@kernel.org>

On Tue, May 8, 2012 at 1:16 PM, Minchan Kim <minchan@kernel.org> wrote:
> On 05/03/2012 11:22 PM, Venkatraman S wrote:
>
>> Standard eMMC (Embedded MultiMedia Card) specification expects to execute
>> one request at a time. If some requests are more important than others, they
>> can't be aborted while the flash procedure is in progress.
>>
>> New versions of the eMMC standard (4.41 and above) specfies a feature
>> called High Priority Interrupt (HPI). This enables an ongoing transaction
>> to be aborted using a special command (HPI command) so that the card is ready
>> to receive new commands immediately. Then the new request can be submitted
>> to the card, and optionally the interrupted command can be resumed again.
>>
>> Some restrictions exist on when and how the command can be used. For example,
>> only write and write-like commands (ERASE) can be preempted, and the urgent
>> request must be a read.
>>
>> In order to support this in software,
>> a) At the top level, some policy decisions have to be made on what is
>> worth preempting for.
>>       This implementation uses the demand paging requests and swap
>> read requests as potential reads worth preempting an ongoing long write.
>>       This is expected to provide improved responsiveness for smarphones
>> with multitasking capabilities - example would be launch a email application
>> while a video capture session (which causes long writes) is ongoing.
>
>
> Do you have a number to prove it's really big effective?

What type of benchmarks would be appropriate to post ?
As you know, the response time of a card would vary depending on
whether the flash device
has enough empty blocks to write into and doesn't have to resort to GC during
write requests.
Macro benchmarks like iozone etc would be inappropriate here, as they won't show
the latency effects of individual write requests hung up doing page
reclaim, which happens
once in a while.

>
> What I have a concern is when we got low memory situation.
> Then, writing speed for page reclaim is important for response.
> If we allow read preempt write and write is delay, it means read path takes longer time to
> get a empty buffer pages in reclaim. In such case, it couldn't be good.
>

I agree. But when writes are delayed anyway as it exceeds
hpi_time_threshold (the window
available for invoking HPI), it means that the device is in GC mode
and either read or write
could be equally delayed.  Note that even in case of interrupting a
write, a single block write
(which usually is too short to be interrupted, as designed) is
sufficient for doing a page reclaim,
and further write requests (including multiblock) would not be subject
to HPI, as they will
complete within the average time.

  reply	other threads:[~2012-05-08 16:31 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-03 14:22 [PATCHv2 00/16] [FS, MM, block, MMC]: eMMC High Priority Interrupt Feature Venkatraman S
2012-05-03 14:23 ` [PATCH v2 01/16] FS: Added demand paging markers to filesystem Venkatraman S
2012-05-06 23:31   ` Dave Chinner
2012-05-07 16:46     ` S, Venkatraman
2012-05-09  0:33       ` Dave Chinner
2012-05-09 13:59         ` Arnd Bergmann
2012-05-09 15:03           ` Christoph Hellwig
2012-05-09 16:54             ` Arnd Bergmann
2012-05-09 15:27       ` Vivek Goyal
     [not found]     ` <CAB+TZU8FNWuHrf6Hqnjs5fwH8yMJgd=CLPB0iUkrs2a-fgehtQ@mail.gmail.com>
2012-05-08 16:35       ` S, Venkatraman
2012-05-03 14:23 ` [PATCH v2 02/16] MM: Added page swapping markers to memory management Venkatraman S
2012-05-03 14:23 ` [PATCH v2 03/16] block: add queue attributes to manage dpmg and swapin requests Venkatraman S
2012-05-03 14:23 ` [PATCH v2 04/16] block: add sysfs attributes for runtime control of dpmg and swapin Venkatraman S
2012-05-03 14:23 ` [PATCH v2 05/16] block: Documentation: add sysfs ABI for expedite_dmpg and expedite_swapin Venkatraman S
2012-05-03 14:23 ` [PATCH v2 06/16] block: treat DMPG and SWAPIN requests as special Venkatraman S
2012-05-03 14:38   ` Jeff Moyer
2012-05-03 16:22     ` S, Venkatraman
2012-05-03 14:23 ` [PATCH v2 07/16] mmc: core: helper function for finding preemptible command Venkatraman S
2012-05-03 14:23 ` [PATCH v2 08/16] mmc: core: add preemptibility tracking fields to mmc command Venkatraman S
2012-05-03 14:23 ` [PATCH v2 09/16] mmc: core: Add MMC abort interface Venkatraman S
2012-05-03 14:23 ` [PATCH v2 10/16] mmc: block: Detect HPI support in card and host controller Venkatraman S
2012-05-03 14:23 ` [PATCH v2 11/16] mmc: core: Implement foreground request preemption procedure Venkatraman S
2012-05-03 14:23 ` [PATCH v2 12/16] mmc: sysfs: Add sysfs entry for tuning preempt_time_threshold Venkatraman S
2012-05-03 14:23 ` [PATCH v2 13/16] mmc: Documentation: Add sysfs ABI for hpi_time_threshold Venkatraman S
2012-05-03 14:23 ` [PATCH v2 14/16] mmc: block: Implement HPI invocation and handling logic Venkatraman S
2012-05-09  8:35   ` kdorfman
2012-05-09 14:01     ` Arnd Bergmann
2012-05-09 14:06     ` S, Venkatraman
2012-05-03 14:23 ` [PATCH v2 15/16] mmc: Update preempted request with CORRECTLY_PRG_SECTORS_NUM info Venkatraman S
2012-05-03 14:23 ` [PATCH v2 16/16] mmc: omap_hsmmc: Implement abort_req host_ops Venkatraman S
2012-05-08  7:46 ` [PATCHv2 00/16] [FS, MM, block, MMC]: eMMC High Priority Interrupt Feature Minchan Kim
2012-05-08 16:31   ` S, Venkatraman [this message]
2012-05-09  0:45     ` Minchan Kim
2012-05-11 19:18       ` S, Venkatraman
     [not found]       ` <CAB+TZU-r6aYn8WRZjZ0DojxMTMoc5MSx7c93W0pAad1coscPwQ@mail.gmail.com>
2012-05-14  7:55         ` Minchan Kim

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=CANfBPZ-d-0FqY8Gruv+KDNoL3+FoQ68JEnxya5PydhY80x8yhA@mail.gmail.com \
    --to=svenkatr@ti.com \
    --cc=alex.lemberg@sandisk.com \
    --cc=arnd.bergmann@linaro.org \
    --cc=cjb@laptop.org \
    --cc=ilan.smith@sandisk.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=lporzio@micron.com \
    --cc=minchan@kernel.org \
    --cc=rmk+kernel@arm.linux.org.uk \
    /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).