Re: migratepage failures on reiserfs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2007-10-30 at 18:58 -0400, Chris Mason wrote:
> On Tue, 30 Oct 2007 13:54:05 -0800
> Badari Pulavarty <pbadari@xxxxxxxxxx> wrote:
> 
> > On Tue, 2007-10-30 at 13:54 -0400, Chris Mason wrote:
> > > On Tue, 30 Oct 2007 10:27:04 -0800
> > > Badari Pulavarty <pbadari@xxxxxxxxxx> wrote:
> > > 
> > > > Hi,
> > > > 
> > > > While testing hotplug memory remove, I ran into this issue. Given
> > > > a range of pages hotplug memory remove tries to migrate those
> > > > pages.
> > > > 
> > > > migrate_pages() keeps failing to migrate pages containing
> > > > pagecache pages for reiserfs files. I noticed that reiserfs
> > > > doesn't have ->migratepage() ops. So, fallback_migrate_page()
> > > > code tries to do try_to_release_page(). try_to_release_page()
> > > > fails to drop_buffers() since b_count == 1. Here is what my debug
> > > > shows:
> > > > 
> > > > 	migrate pages failed pfn 258111/flags 3f00000000801
> > > > 	bh c00000000b53f6e0 flags 110029 count 1
> > > > 	
> > > > Any one know why the b_count == 1 and not getting dropped to
> > > > zero ? 
> > > 
> > > If these are file data pages, the count is probably elevated as
> > > part of the data=ordered tracking.  You can verify this via
> > > b_private, or just mount data=writeback to double check.
> > 
> > 
> > Chris,
> > 
> > That was my first assumption. But after looking at
> > reiserfs_releasepage (), realized that it would do reiserfs_free_jh()
> > and clears the b_private. I couldn't easily find out who has the ref.
> > against this bh.
> > 
> > bh c00000000bdaaf00 flags 110029 count 1 private 0
> > 
> 
> If I'm reading this correctly the buffer is BH_Lock | BH_Req, perhaps
> it is currently under IO?
> 
> The page isn't locked, but data=ordered does IO directly on the buffer
> heads, without taking the page lock.
> 
> The easy way to narrow our search is to try without data=ordered, it is
> certainly complicating things.

I tried data=writeback mode and it didn't help :(

unable to release the page 262070
bh c0000000211b9408 flags 110029 count 1 private 0
unable to release the page 262098
bh c000000020ec9198 flags 110029 count 1 private 0
memory offlining 3f000 to 40000 failed

# cat /etc/mtab
/dev/sda3 / reiserfs rw,data=writeback 0 0
proc /proc proc rw 0 0
tmpfs /dev/shm tmpfs rw 0 0
devpts /dev/pts devpts rw,mode=0620,gid=5 0 0

Thanks,
Badari


-
To unsubscribe from this list: send the line "unsubscribe reiserfs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux File System Development]     [Linux BTRFS]     [Linux NFS]     [Linux Filesystems]     [Ext4 Filesystem]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Resources]

  Powered by Linux