All of lore.kernel.org
 help / color / mirror / Atom feed
From: pwaechtler@mac.com (Peter Waechtler)
To: linux-arm-kernel@lists.infradead.org
Subject: MMC and reliable write - was: since when does ARM map the kernel memory in sections?
Date: Tue, 26 Apr 2011 22:38:02 +0200	[thread overview]
Message-ID: <201104262238.02979.pwaechtler@mac.com> (raw)
In-Reply-To: <20110426190719.GA5832@shareable.org>

Am Dienstag, 26. April 2011, 21:07:19 schrieb Jamie Lokier:
> Peter Waechtler wrote:
> > Am Dienstag, 26. April 2011, 12:33:29 schrieb Per Forlin:
> > > On 23 April 2011 11:23, Linus Walleij <linus.walleij@linaro.org> wrote:
> > > > 2011/4/22 Pavel Machek <pavel@ucw.cz>:
> > > >> Plus, I was told new MMC standard has "write reliable" option...
> > > > 
> > > > I think Per F?rlin looked into reliable write. The latest eMMC cards
> > > > has this, but OTOMH it was too darn slow to be used on current
> > > > chips/"cards".
> > > > 
> > > > Per, Sebastian: any details?
> > > 
> > > I had plans to add reliable writes and do benchmarking but I never got
> > > to it. Right now I have no plans to pick it up.
> > > 
> > > > Yours,
> > > > Linus Walleij
> > > 
> > > Regards,
> > > Per
> > 
> > As far as I understood the spec, reliable write only makes statements
> > like either the old data is still intact - or the new data was written
> > (completely).
> 
> Hmm, if that's a correct understanding, it's not very useful for
> fsync() or journal barriers (unless the spec implies something
> barrier-like), and it would be nice if there were guarantees about the
> _other_ data (that isn't being written at all) not getting corrupted
> as a side effect.
> 
> -- Jamie

well, I cannot interpret this already, but it reads scary ;)

JEDEC Standard No. 84-A441
Page 56


Reliable Write: Multiple block write with pre-defined block count and 
Reliable Write parameters. This transaction is similar to the basic pre-
defined multiple-block write (defined in previous bullet) with the
following exceptions. The old data pointed to by a logical address must remain 
unchanged until the new data written to same logical address has been 
successfully programmed. This is to ensure that the target address 
updated by the reliable write transaction never contains undefined data. 

Data must remain valid even if a sudden power loss occurs during the 
programming.

There are two versions of reliable write: legacy implementation and the 
enhance implementation. The type of reliable write supported by the device is 
indicated by the EN_REL_WR bit in the
WR_REL_PARAM extended CSD register.
 For the case of EN_REL_WR = 0 :


More fun on page 147ff:

? WR_REL_SET [167]
The write reliability settings register indicates the reliability setting for 
each of the user and general
area partitions in the device. The contents of this register are read only if 
the HS_CTRL_REL is 0 in
the WR_REL_PARAM extended CSD register. The default value of these bits is not 
specified and is
determined by the device.


it goes on with:

Bit[4]: WR_DATA_REL_4
0x0: In general purpose partition 4, the write operation has been optimized 
for performance and
existing data in the partition could be at risk if a power failure occurs.
0x1: In general purpose partition 4, the device protects previously written 
data if power failure occurs during a write operation.

  reply	other threads:[~2011-04-26 20:38 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-12 18:52 since when does ARM map the kernel memory in sections? Peter Wächtler
2011-04-12 19:11 ` Colin Cross
2011-04-13 18:19   ` Peter Wächtler
2011-04-12 19:20 ` Andrei Warkentin
2011-04-12 20:33   ` Jamie Lokier
2011-04-13 15:27     ` Nicolas Pitre
2011-04-13 20:11       ` Jamie Lokier
2011-04-18 13:52     ` Pavel Machek
2011-04-18 17:07       ` Jamie Lokier
2011-04-18 17:17         ` Nicolas Pitre
2011-04-22 15:47         ` Pavel Machek
2011-04-23  9:23           ` Linus Walleij
2011-04-26 10:33             ` Per Forlin
2011-04-26 19:00               ` Peter Waechtler
2011-04-26 19:07                 ` Jamie Lokier
2011-04-26 20:38                   ` Peter Waechtler [this message]
2011-04-26 22:45                     ` MMC and reliable write - was: " Jamie Lokier
2011-04-27  1:13                       ` Andrei Warkentin
2011-04-27 13:07                         ` Jamie Lokier
2011-04-27 19:18                           ` Andrei Warkentin
2011-04-27 19:33                             ` Arnd Bergmann
2011-05-03  8:04                             ` Jamie Lokier
2011-06-06 10:28                               ` Pavel Machek
2011-06-06 20:38                                 ` Peter Waechtler
2011-04-26 20:24               ` Andrei Warkentin
2011-04-26 22:58                 ` Jamie Lokier
2011-04-27  0:27                   ` Andrei Warkentin
2011-04-27 13:19                     ` Jamie Lokier
2011-04-27 13:32                       ` Arnd Bergmann
2011-04-27 18:50                         ` Peter Waechtler
2011-04-27 18:58                           ` Andrei Warkentin
2011-04-18 19:21       ` Peter Waechtler
2011-04-18 17:24         ` Pavel Machek
2011-04-19  0:43         ` Jamie Lokier
2011-04-13  6:51   ` Peter Wächtler
2011-04-13 15:44     ` Nicolas Pitre
2011-04-13 18:35       ` Peter Wächtler
2011-04-12 20:15 ` Russell King - ARM Linux

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=201104262238.02979.pwaechtler@mac.com \
    --to=pwaechtler@mac.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.