lkml.org 
[lkml]   [2007]   [Dec]   [8]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateSat, 8 Dec 2007 13:43:37 +0200
From"T T" <>
SubjectQuotaon livelock
Hi lkml,

Enabling FS quotas can take up to several minutes to finish and
depends on other users disk activity. This makes it a livelock (as it
can be finished anyway).

The problem described at:
http://bugzilla.kernel.org/show_bug.cgi?id=9520

Yes, if we need to enable quotas once in the system start - no problem.
But if we have to disable/enable it periodically - this become a nightmare.

Please don't advice to use edquota or so (quotactl(Q_SETQUOTA...) based things).
What if it's really needed to use quotactl(Q_QUOTAOFF...)/quotactl(Q_QUOTAON...)

The problem is at fs/dquot.c:add_dquot_ref()
It's restarting to loop over the inodes list once it inits quota on an inode.
And this happens over and over if something is modifying inodes list
during quotas enabling.

It looks like the action must take some time depending on FS size, but
not on other users
disk activity...
Any advices how the algorithm at fs/dquot.c:add_dquot_ref() can be enhanced?

Thanks
Nick


\
 
 \ /
  Last update: 2007-12-08 12:47    [from the cache]
©2003-2008