xfs
[Top] [All Lists]

Re: TAKE - XFS allocator can spin forever in full filesystem]

To: Paul Schutte <paul@xxxxxxxx>
Subject: Re: TAKE - XFS allocator can spin forever in full filesystem]
From: Steve Lord <lord@xxxxxxx>
Date: 18 Jun 2002 09:03:56 -0500
Cc: linux-xfs@xxxxxxxxxxx
In-reply-to: <3D0F31E1.A4B6627@up.ac.za>
References: <1024078557.20553.293.camel@jen.americas.sgi.com> <3D0F31E1.A4B6627@up.ac.za>
Sender: owner-linux-xfs@xxxxxxxxxxx
On Tue, 2002-06-18 at 08:13, Paul Schutte wrote:
> I have seen a releated problem when the space is tight.
> 
> When you untar a lot of small files onto a partition that is tight on space, 
> you get
> out of space errors.
> After the delalloc blocks are commited to disk, some space become available 
> and
> files get written to disk again.
> All the space get delalloced again with resulting out of space errors.
> This cycle continues until all the space are really gone or the tar exits.
> You end up where not all the files in the tar file get extracted to disk, 
> eventhough
> everything would have fitted onto the partition. If you write the files
> synchronously, they all fit onto the partition.
> 
> I am not sure if this fix will address this issue. If you flush before giving 
> an
> "Out of space error", it should fix it.
> (I tried fixing this myself, but ended up with a kernel that deadlocks)

There were two things in this fix - one was a pathological end case
where we sat in a cpu loop and never completed, the other was to flush
the log out to disk after we flush delalloc space - the log flush is
what actually releases the overcommitted space in the transactions.
This latter part of the fix should help your case.

> 
> I also observed a similar behaviour within the allocation groups.
> When all the space in an ag(#1) are delalloced, xfs switches to the next 
> ag(#2).
> This is not bad if inode and data blocks would both switch to #2, but I 
> observed
> that the inode blocks stayed in #1, while the data blocks switched to #2 
> (#1,#2
> situation).
> This results in very bad inode vs data block layout.
> Xfs switches back to the previous ag (#1,#1 situation) once the delalloced 
> blocks
> are commited.
> 

Interesting point about the delalloc within an allocation group. Not
sure off the top of my head how to deal with it - a single allocation
group is not the answer, there are definite deadlock scenarios if you
do that.

Steve


-- 

Steve Lord                                      voice: +1-651-683-3511
Principal Engineer, Filesystem Software         email: lord@xxxxxxx


<Prev in Thread] Current Thread [Next in Thread>