[linux-lvm] lvm deadlock with 2.4.x kernel?

Jay Weber jweber at valinux.com
Wed May 16 10:50:33 UTC 2001


On Wed, 16 May 2001, Joe Thornber wrote:

> On Tue, May 15, 2001 at 09:17:06PM -0400, Chris Mason wrote:
> > You're right though, pv_flush certainly doesn't look like it could cause
> > any deadlocks.
>
> I must admit I'm struggling to understand why PV_FLUSH even exists.
> It does *exactly* the same thing as a BLKFLSBUF ioctl to the pv device
> itself.  As such I agree that it's unlikely to be the culprit.

I don't think it is, I think it just appears as such.  I've actually
hacked up my LVM here so that lvm_do_pv_flush() just returns 0.  I don't
get the problem there anymore. :)

I'm digging in the userland code now.  It looks to me as though somewhere
around the vg_copy_to_disk or lseek and write to pv_handle in vg_write.c
is where I see the first instance of a BUF_LOCKED buffer being set to
B_FREE.  I added a printk to my put_last_free() function in buffer.c to
denote when such odd symptoms occur.  Again, only LVM userland tool usage
seems to generate output from that printk, nothing else that I do on the
machine.

And it looks as though vg_write.c in tools/lib is just dropping the VG
offset data and such onto the physical PV itself.  I've noted that
following this I get alot more printk messages regarding BUF_LOCKED being
set to B_FREE, the next massive hunk of write is in regards to
lv_write_all_lv, so I gather it's during the writeout of LV information to
a PV?

Not sure why writing data to the raw device would generate these printk's.
Thats the best I've been able to come up with overnight though.

>
> - Joe
> _______________________________________________
> linux-lvm mailing list
> linux-lvm at sistina.com
> http://lists.sistina.com/mailman/listinfo/linux-lvm
>




More information about the linux-lvm mailing list