Re: ENOSPC returned during writepages

Andreas Dilger
2008-08-23T11:12:39Z

On Aug 21, 2008 20:48 +0530, Aneesh Kumar wrote:
> On Wed, Aug 20, 2008 at 02:55:25PM -0700, Mingming Cao wrote:
> > I have a feeling that we did not try very hard before invalidate the
> > dirty page which fail to map to disks. Perhaps we should try a few more
> > times before give up. Also in that case, perhaps we should turn off
> > delalloc fs wide, so the new writers won't take the subsequently made
> > avaible free blocks away from this unlucky delalloc da writepages.
>
> How do we try hard ? The mballoc already try had to allocate blocks. So I
> am not sure what do we achieve by requesting for block allocation again.

One reason is that if blocks are being released then they cannot be
reallocated until the transaction has committed.

Running something like iozone in a loop on a filesystem that has only
as much free space as the size of the output file can run out of space
after a few loops because of this, so definitely retrying the allocation
can help.

Also, keeping the pages in RAM may allow them to be written again if
the user detects the ENOSPC and deletes some files...

Cheers, Andreas
--
Andreas Dilger
Sr. Staff Engineer, Lustre Group
Sun Microsystems of Canada, Inc.