Re: [PATCH v3 1/2] xfs: set a mount flag when perag reservation is active
From: "Darrick J. Wong" <djwong@kernel.org>
Date: 2021-03-19 01:49:11
On Fri, Mar 19, 2021 at 12:43:03PM +1100, Dave Chinner wrote:
On Fri, Mar 19, 2021 at 12:05:06PM +1100, Dave Chinner wrote:quoted
On Thu, Mar 18, 2021 at 03:19:01PM -0700, Darrick J. Wong wrote:quoted
TBH I think the COW recovery and the AG block reservation pieces are prime candidates for throwing at an xfs_pwork workqueue so we can perform those scans in parallel.As I mentioned on #xfs, I think we only need to do the AG read if we are near enospc. i.e. we can take the entire reservation at mount time (which is fixed per-ag) and only take away the used from the reservation (i.e. return to the free space pool) when we actually access the AGF/AGI the first time. Or when we get a ENOSPC event, which might occur when we try to take the fixed reservation at mount time...Which leaves the question about when we need to actually do the accounting needed to fix the bug Brian is trying to fix. Can that be delayed until we read the AGFs or have an ENOSPC event occur? Or maybe some other "we are near ENOSPC and haven't read all AGFs yet" threshold/trigger?
Or just load them in the background and let mount() return to userspace?
If that's the case, then I'm happy to have this patchset proceed as it stands under the understanding that there will be follow up to make the clean, lots of space free mount case avoid reading the the AG headers. If it can't be made constrained, then I think we probably need to come up with a different approach that doesn't require reading every AG header on every mount... Cheers, Dave. -- Dave Chinner david@fromorbit.com