Linux LVM users
 help / color / mirror / Atom feed
From: Chris Mason <mason@suse.com>
To: linux-lvm@sistina.com
Subject: Re: [linux-lvm] lvm deadlock with 2.4.x kernel?
Date: Tue, 15 May 2001 21:17:06 -0400	[thread overview]
Message-ID: <28230000.989975826@tiny> (raw)
In-Reply-To: <200105160032.f4G0WPIP022333@webber.adilger.int>


On Tuesday, May 15, 2001 06:32:24 PM -0600 Andreas Dilger
<adilger@turbolinux.com> wrote:

>> reiserfs should catch blocks that don't have the proper bits set when it
>> starts i/o, and then it makes sure the block hasn't been relogged while
>> the i/o was in progress.  It sends warnings not an oops though, check
>> your log files.  If we were losing journal bits, and the log code didn't
>> catch it, the result should be silent corruption.  
>> 
>> Since he is seeing deadlock, it seems more likely reiserfs is trying to
>> lock a buffer for i/o, and that is hanging for some reason....
> 
> But what does PV_FLUSH do?  Calls fsync_dev() to flush dirty buffers to
> disk, and sync_supers() and waits for buffer I/O completion.  This is
> unlikely to be the cause of a problem, because that happens on each
> sync call.
> 
> It then calls __invalidate_buffers(dev, 0), which destroys everything
> but dirty buffers (on ALL buffer lru lists).  

Unless I'm reading it wrong (2.4.4), __invalidate_buffers destroys all
buffers that are clean and have b_count == 0.  Reiserfs keeps b_count > 0
for all metadata buffers that have been logged, while ext3 allows the count
to be zero (but keeps them in the dirty list).

__invalidate_buffers also waits on any locked buffers.  Any chance one of
the other LVM ioctls grabs some lvm lock before calling PV_FLUSH?

You're right though, pv_flush certainly doesn't look like it could cause
any deadlocks.

-chris

  reply	other threads:[~2001-05-16  1:17 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-05-14 22:11 [linux-lvm] lvm deadlock with 2.4.x kernel? Tom Otake
2001-05-15  8:40 ` Joe Thornber
2001-05-15 22:35   ` Tom Otake
2001-05-15 22:49     ` Andreas Dilger
2001-05-15 23:14       ` Chris Mason
2001-05-16  0:32         ` Andreas Dilger
2001-05-16  1:17           ` Chris Mason [this message]
2001-05-16  1:50             ` Jay Weber
2001-05-16  3:35               ` Jay Weber
2001-05-16  8:39             ` Joe Thornber
2001-05-16 10:50               ` Jay Weber
2001-05-16 11:06                 ` Joe Thornber
2001-05-16 10:53               ` Heinz J. Mauelshagen
2001-05-16 13:20               ` Chris Mason
2001-05-17  2:26     ` Tom Otake
2001-05-17 15:31       ` Andreas Dilger

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=28230000.989975826@tiny \
    --to=mason@suse.com \
    --cc=linux-lvm@sistina.com \
    /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