public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@zip.com.au>
To: Olaf Dietsche <olaf.dietsche--list.linux-kernel@exmail.de>
Cc: linux-kernel@vger.kernel.org
Subject: Re: What is a livelock? (was: [patch] sys_sync livelock fix)
Date: Tue, 12 Feb 2002 18:39:56 -0800	[thread overview]
Message-ID: <3C69D1FC.195CD36@zip.com.au> (raw)
In-Reply-To: <3C69A18A.501BAD42@zip.com.au> <3C69A18A.501BAD42@zip.com.au> <87y9hyw4b6.fsf@tigram.bogus.local> <3C69C7E9.E01C3532@zip.com.au> <87pu3aw1ue.fsf@tigram.bogus.local>

Olaf Dietsche wrote:
> 
> Andrew Morton <akpm@zip.com.au> writes:
> 
> > http://www.huis.hiroshima-u.ac.jp/jargon/LexiconEntries/Livelock.html
> >
> > livelock
> >
> > /li:v'lok/ n. A situation in which some critical stage of a task is
> > unable to finish because its clients perpetually create more work
> > for it to do after they have been serviced but before it can clear its
> > queue. Differs from {deadlock} in that the process is not blocked or
> > waiting for anything, but has a virtually infinite amount of work to
> > do and can never catch up.
> 
> I still don't get it :-(. When there is more work, this more work
> needs to be done. So, how could livelock be considered a bug? It's
> just overload. Or is this about the work, which must be done _after_
> the queue is empty?
> 

Yes, it's just overload.  Clearly, the CPU can dirty memory
faster than a disk can clean it.

The bug is the expectation in the design of sync() that
it'll ever be able to make all buffers clean.

We can either:

a) spin madly until the thing which is writing stuff stops.
   This has some merit, but is of course racy.

b) give up when we see it's not working out or

c) acquire sufficient locking to prevent all new dirtyings,
   while we proceed to flush everything to disk.  This is
   pointless, because as soon as we drop those locks, the
   dirtyings start again.

The only reliable way we can do all this is to offline the device
while we flush everything.  That happens on the unmount and
remount-ro path.  We definitely need that to work.

-

  reply	other threads:[~2002-02-13  2:41 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-02-12 23:13 [patch] sys_sync livelock fix Andrew Morton
2002-02-12 23:31 ` Alan Cox
2002-02-12 23:22   ` Andrew Morton
2002-02-13  0:28     ` Alan Cox
2002-02-13  3:28       ` Bill Davidsen
2002-02-13  3:46         ` Jeff Garzik
2002-02-13 15:11           ` Daniel Phillips
2002-02-13 22:24             ` Bill Davidsen
2002-02-13 22:41               ` Mike Fedyk
2002-02-14  0:26               ` Daniel Phillips
2002-02-14  0:37                 ` Andrew Morton
2002-02-14  0:49                   ` Daniel Phillips
2002-02-14  0:53                     ` Andrew Morton
2002-02-14  1:27                       ` Daniel Phillips
2002-02-14  1:29                         ` Andrew Morton
2002-02-14  1:59                     ` Mike Fedyk
2002-02-14  2:07                       ` Daniel Phillips
2002-02-13 23:31             ` Rob Landley
2002-02-14  0:44               ` Daniel Phillips
2002-02-12 23:29   ` Rik van Riel
2002-02-13  0:25     ` Alan Cox
2002-02-13  0:15       ` Rik van Riel
2002-02-13  0:36         ` Alan Cox
2002-02-13  0:36           ` Rik van Riel
2002-02-13  0:39           ` Andrew Morton
2002-02-13  3:42             ` Bill Davidsen
2002-02-13  3:54             ` Bill Davidsen
2002-02-13  4:01               ` Jeff Garzik
2002-02-13  4:53                 ` Bill Davidsen
2002-02-13 15:17                 ` Daniel Phillips
2002-02-13  4:29               ` Andrew Morton
2002-02-13  5:21                 ` Bill Davidsen
2002-02-13  5:35                   ` Andrew Morton
2002-02-18  2:29                     ` Bill Davidsen
2002-02-13 14:09                   ` bill davidsen
2002-02-13 15:29                   ` Daniel Phillips
2002-02-13 22:53                     ` Bill Davidsen
2002-02-14  0:33                       ` Daniel Phillips
2002-02-13  1:36 ` What is a livelock? (was: [patch] sys_sync livelock fix) Olaf Dietsche
2002-02-13  1:56   ` Andrew Morton
2002-02-13  2:30     ` Olaf Dietsche
2002-02-13  2:39       ` Andrew Morton [this message]
2002-02-13 16:19         ` Olaf Dietsche
2002-02-13  2:52       ` William Lee Irwin III
2002-02-18 22:19       ` David Schwartz
2002-02-13  2:33   ` Rob Landley

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=3C69D1FC.195CD36@zip.com.au \
    --to=akpm@zip.com.au \
    --cc=linux-kernel@vger.kernel.org \
    --cc=olaf.dietsche--list.linux-kernel@exmail.de \
    /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