Re: [PATCH v2] xfs: clear _XBF_PAGES from buffers when readahead page allocation fails

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

 



[add hch to the thread]

On Mon, Jan 30, 2017 at 03:35:57PM -0800, Darrick J. Wong wrote:
> On Sun, Jan 29, 2017 at 09:55:17AM +1100, Dave Chinner wrote:
> > On Wed, Jan 25, 2017 at 07:53:30PM -0800, Darrick J. Wong wrote:
> > > If we try to allocate memory pages to back an xfs_buf that we're trying
> > > to read, it's possible that we'll be so short on memory that the page
> > > allocation fails.  For a blocking read we'll just wait, but for
> > > readahead we simply dump all the pages we've collected so far.
> > > 
> > > Unfortunately, after dumping the pages we neglect to clear the
> > > _XBF_PAGES state, which means that the subsequent call to xfs_buf_free
> > > thinks that b_pages still points to pages we own.  It then double-frees
> > > the b_pages pages.
> > > 
> > > This results in screaming about negative page refcounts from the memory
> > > manager, which xfs oughtn't be triggering.  To reproduce this case,
> > > mount a filesystem where the size of the inodes far outweighs the
> > > availalble memory (a ~500M inode filesystem on a VM with 300MB memory
> > > did the trick here) and run bulkstat in parallel with other memory
> > > eating processes to put a huge load on the system.  The "check summary"
> > > phase of xfs_scrub also works for this purpose.
> > > 
> > > Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
> > 
> > Can you rename the patch "prevent double free of buffer pages on
> > readahead failure"? That way people looking for commits to backport
> > are going to see it clearly and easily....
> 
> Uh... this patch was already in Linus' tree by the time I received this reply,
> so I don't think I can change it.
> 
> > And I think it also needs a stable cc....
> 
> Will send it to the stable list.

Actually -- Christoph, are you planning to send another batch of XFS
fixes for 4.9?

--D

> 
> --D
> 
> > 
> > Cheers,
> > 
> > Dave.
> > -- 
> > Dave Chinner
> > david@xxxxxxxxxxxxx
> --
> To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux